/* ------------------------------ */
/* Variables */
/* ------------------------------ */
@import url("https://fast.fonts.net/lt/1.css?apiType=css&c=c1f0477e-ef4c-43fc-8458-df1fc9648bc3&fontids=693238");
.lessVars {
  font-family: 'tablet: 1000px, mobile: 640px';
  display: none;
}
/*

    Monochromatic, man

    @primaryGreen
    #CDFFCD
    #81FF81
    #677F67
    @ctaGreen

*/
/* ------------------------------ */
/* Media Query Breakpoints */
/* ------------------------------ */
/**
 * @import of dynamic variables
 */
/* 
 * 
 * Sample CSS file
 * 
 * On staging (grunt off) css files are loaded from core/includes/header.inc.php 
 * automatically when placed in this folder.
 * 
 * On live they will be automatically included through grunt and compressed and concatenated
 * into sites/SITE/min/a.css and included from that location.
 * 
 */
/* 
 * 
 * Sample CSS file
 * 
 * On staging (grunt off) css files are loaded from core/includes/header.inc.php 
 * automatically when placed in this folder.
 * 
 * On live they will be automatically included through grunt and compressed and concatenated
 * into sites/SITE/min/a.css and included from that location.
 * 
 */
/*
 *
 *
 *    Zoom Plugin
 *    CSS in beta, needs cleaning
 *
 */
.zoomContainer {
  position: relative;
  margin: 0 auto;
}
.zoomContainer .zoom {
  line-height: 0;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -ms-touch-action: none;
  user-select: none;
  position: relative;
  display: block;
  overflow: hidden;
  border: 0;
  margin: 0 auto;
}
.zoomContainer .zoom img {
  margin: 0 auto;
  display: block;
  max-width: 100%;
}
.zoomContainer .zoom .portal img {
  max-width: none;
}
.zoomContainer .loader {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.5);
}
.zoomContainer .loader img {
  width: 16px;
  height: 16px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -8px;
  margin-top: -8px;
  display: block;
}
.zoomContainer .clickToLoad {
  display: block;
  background: #fff;
  text-transform: uppercase;
  text-align: left;
  position: absolute;
  bottom: 10px;
  left: 0px;
  pointer-events: none;
}
.zoomContainer .clickToLoad i {
  display: inline-block;
  margin-left: 4px;
  font-size: 10px;
  line-height: 15px;
  vertical-align: middle;
}
/*	BigVideo Styles
	You may need to adjust these styles to get this working right in your design.
*/
#big-video-wrap {
  overflow: hidden;
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}
#big-video-vid,
#big-video-image {
  position: absolute;
}
#big-video-control-container {
  position: fixed;
  bottom: 0;
  padding: 10px;
  width: 100%;
  background: rgba(0, 0, 0, 0.25);
  -webkit-transition-duration: 0.6s;
  -moz-transition-duration: 0.6s;
  -ms-transition-duration: 0.6s;
  -o-transition-duration: 0.6s;
  transition-duration: 0.6s;
  display: none;
  display: none!important;
}
#big-video-control {
  width: 100%;
  height: 16px;
  position: relative;
  display: none!important;
}
#big-video-control-middle {
  margin: 0 56px 0 24px;
}
#big-video-control-bar {
  width: 100%;
  height: 16px;
  position: relative;
  cursor: pointer;
}
#big-video-control-progress {
  position: absolute;
  top: 7px;
  height: 3px;
  width: 0%;
  background: #fff;
}
#big-video-control-track {
  position: absolute;
  top: 8px;
  height: 1px;
  width: 100%;
  background: #fff;
}
#big-video-control-bound-left {
  left: 0;
}
#big-video-control-bound-right {
  right: -1px;
}
#big-video-control-track .ui-slider-handle {
  opacity: 0;
}
#big-video-control-playhead {
  left: 30%;
}
#big-video-control-play {
  position: absolute;
  top: 0;
  left: 0;
  height: 16px;
  width: 16px;
  background-image: url('bigvideo.png');
}
#big-video-control-timer {
  position: absolute;
  top: 1px;
  right: 0;
  color: #fff;
  font-size: 11px;
}
#big-video-control-playhead,
#big-video-control-bound-left,
#big-video-control-bound-right {
  position: absolute;
  top: 0;
  height: 16px;
  width: 1px;
  background: #fff;
}
#big-video-control .ui-slider-handle {
  border-left: solid 1px #fff;
  width: 16px;
  height: 16px;
  position: absolute;
  top: -8px;
}
.transparent {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -moz-opacity: 0;
  -khtml-opacity: 0;
  opacity: 0;
}
#big-video-wrap .vjs-big-play-button {
  display: none !important;
}
.vjs-control-bar,
.vjs-hidden {
  display: none!important;
}
/* ------------------------------ */
/* Slick Styles  */
/* ------------------------------ */
.slick-slider {
  position: relative;
  display: block;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}
.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}
.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
}
.slick-track:before,
.slick-track:after {
  display: table;
  content: '';
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}
.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
  outline: 0;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
[dir='rtl'] .slick-slide {
  float: right;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
  display: none;
}
/* Mobile */
@media all and (max-width: 640px) {
  table.responsive {
    margin: 0 !important;
  }
  table.responsive th,
  table.responsive td {
    position: relative;
    white-space: nowrap;
    overflow: hidden;
    line-height: 34px;
    display: table-cell !important;
  }
  table.responsive th:first-child,
  table.responsive td:first-child {
    display: none !important;
  }
  table.responsive .pinned td {
    display: none;
  }
  .tableWrapper {
    position: relative;
    margin-bottom: 20px;
    overflow: hidden;
    border-right: 1px solid #eee;
  }
  .tableWrapper .scrollable {
    margin-left: 35%;
    overflow: scroll;
    overflow-y: hidden;
  }
  .tableWrapper .pinned {
    position: absolute;
    left: 0;
    top: 0;
    background: #fff;
    width: 35%;
    overflow: hidden;
    overflow-x: scroll;
    border-right: 1px solid #eee;
    border-left: 1px solid #eee;
  }
  .tableWrapper .pinned table {
    border-right: none;
    border-left: none;
    width: 100%;
    margin: 0;
  }
  .tableWrapper .pinned table th,
  .tableWrapper .pinned table td {
    white-space: nowrap;
    line-height: 34px;
  }
  .tableWrapper .pinned table th:first-child {
    padding: 5px;
  }
  .tableWrapper .pinned table td:last-child {
    border-bottom: 0;
  }
}
/* ------------------------------ */
/* ------------------------------ */
/* ------------------------------ */
/* ------------------------------ */
/* Make your changes in mtc_style.less */
/* ------------------------------ */
/* ------------------------------ */
/* ------------------------------ */
/* ------------------------------ */
/* ------------------------------ */
/* normalize.css v3.0.2 | 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,
menu,
nav,
section,
summary {
  display: block;
}
/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}
/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0;
}
/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}
/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}
/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2.4615384615384617em;
  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: 13px;
  font-size: 1rem;
}
/**
 * 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;
  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: 1.2307692307692308em;
}
/* 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 */
  -webkit-appearance: none;
  border-radius: 0;
}
/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}
/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}
/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}
/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}
/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}
/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -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-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}
/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}
/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/* ------------------------------ */
/* End of normalise code */
/* ------------------------------ */
img {
  vertical-align: middle;
  max-width: 100%;
}
#map img {
  max-width: none;
}
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
textarea {
  resize: vertical;
}
.lt-ie7 input {
  vertical-align: text-bottom;
}
.lt-ie8 input[type="checkbox"] {
  vertical-align: baseline;
}
/* ------------------------------ */
/* Base Styles */
/* ------------------------------ */
* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  overflow-y: scroll;
  height: 100%;
}
body {
  font-size: 13px;
  line-height: 1.462;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  margin: 0;
  height: 100%;
}
/* ------------------------------ */
/* Text Selection Colours */
/* ------------------------------ */
::-moz-selection {
  background: #0f55c4;
  color: #fff;
  text-shadow: none;
}
::selection {
  background: #0f55c4;
  color: #fff;
  text-shadow: none;
}
/* ------------------------------ */
/* Horizontal Rule */
/* ------------------------------ */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #EEE;
  color: #333;
  margin: 2em 0;
  padding: 0;
  clear: both;
}
p {
  margin-top: 0;
}
p:last-child {
  margin-bottom: 0;
}
a {
  text-decoration: none;
  color: #000;
  outline: 0;
}
a:hover,
a:active {
  outline: 0;
}
/* ------------------------------ */
/* Form Styles */
/* ------------------------------ */
form fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
form legend {
  display: none;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #999;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
  /* Firefox 18- */
  color: #999;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  /* Firefox 19+ */
  opacity: 1;
  color: #999;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #999;
}
textarea {
  resize: vertical;
}
.lt-ie7 input {
  vertical-align: text-bottom;
}
.lt-ie8 input[type="checkbox"] {
  vertical-align: baseline;
}
input,
textarea,
select,
label {
  box-shadow: 0 0 0;
  outline: 0;
  margin: 0;
  padding: 0;
}
select {
  width: 100%;
}
.row {
  float: left;
  width: 100%;
  margin: 0 0 15px;
}
.row label {
  float: left;
  padding: 9px 0;
  line-height: normal;
}
.row small {
  display: none;
}
.row .inputWrap {
  float: left;
  width: 100%;
}
.row .text,
.row textarea,
.row select,
.row .chosen-search input {
  float: left;
  position: relative;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #999;
  line-height: normal;
}
.row .chosen-container {
  width: 100%;
}
.row input[disabled] {
  background: #E7E7E7;
  border: 1px solid #E7E7E7;
}
.buttonInline {
  float: left;
  width: 100%;
}
.buttonInline .inputWrap {
  width: 70%;
}
.buttonInline button,
.buttonInline .button {
  padding: 9px 10px;
  width: 30%;
  line-height: normal;
}
@media all and (max-width: 640px) {
  .buttonInline {
    padding: 0;
    width: 100%;
  }
  .buttonInline .inputWrap {
    margin: 0 0 2%;
    padding: 0;
    width: 100%;
  }
  .buttonInline button,
  .buttonInline .button {
    width: 100%;
  }
}
.formInline .row label {
  width: 30%;
}
.formInline .row .inputWrap {
  padding: 0 0 0 2%;
  width: 70%;
}
.formInline .row .mobileChosen select {
  width: 100%;
}
.formInline .row.checkboxRow label {
  padding-top: 0;
  padding-bottom: 0;
  width: auto;
}
.formInline .buttonInline {
  padding: 0 0 0 2%;
  width: 70%;
}
.formInline .buttonInline .inputWrap {
  padding: 0;
}
@media all and (max-width: 640px) {
  .formInline .row label {
    clear: both;
    width: 100%;
  }
  .formInline .row .inputWrap {
    padding: 0;
    width: 100%;
  }
  .formInline .buttonInline {
    padding: 0;
    width: 100%;
  }
}
.fileUpload input {
  width: 0;
  height: 0;
  line-height: 0;
  overflow: hidden;
}
.fileUpload .fileName {
  min-width: 100px;
  float: left;
  padding: 8px 15px;
  margin-left: 10px;
}
.fileUpload .fileName span {
  display: block;
}
.inputError {
  position: relative;
}
.inputError input::-webkit-input-placeholder,
.inputError textarea::-webkit-input-placeholder {
  color: #B94A48;
}
.inputError input:-moz-placeholder,
.inputError textarea:-moz-placeholder {
  /* Firefox 18- */
  color: #B94A48;
}
.inputError input::-moz-placeholder,
.inputError textarea::-moz-placeholder {
  /* Firefox 19+ */
  opacity: 1;
  color: #B94A48;
}
.inputError input:-ms-input-placeholder,
.inputError textarea:-ms-input-placeholder {
  color: #B94A48;
}
.inputError .text,
.inputError textarea {
  padding-right: 32px !important;
  border-color: #EED3D7 !important;
}
.inputError select {
  border-color: #EED3D7 !important;
}
.inputError.showError .text:focus + .errorWrap span {
  filter: alpha(opacity=0);
  opacity: 0;
  visibility: hidden;
  padding: 0;
  height: 0;
  margin: 0;
  -webkit-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  -moz-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  -ms-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  -o-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
}
.inputError.showError .errorWrap span {
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
  -transition-delay: 0s;
  -moz-transition-delay: 0s;
  -o-transition-delay: 0s;
  transition-delay: 0s;
  height: auto;
  margin: 2% 0 0;
  padding: 9px;
}
.inputError .errorWrap {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  color: #B94A48;
}
.inputError .errorWrap i {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  cursor: default;
}
.inputError .errorWrap i:hover + span {
  visibility: visible;
  filter: alpha(opacity=100);
  opacity: 1;
  -transition-delay: 0s;
  -moz-transition-delay: 0s;
  -o-transition-delay: 0s;
  transition-delay: 0s;
}
.inputError .errorWrap span {
  float: left;
  width: 100%;
  padding: 0;
  border: 1px solid #EED3D7;
  border-radius: 0;
  background: #F2DEDE;
  height: 0;
  margin: 0;
  filter: alpha(opacity=0);
  opacity: 0;
  visibility: hidden;
  line-height: 1em;
  z-index: 4;
  -webkit-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  -moz-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  -ms-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  -o-transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
  transition: visibility 0s linear 200ms, opacity 200ms ease 0s, height 0s linear 200ms;
}
.inputError .errorWrap span:hover {
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
  -transition-delay: 0s;
  -moz-transition-delay: 0s;
  -o-transition-delay: 0s;
  transition-delay: 0s;
}
.inputError .errorWrap.overlayOnInput span {
  position: absolute;
  top: 0;
  right: 0;
  float: none;
  margin: 0;
  width: auto;
  background: #fff;
  border-color: #B94A48;
}
.buttonInline .inputError .errorWrap span {
  width: 143%;
}
#billingAddressListRow {
  display: none;
}
.no-js #password_text {
  display: none;
}
/* ------------------------------ */
/* Change Box Model */
/* ------------------------------ */
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
/* ------------------------------ */
/* Hide Anti Spam Field */
/* ------------------------------ */
.contactForm .answer {
  display: none;
}
/* ------------------------------ */
/* Checkboxes */
/* ------------------------------ */
.checkbox input {
  float: left;
  display: inline;
  margin: 2%;
  padding: 0;
  *height: 13px;
  *width: 13px;
}
/* ------------------------------ */
/* Checkbox Toggle - Similar to the one seen in iOS */
/* ------------------------------ */
.checkboxToggle {
  visibility: hidden;
}
.checkboxToggle + label {
  cursor: pointer;
  display: block;
  position: relative;
  box-shadow: inset 0 0 0px 1px #d5d5d5;
  text-indent: -5000px;
  height: 20px;
  width: 40px;
  border-radius: 10px;
}
.checkboxToggle + label:before {
  content: '';
  position: absolute;
  display: block;
  height: 20px;
  width: 18px;
  top: 0;
  left: 0;
  border-radius: 10px;
  -webkit-transition: background 0.25s ease-in-out 0s, width 0.25s ease-in-out 0s;
  -moz-transition: background 0.25s ease-in-out 0s, width 0.25s ease-in-out 0s;
  -ms-transition: background 0.25s ease-in-out 0s, width 0.25s ease-in-out 0s;
  -o-transition: background 0.25s ease-in-out 0s, width 0.25s ease-in-out 0s;
  transition: background 0.25s ease-in-out 0s, width 0.25s ease-in-out 0s;
}
.checkboxToggle + label:after {
  content: '';
  position: absolute;
  display: block;
  height: 18px;
  width: 18px;
  margin: 1px;
  top: 0;
  left: 0;
  border-radius: 50%;
  background: #0f55c4;
  -webkit-transition: left 0.25s ease-in-out 0s, background 0.25s ease-in-out 0s;
  -moz-transition: left 0.25s ease-in-out 0s, background 0.25s ease-in-out 0s;
  -ms-transition: left 0.25s ease-in-out 0s, background 0.25s ease-in-out 0s;
  -o-transition: left 0.25s ease-in-out 0s, background 0.25s ease-in-out 0s;
  transition: left 0.25s ease-in-out 0s, background 0.25s ease-in-out 0s;
}
.checkboxToggle:checked + label:before {
  width: 100%;
  background: #0f55c4;
}
.checkboxToggle:checked + label:after {
  left: 50%;
  background: #fff;
}
/* ------------------------------ */
/* Radio buttons */
/* ------------------------------ */
.radioWrap ul {
  margin: 0;
  padding: 0;
  float: left;
  display: inline;
  width: 70%;
}
.radioWrap ul li {
  list-style-type: none;
}
/* ------------------------------ */
/* Notification Styles */
/* ------------------------------ */
.alert {
  padding: 8px 35px 8px 14px;
  margin-bottom: 20px;
  color: #C09853;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background-color: #FCF8E3;
  border: 1px solid #FBEED5;
  border-radius: 2px;
}
.alert p {
  margin: 0;
  padding: 0;
}
.success,
.error {
  clear: both;
  padding: 15px;
  border-radius: 2px;
  margin: 0 0 15px 0;
  text-align: left;
}
.success ul,
.error ul {
  margin: 0;
  padding: 0;
}
.success ul li,
.error ul li {
  background: none;
  padding: 0;
  margin: 0;
}
.success {
  background: #DFF0D8;
  color: #468847;
  border: 1px solid #D6E9C6;
}
.error {
  background: #F2DEDE;
  color: #B94A48;
  border: 1px solid #EED3D7;
}
.messageFull {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px;
  background: #DFF0D8;
  color: #468847;
  border: 1px solid #D6E9C6;
  padding: 15px;
  border-radius: 2px;
  margin: 0 0 15px 0;
  z-index: 9000;
}
.errorMessageFull {
  background: #F2DEDE;
  color: #B94A48;
  border: 1px solid #EED3D7;
}
input.inputError,
input textarea,
.inputError {
  border-color: #B94A48;
}
.hideme {
  display: none;
}
/* ------------------------------ */
/* Clearing for general use */
/* ------------------------------ */
.clear {
  clear: both;
}
/* ------------------------------ */
/* Last (deprecated by only applying to below IE9, use media queries instead) */
/* ------------------------------ */
.lt-ie9 .last {
  margin-right: 0 !important;
}
/* ------------------------------ */
/* First (deprecated by only applying to below IE9, use media queries instead) */
/* ------------------------------ */
.lt-ie9 .first {
  clear: both;
}
/* ------------------------------ */
/* Relative Positioning */
/* ------------------------------ */
.relative {
  position: relative;
}
/* ------------------------------ */
/* Images */
/* ------------------------------ */
img {
  max-width: 100%;
}
.left,
.alignleft {
  float: left;
  display: block;
}
.right,
.alignright {
  float: right;
  display: block;
}
/* ------------------------------ */
/* Lists */
/* ------------------------------ */
ul {
  margin: 0;
  padding: 0;
}
ul li {
  list-style-type: none;
}
/* ------------------------------ */
/* Basic List */
/* ------------------------------ */
/* ------------------------------ */
/* Navigation Style */
/* ------------------------------ */
/* ------------------------------ */
/* Edge to edge navigation */
/* ------------------------------ */
/* ------------------------------ */
/* Fade Dropdown Hover */
/* ------------------------------ */
.fadeNav li ul {
  display: block;
  filter: alpha(opacity=0);
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -moz-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -ms-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -o-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
}
.fadeNav li:hover > ul {
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
  -transition-delay: 0s;
  -moz-transition-delay: 0s;
  -o-transition-delay: 0s;
  transition-delay: 0s;
}
.fadeNav li .lt-ie9 .fadeNav li ul {
  display: none;
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
}
.fadeNav li .lt-ie9 .fadeNav li:hover ul {
  display: block;
}
/* ------------------------------ */
/* Slide Dropdown Hover */
/* ------------------------------ */
.slideNav li ul {
  display: block;
  background: #eee;
}
.slideNav li ul li {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 400ms linear 400ms;
  -moz-transition: max-height 400ms linear 400ms;
  -ms-transition: max-height 400ms linear 400ms;
  -o-transition: max-height 400ms linear 400ms;
  transition: max-height 400ms linear 400ms;
}
.slideNav li ul li a {
  filter: alpha(opacity=0);
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -moz-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -ms-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -o-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
}
.slideNav li:hover ul li {
  max-height: 19px;
  -webkit-transition: max-height 400ms linear 0s;
  -moz-transition: max-height 400ms linear 0s;
  -ms-transition: max-height 400ms linear 0s;
  -o-transition: max-height 400ms linear 0s;
  transition: max-height 400ms linear 0s;
}
.slideNav li:hover ul li a {
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity 400ms linear 400ms, visibility 0s linear 0s;
  -moz-transition: opacity 400ms linear 400ms, visibility 0s linear 0s;
  -ms-transition: opacity 400ms linear 400ms, visibility 0s linear 0s;
  -o-transition: opacity 400ms linear 400ms, visibility 0s linear 0s;
  transition: opacity 400ms linear 400ms, visibility 0s linear 0s;
}
.lt-ie9 .slideNav li ul li a {
  display: none;
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
}
.lt-ie9 .slideNav li:hover ul li a {
  display: block;
}
/* ------------------------------ */
/* Credit styling */
/* ------------------------------ */
#credits a strong {
  text-transform: lowercase;
}
#credits a:hover strong {
  color: #0f55c4;
}
/* ------------------------------ */
/* Checkbox Groups */
/* ------------------------------ */
.checkboxgroup {
  margin: 0;
  padding: 0;
  display: table;
  clear: both;
}
.checkboxgroup li {
  list-style-type: none;
  display: table-cell;
}
.checkboxgroup li input,
.checkboxgroup li li label {
  float: left;
  display: inline;
}
/* ------------------------------ */
/* Buttons */
/* ------------------------------ */
/* ------------------------------ */
/* Button Groups */
/* ------------------------------ */
.buttongroup {
  float: left;
  display: inline;
  width: 100%;
  clear: both;
}
.buttongroup .button {
  float: left;
  display: block;
  margin-right: 2%;
  border-right: 0;
}
/* ------------------------------ */
/* Tables */
/* ------------------------------ */
table {
  width: 100%;
}
table td,
table th {
  padding: 5px 10px;
  text-align: left;
}
/* ------------------------------ */
/* max-width: none; overrides max-width: 100% from above which distorts the icons on gmaps */
/* ------------------------------ */
#map img {
  max-width: none;
}
/* ------------------------------ */
/* Centre Elements */
/* ------------------------------ */
.centerPush {
  position: relative;
  float: left;
  left: 50%;
}
.centerPull {
  position: relative;
  float: right;
  right: 50%;
}
@media all and (max-width: 640px) {
  .mobilePush {
    position: relative;
    float: left;
    left: 50%;
  }
  .mobilePull {
    position: relative;
    float: right;
    right: 50%;
  }
}
/* ------------------------------ */
/* Table Div */
/* ------------------------------ */
.table {
  display: table;
}
.tableCell {
  display: table-cell;
}
/* ------------------------------ */
/* Browser Compatibility Warning */
/* ------------------------------ */
.compatibilityMessage {
  display: block;
  width: 100%;
  padding: 15px 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background: #0f55c4;
  color: #fff;
  border-bottom: 3px solid #fff;
  text-align: center;
  cursor: pointer;
}
.compatibilityMessage span {
  text-decoration: underline;
}
/* ------------------------------ */
/* Patterns for chop styling */
/* ------------------------------ */
.pattern {
  float: left;
  width: 100%;
  margin: 0 0 20px;
  padding: 0 0 30px;
  border-bottom: 3px solid #fff;
  clear: both;
  *zoom: 1;
}
.pattern:before,
.pattern:after {
  content: "";
  display: table;
}
.pattern:after {
  clear: both;
}
.pattern .display {
  margin: 30px 0;
  *zoom: 1;
}
.pattern .display:before,
.pattern .display:after {
  content: "";
  display: table;
}
.pattern .display:after {
  clear: both;
}
.pattern .source {
  display: block;
  background: #0f55c4;
  border: 1px solid #fff;
  padding: 15px;
  position: relative;
  margin-top: 20px;
  clear: both;
  *zoom: 1;
}
.pattern .source:before,
.pattern .source:after {
  content: "";
  display: table;
}
.pattern .source:after {
  clear: both;
}
.pattern .source textarea {
  width: 100%;
  border: 1px solid #fff;
  height: 200px;
}
.source .row {
  margin-bottom: 0;
}
.patternfilename {
  position: absolute;
  top: -20px;
  right: 5px;
  background: #0f55c4;
  border: 3px solid #fff;
  text-decoration: none;
  color: #fff;
  display: block;
  padding: 2px 10px;
}
#showMenu {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 1000000;
  background: #0F55C4;
  border: 0;
  padding: 6px 7px;
  line-height: 1;
  font-size: 18px;
  color: #fff;
  outline: none;
}
.perspective {
  width: 100%;
  height: 100%;
}
.container {
  background: #fff;
  min-height: 100%;
  position: relative;
  outline: 1px solid rgba(0, 0, 0, 0);
  z-index: 10;
  -webkit-transform: translateZ(0) translateX(0) rotateY(0deg);
  -moz-transform: translateZ(0) translateX(0) rotateY(0deg);
  -ms-transform: translateZ(0) translateX(0) rotateY(0deg);
  -o-transform: translateZ(0) translateX(0) rotateY(0deg);
  transform: translateZ(0) translateX(0) rotateY(0deg);
}
.container:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0px;
  filter: alpha(opacity=0);
  opacity: 0;
  background: rgba(0, 0, 0, 0.2);
  /* the transition delay of the height needs to be synced with the container transition time */
  -webkit-transition: opacity 400ms, height 0s 400ms;
  -moz-transition: opacity 400ms, height 0s 400ms;
  -ms-transition: opacity 400ms, height 0s 400ms;
  -o-transition: opacity 400ms, height 0s 400ms;
  transition: opacity 400ms, height 0s 400ms;
}
/* Modal view */
.perspective.modalview {
  position: fixed;
  -webkit-perspective: 1500px;
  -moz-perspective: 1500px;
  perspective: 1500px;
}
.modalview .container {
  position: absolute;
  overflow: hidden;
  width: 100%;
  height: 100%;
  cursor: pointer;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.modalview .wrapper {
  -webkit-transform: translateZ(-1px);
  /* solves a rendering bug in Chrome on Windows */
}
.animate .container:after {
  filter: alpha(opacity=100);
  opacity: 1;
  height: 101%;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
/* Outer Nav */
.outer-nav {
  position: absolute;
  height: auto;
  font-size: 0;
}
.outer-nav li ul {
  display: block;
  filter: alpha(opacity=0);
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -moz-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -ms-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  -o-transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
  transition: opacity 400ms linear 0s, visibility 0s linear 400ms;
}
.outer-nav li:hover > ul {
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
  -transition-delay: 0s;
  -moz-transition-delay: 0s;
  -o-transition-delay: 0s;
  transition-delay: 0s;
}
.outer-nav li .lt-ie9 .fadeNav li ul {
  display: none;
  filter: alpha(opacity=100);
  opacity: 1;
  visibility: visible;
}
.outer-nav li .lt-ie9 .fadeNav li:hover ul {
  display: block;
}
.outer-nav.top {
  top: 5%;
}
.outer-nav.horizontal {
  left: 50%;
  width: 75%;
  max-width: 1000px;
  text-align: center;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
}
.outer-nav ul {
  float: left;
  min-width: 15%;
  padding: 0 15px;
  background: none !important;
  -webkit-transition: opacity 200ms linear 0s, visibility 0s linear 200ms;
  -moz-transition: opacity 200ms linear 0s, visibility 0s linear 200ms;
  -ms-transition: opacity 200ms linear 0s, visibility 0s linear 200ms;
  -o-transition: opacity 200ms linear 0s, visibility 0s linear 200ms;
  transition: opacity 200ms linear 0s, visibility 0s linear 200ms;
}
.outer-nav > ul {
  text-align: left;
}
.outer-nav > ul li {
  display: inline-block;
  width: 100%;
  margin: 0;
  float: left;
  clear: both;
  position: relative;
}
.outer-nav > ul li:hover > ul {
  height: auto;
}
.outer-nav > ul li ul {
  position: absolute;
  background: none;
  left: 100%;
  top: 0;
}
@media all and (max-width: 640px) {
  .outer-nav > ul li ul {
    position: relative;
    height: 0;
    left: 0;
  }
}
.outer-nav > ul li > a:after {
  content: '';
  position: absolute;
  top: 0;
  left: 100%;
  height: 100%;
  width: 3px;
  background: #fff;
  filter: alpha(opacity=0);
  opacity: 0;
  -webkit-transform: translateX(-20px);
  -moz-transform: translateX(-20px);
  -ms-transform: translateX(-20px);
  -o-transform: translateX(-20px);
  transform: translateX(-20px);
}
.outer-nav > ul li > a:hover:after {
  filter: alpha(opacity=100);
  opacity: 1;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  -ms-transform: translateY(0);
  -o-transform: translateY(0);
  transform: translateY(0);
  -webkit-transition: opacity 200ms ease 0s, transform 200ms ease 0s;
  -moz-transition: opacity 200ms ease 0s, transform 200ms ease 0s;
  -ms-transition: opacity 200ms ease 0s, transform 200ms ease 0s;
  -o-transition: opacity 200ms ease 0s, transform 200ms ease 0s;
  transition: opacity 200ms ease 0s, transform 200ms ease 0s;
}
.outer-nav a {
  display: inline-block;
  white-space: nowrap;
  font-weight: 300;
  margin: 5px;
  padding: 0 20px 0 0;
  color: #fff;
  -webkit-transition: color 0.3s;
  -moz-transition: color 0.3s;
  -ms-transition: color 0.3s;
  -o-transition: color 0.3s;
  transition: color 0.3s;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  text-transform: capitalize;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
}
/* Individual Effects */
/* Effect Move Down */
.effect-movedown {
  background: #34495e;
}
.effect-movedown .container {
  -webkit-transition: transform 400ms;
  -moz-transition: transform 400ms;
  -ms-transition: transform 400ms;
  -o-transition: transform 400ms;
  transition: transform 400ms;
  -webkit-transform-origin: 50% 50%;
  -moz-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  -o-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
}
.effect-movedown .container:after {
  background: rgba(52, 73, 94, 0.5);
}
.effect-movedown.animate .container {
  -webkit-transform: translateY(100%) translateZ(-1500px);
  -moz-transform: translateY(100%) translateZ(-1500px);
  -ms-transform: translateY(100%) translateZ(-1500px);
  -o-transform: translateY(100%) translateZ(-1500px);
  transform: translateY(100%) translateZ(-1500px);
}
.no-csstransforms3d .effect-movedown.animate .container {
  top: 75%;
}
.effect-movedown .outer-nav a {
  filter: alpha(opacity=0);
  opacity: 0;
  -webkit-transform: translateY(-20px);
  -moz-transform: translateY(-20px);
  -ms-transform: translateY(-20px);
  -o-transform: translateY(-20px);
  transform: translateY(-20px);
  -webkit-transition: transform 400ms, opacity 400ms;
  -moz-transition: transform 400ms, opacity 400ms;
  -ms-transition: transform 400ms, opacity 400ms;
  -o-transition: transform 400ms, opacity 400ms;
  transition: transform 400ms, opacity 400ms;
}
.effect-movedown.animate .outer-nav a {
  filter: alpha(opacity=100);
  opacity: 1;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  -ms-transform: translateY(0);
  -o-transform: translateY(0);
  transform: translateY(0);
}
/* Media Queries */
@media screen and (max-width: 36.625em), screen and (max-height: 41.75em) {
  .outer-nav.horizontal {
    font-size: 1.5384615384615385em;
  }
  .outer-nav.horizontal a {
    display: block;
    text-align: left;
  }
}
@media screen and (max-width: 31em), screen and (max-height: 36.2em) {
  .outer-nav.horizontal {
    font-size: 1.2307692307692308em;
    top: 70px;
    left: 0;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
  }
}
@media screen and (max-height: 31.6em) {
  .outer-nav a {
    margin-bottom: 20px;
  }
}
@media only screen and (min-width: 0px) and (max-width: 800px) {
  .patternselector {
    position: relative;
    width: 100%;
    max-width: none;
    *zoom: 1;
  }
  .patternselector:before,
  .patternselector:after {
    content: "";
    display: table;
  }
  .patternselector:after {
    clear: both;
  }
}
/* ------------------------------ */
/* Fluid Grid */
/* ------------------------------ */
.grid_1,
.grid_2,
.grid_3,
.grid_4,
.grid_5,
.grid_6,
.grid_7,
.grid_8,
.grid_9,
.grid_10,
.grid_11,
.grid_12,
.columnFirst,
.columnSecond,
.oneHalf,
.columnHalf {
  float: left;
  display: inline;
  margin-bottom: 2%;
  margin-right: 2%;
  border: 0px solid rgba(0, 0, 0, 0);
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -moz-background-clip: padding-box !important;
  -webkit-background-clip: padding-box !important;
  background-clip: padding-box !important;
  *behavior: url(/css/boxsizing.htc);
  /* Box sizing polyfill for ie7/8 */
}
.grid_1:after,
.grid_2:after,
.grid_3:after,
.grid_4:after,
.grid_5:after,
.grid_6:after,
.grid_7:after,
.grid_8:after,
.grid_9:after,
.grid_10:after,
.grid_11:after,
.grid_12:after,
.columnFirst:after,
.columnSecond:after,
.oneHalf:after,
.columnHalf:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}
.grid_1,
.grid_2,
.grid_3,
.grid_4,
.grid_5,
.grid_6,
.grid_7,
.grid_8,
.grid_9,
.grid_10,
.grid_11,
.grid_12,
.columnFirst,
.columnSecond,
.oneHalf,
.columnHalf {
  display: inline-block;
  zoom: 1;
  *display: inline;
}
html[xmlns] .grid_1,
html[xmlns] .grid_2,
html[xmlns] .grid_3,
html[xmlns] .grid_4,
html[xmlns] .grid_5,
html[xmlns] .grid_6,
html[xmlns] .grid_7,
html[xmlns] .grid_8,
html[xmlns] .grid_9,
html[xmlns] .grid_10,
html[xmlns] .grid_11,
html[xmlns] .grid_12,
html[xmlns] .oneHalf,
html[xmlns] .columnHalf {
  display: block;
}
* html .grid_1,
* html .grid_2,
* html .grid_3,
* html .grid_4,
* html .grid_5,
* html .grid_6,
* html .grid_7,
* html .grid_8,
* html .grid_9,
* html .grid_10,
* html .grid_11,
* html .grid_12,
* html .columnFirst,
* html .columnSecond,
* html .oneHalf,
* html .columnHalf {
  height: 1%;
}
.grid_1 {
  width: 6.5%;
}
.grid_2 {
  width: 15%;
}
.grid_3 {
  width: 23.5%;
}
.grid_4 {
  width: 32%;
}
.grid_5 {
  width: 40.5%;
}
.grid_6 {
  width: 49%;
}
.grid_7 {
  width: 57.5%;
}
.grid_8 {
  width: 66%;
}
.grid_9 {
  width: 74.5%;
}
.grid_10 {
  width: 83%;
}
.grid_11 {
  width: 91.5%;
}
.grid_12 {
  margin-right: 0;
  width: 100%;
}
/* ------------------------------ */
/* Low content page */
/* ------------------------------ */
.emptyBasket,
.lowContent {
  max-width: 1480px;
  width: 100%;
  padding: 0 40px;
  position: relative;
  margin: 0 auto;
  *zoom: 1;
  padding: 40px 0;
  text-align: center;
  clear: both;
}
.emptyBasket:before,
.lowContent:before,
.emptyBasket:after,
.lowContent:after {
  content: "";
  display: table;
}
.emptyBasket:after,
.lowContent:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .emptyBasket,
  .lowContent {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .emptyBasket,
  .lowContent {
    padding: 0 20px;
  }
}
.emptyBasket:before,
.lowContent:before,
.emptyBasket:after,
.lowContent:after {
  content: "";
  display: table;
}
.emptyBasket:after,
.lowContent:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .emptyBasket,
  .lowContent {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .emptyBasket,
  .lowContent {
    padding: 0 20px;
  }
}
.emptyBasket:before,
.lowContent:before,
.emptyBasket:after,
.lowContent:after {
  content: "";
  display: table;
}
.emptyBasket:after,
.lowContent:after {
  clear: both;
}
@media all and (min-width: 1061px) {
  .emptyBasket,
  .lowContent {
    min-height: 700px;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .emptyBasket,
  .lowContent {
    min-height: 500px;
  }
}
.ps-container {
  overflow: hidden !important;
}
.ps-container.ps-active-x > .ps-scrollbar-x-rail,
.ps-container.ps-active-y > .ps-scrollbar-y-rail {
  display: block;
}
.ps-container.ps-in-scrolling {
  pointer-events: none;
}
.ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
  background-color: #eee;
  opacity: 0.9;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  filter: alpha(opacity=90);
}
.ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
  background-color: #999;
}
.ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
  background-color: #eee;
  opacity: 0.9;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  filter: alpha(opacity=90);
}
.ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
  background-color: #999;
}
.ps-container > .ps-scrollbar-x-rail {
  display: none;
  position: absolute;
  /* please don't change 'position' */
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: background-color 0.2s linear, opacity 0.2s linear;
  -moz-transition: background-color 0.2s linear, opacity 0.2s linear;
  -o-transition: background-color 0.2s linear, opacity 0.2s linear;
  transition: background-color 0.2s linear, opacity 0.2s linear;
  bottom: 3px;
  /* there must be 'bottom' for ps-scrollbar-x-rail */
  height: 8px;
}
.ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x {
  position: absolute;
  /* please don't change 'position' */
  background-color: #aaa;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
  -webkit-transition: background-color 0.2s linear;
  -moz-transition: background-color 0.2s linear;
  -o-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
  bottom: 0;
  /* there must be 'bottom' for ps-scrollbar-x */
  height: 8px;
}
.ps-container > .ps-scrollbar-y-rail {
  display: none;
  position: absolute;
  /* please don't change 'position' */
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: background-color 0.2s linear, opacity 0.2s linear;
  -moz-transition: background-color 0.2s linear, opacity 0.2s linear;
  -o-transition: background-color 0.2s linear, opacity 0.2s linear;
  transition: background-color 0.2s linear, opacity 0.2s linear;
  right: 3px;
  /* there must be 'right' for ps-scrollbar-y-rail */
  width: 8px;
}
.ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y {
  position: absolute;
  /* please don't change 'position' */
  background-color: #aaa;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
  -webkit-transition: background-color 0.2s linear;
  -moz-transition: background-color 0.2s linear;
  -o-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
  right: 0;
  /* there must be 'right' for ps-scrollbar-y */
  width: 8px;
}
.ps-container:hover.ps-in-scrolling {
  pointer-events: none;
}
.ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
  background-color: #eee;
  opacity: 0.9;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  filter: alpha(opacity=90);
}
.ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
  background-color: #999;
}
.ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
  background-color: #eee;
  opacity: 0.9;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  filter: alpha(opacity=90);
}
.ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
  background-color: #999;
}
.ps-container:hover > .ps-scrollbar-x-rail,
.ps-container:hover > .ps-scrollbar-y-rail {
  opacity: 0.6;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
  filter: alpha(opacity=60);
}
.ps-container:hover > .ps-scrollbar-x-rail:hover {
  background-color: #eee;
  opacity: 0.9;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  filter: alpha(opacity=90);
}
.ps-container:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x {
  background-color: #999;
}
.ps-container:hover > .ps-scrollbar-y-rail:hover {
  background-color: #eee;
  opacity: 0.9;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  filter: alpha(opacity=90);
}
.ps-container:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y {
  background-color: #999;
}
/* ------------------------------ */
/* Overlay Styles */
/* ------------------------------ */
.bgCover {
  background: #090909;
  background: rgba(0, 0, 0, 0.5);
  position: fixed;
  left: 0;
  top: 0;
  overflow: hidden;
  z-index: 9000;
  width: 100%;
  height: 100%;
}
.overlayBox {
  position: fixed;
  background: #fff;
  z-index: 9100;
  overflow-y: auto;
  opacity: 0;
  width: 100%;
  height: 100%;
}
@media all and (max-width: 640px) {
  .overlayBox {
    width: 96%;
    top: 10px !important;
    left: 2% !important;
    right: 2% !important;
    max-height: initial;
    padding-top: 50px;
  }
}
.overlayBox iframe {
  display: block;
}
.noScroll {
  overflow: hidden;
}
.overlayVideo {
  height: 100%;
}
.overlayCloseButton {
  position: absolute;
  z-index: 9200;
  text-align: right;
  top: 0px;
  right: 0;
  margin-left: 0px;
}
.overlayCloseButton a {
  background: #67CC67;
  color: #fff;
  font-weight: bold;
  font-size: 12px;
  display: inline-block;
  cursor: pointer;
  padding: 5px 10px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 14px;
  text-transform: uppercase;
  z-index: 9200;
  outline: 0;
}
@media all and (max-width: 640px) {
  .overlayCloseButton {
    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
  }
  .overlayCloseButton a {
    background: #232323;
    color: #fff;
    font-size: 14px;
    position: static;
  }
}
/* ==========================================================================
   Remodal's necessary styles
   ========================================================================== */
/* Hide scroll bar */
html.remodal-is-locked {
  overflow: hidden;
  touch-action: none;
}
/* Anti FOUC */
.remodal,
[data-remodal-id] {
  display: none;
}
/* Necessary styles of the overlay */
.remodal-overlay {
  position: fixed;
  z-index: 9999;
  top: -5000px;
  right: -5000px;
  bottom: -5000px;
  left: -5000px;
  display: none;
}
/* Necessary styles of the wrapper */
.remodal-wrapper {
  position: fixed;
  z-index: 10000;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: none;
  overflow: auto;
  text-align: center;
  -webkit-overflow-scrolling: touch;
}
.remodal-wrapper:after {
  display: inline-block;
  height: 100%;
  margin-left: -0.05em;
  content: "";
}
/* Fix iPad, iPhone glitches */
.remodal-overlay,
.remodal-wrapper {
  backface-visibility: hidden;
}
/* Necessary styles of the modal dialog */
.remodal {
  position: relative;
  outline: none;
  text-align: left;
  text-size-adjust: 100%;
}
.remodal ol {
  margin: 0 0 0 15px;
  padding: 0;
  counter-reset: item;
}
.remodal ol > li {
  display: block;
}
.remodal ol > li:before {
  content: counters(item, ".") " - ";
  counter-increment: item;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.remodal-is-initialized {
  /* Disable Anti-FOUC */
  display: inline-block;
}
/* ==========================================================================
   Remodal's default mobile first theme
   ========================================================================== */
/* Default theme styles for the background */
.remodal-bg.remodal-is-opening,
.remodal-bg.remodal-is-opened {
  filter: blur(3px);
}
/* Default theme styles of the overlay */
.remodal-overlay {
  background: rgba(43, 46, 56, 0.9);
}
.remodal-overlay.remodal-is-opening,
.remodal-overlay.remodal-is-closing {
  animation-duration: 0.3s;
  animation-fill-mode: forwards;
}
.remodal-overlay.remodal-is-opening {
  animation-name: remodal-overlay-opening-keyframes;
}
.remodal-overlay.remodal-is-closing {
  animation-name: remodal-overlay-closing-keyframes;
}
/* Default theme styles of the wrapper */
.remodal-wrapper {
  padding: 30px 10px 0;
}
/* Default theme styles of the modal dialog */
.remodal {
  box-sizing: border-box;
  width: 100%;
  margin-bottom: 10px;
  padding: 35px;
  transform: translate3d(0, 0, 0);
  color: #2b2e38;
  background: #fff;
}
@media all and (max-width: 640px) {
  .remodal {
    padding: 15px;
  }
}
.remodal.remodal-is-opening,
.remodal.remodal-is-closing {
  animation-duration: 0.3s;
  animation-fill-mode: forwards;
}
.remodal.remodal-is-opening {
  animation-name: remodal-opening-keyframes;
}
.remodal.remodal-is-closing {
  animation-name: remodal-closing-keyframes;
}
/* Vertical align of the modal dialog */
.remodal,
.remodal-wrapper:after {
  vertical-align: middle;
}
/* Close button */
.remodal-close {
  position: absolute;
  top: -10px;
  right: -10px;
  border-radius: 50%;
  display: block;
  overflow: visible;
  width: 35px;
  height: 35px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  transition: color 0.2s;
  text-decoration: none;
  color: #95979c;
  border: 0;
  outline: 0;
  background: #ffffff;
  background: -moz-radial-gradient(center, ellipse cover, #ffffff 0%, #e5e5e5 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #ffffff 0%, #e5e5e5 100%);
  background: radial-gradient(ellipse at center, #ffffff 0%, #e5e5e5 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e5e5e5', GradientType=1);
}
.remodal-close:hover,
.remodal-close:focus {
  color: #2b2e38;
}
.remodal-close:before {
  font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important;
  font-size: 25px;
  line-height: 35px;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 35px;
  content: "\00d7";
  text-align: center;
}
/* Dialog buttons */
.remodal-confirm,
.remodal-cancel {
  font: inherit;
  display: inline-block;
  overflow: visible;
  min-width: 110px;
  margin: 0;
  padding: 12px 0;
  cursor: pointer;
  transition: background 0.2s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  border: 0;
  outline: 0;
}
.remodal-confirm {
  color: #fff;
  background: #81c784;
}
.remodal-confirm:hover,
.remodal-confirm:focus {
  background: #66bb6a;
}
.remodal-cancel {
  color: #fff;
  background: #e57373;
}
.remodal-cancel:hover,
.remodal-cancel:focus {
  background: #ef5350;
}
/* Remove inner padding and border in Firefox 4+ for the button tag. */
.remodal-confirm::-moz-focus-inner,
.remodal-cancel::-moz-focus-inner,
.remodal-close::-moz-focus-inner {
  padding: 0;
  border: 0;
}
/* Keyframes
   ========================================================================== */
@keyframes remodal-opening-keyframes {
  from {
    transform: scale(1.05);
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
@keyframes remodal-closing-keyframes {
  from {
    transform: scale(1);
    opacity: 1;
  }
  to {
    transform: scale(0.95);
    opacity: 0;
  }
}
@keyframes remodal-overlay-opening-keyframes {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes remodal-overlay-closing-keyframes {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/* Media queries
   ========================================================================== */
@media only screen and (min-width: 641px) {
  .remodal {
    max-width: 700px;
  }
}
/* IE8
   ========================================================================== */
.lt-ie9 .remodal-overlay {
  background: #2b2e38;
}
.lt-ie9 .remodal {
  width: 700px;
}
/* ------------------------------ */
/* Mixins */
/* ------------------------------ */
/* ------------------------------ */
/* Mobile Menu (style) */
/* ------------------------------ */
.subNav .title {
  cursor: pointer;
}
.subNav ul {
  display: none;
}
@media all and (max-width: 640px) {
  .flyoutWrap {
    background: #f1f1f1;
    z-index: 1001;
  }
  .flyoutWrap li {
    display: block;
    width: 100%;
    float: none;
    position: relative;
  }
  .flyoutWrap li.parent > a:after {
    font-family: "FontAwesome";
    content: "\f0da";
    position: absolute;
    right: 10px;
    top: 10px;
    -webkit-transition: all 300ms ease-in-out 0s;
    -moz-transition: all 300ms ease-in-out 0s;
    -ms-transition: all 300ms ease-in-out 0s;
    -o-transition: all 300ms ease-in-out 0s;
    transition: all 300ms ease-in-out 0s;
  }
  .flyoutWrap li.parent.open > a:after {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  .flyoutWrap li a {
    width: 100%;
    display: block;
    color: #415141;
  }
  .flyoutWrap li ul {
    position: relative;
    width: 100%;
    *zoom: 1;
    margin: 0;
  }
  .flyoutWrap li ul:before,
  .flyoutWrap li ul:after {
    content: "";
    display: table;
  }
  .flyoutWrap li ul:after {
    clear: both;
  }
  .flyoutWrap li ul li {
    float: none;
  }
  .flyoutWrap li ul ul {
    display: none;
    position: relative;
  }
  /* The flyout button */
  .flyout {
    width: 40px;
    display: block;
    cursor: pointer;
    z-index: 5001;
    color: #415141;
  }
  .flyout a {
    display: block;
    width: 40px;
    height: 24px;
    font-size: 2em;
    line-height: 1;
    color: #415141;
    float: right;
    text-align: center;
    position: relative;
  }
  .flyout a .line {
    background: #415141;
    width: 28px;
    height: 3px;
  }
  .flyout a .line:after {
    height: 2px;
    background: #415141;
  }
  .flyout:hover a .line:after {
    background: #415141;
  }
  .flyout.alive a .line {
    background: #f1f1f1;
  }
  /* End of the flyout button */
}
/* ------------------------------ */
/* Mobile Menu */
/* ------------------------------ */
.siteOuterWrapper {
  max-width: 100%;
  min-height: 100%;
  position: relative;
  *zoom: 1;
  overflow: hidden;
}
.siteOuterWrapper:before,
.siteOuterWrapper:after {
  content: "";
  display: table;
}
.siteOuterWrapper:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .siteOuterWrapper {
    padding-top: 65px;
  }
}
.siteInnerWrapper {
  clear: both;
}
/* Got a full screen background? You might need this to stop the flashers
*:not(html) {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
*/
.flyout,
.mobileBar {
  display: none;
}
/* Breakpoint for mobile menu to appear, can be set to whatever site needs */
@media all and (max-width: 640px) {
  .topBar {
    display: none;
  }
  .siteOuterWrapper {
    overflow: hidden;
    position: relative;
    z-index: 10;
    min-height: 100%;
  }
  .siteOuterWrapper > div.transform {
    -webkit-transition: all 300ms ease-in-out 0s;
    -moz-transition: all 300ms ease-in-out 0s;
    -ms-transition: all 300ms ease-in-out 0s;
    -o-transition: all 300ms ease-in-out 0s;
    transition: all 300ms ease-in-out 0s;
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  .siteOuterWrapper > div.transform.alive {
    -webkit-transform: translate(-100%, 0);
    -moz-transform: translate(-100%, 0);
    -ms-transform: translate(-100%, 0);
    -o-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
  .flyoutWrap {
    position: absolute;
    top: 66px;
    right: -100%;
    width: 100%;
    min-height: 100%;
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    -webkit-transition: all 300ms ease-in-out 0s;
    -moz-transition: all 300ms ease-in-out 0s;
    -ms-transition: all 300ms ease-in-out 0s;
    -o-transition: all 300ms ease-in-out 0s;
    transition: all 300ms ease-in-out 0s;
  }
  .flyoutWrap.alive {
    -webkit-transform: translate(-100%, 0);
    -moz-transform: translate(-100%, 0);
    -ms-transform: translate(-100%, 0);
    -o-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
  .menuleft .siteOuterWrapper > div.transform.alive {
    -webkit-transform: translate(100%, 0);
    -moz-transform: translate(100%, 0);
    -ms-transform: translate(100%, 0);
    -o-transform: translate(100%, 0);
    transform: translate(100%, 0);
  }
  .menuleft .flyoutWrap {
    right: auto;
    left: -100%;
  }
  .menuleft .flyoutWrap.alive {
    -webkit-transform: translate(100%, 0);
    -moz-transform: translate(100%, 0);
    -ms-transform: translate(100%, 0);
    -o-transform: translate(100%, 0);
    transform: translate(100%, 0);
  }
  /* The flyout button */
  .flyout {
    top: 22px;
    position: absolute;
    display: block;
    width: 22px;
    height: 20px;
    cursor: pointer;
  }
  .flyout.right {
    float: right;
    right: 20px;
  }
  .flyout.left {
    float: left;
    left: 20px;
  }
  .flyout a {
    width: 13px;
    height: 2px;
    top: 9px;
    float: left;
    display: block;
    background: #415141;
    position: relative;
    -webkit-transition: background 100ms ease-in-out 300ms;
    -moz-transition: background 100ms ease-in-out 300ms;
    -ms-transition: background 100ms ease-in-out 300ms;
    -o-transition: background 100ms ease-in-out 300ms;
    transition: background 100ms ease-in-out 300ms;
  }
  .flyout a:before,
  .flyout a:after {
    height: 2px;
    background: #415141;
    position: absolute;
    left: 0;
    content: '';
    -webkit-transform: rotate3d(0, 0, 0, 0deg);
    -moz-transform: rotate3d(0, 0, 0, 0deg);
    -ms-transform: rotate3d(0, 0, 0, 0deg);
    -o-transform: rotate3d(0, 0, 0, 0deg);
    transform: rotate3d(0, 0, 0, 0deg);
    -webkit-transition: transform 300ms linear 0ms, top 300ms linear 400ms, width 300ms linear 700ms;
    -moz-transition: transform 300ms linear 0ms, top 300ms linear 400ms, width 300ms linear 700ms;
    -ms-transition: transform 300ms linear 0ms, top 300ms linear 400ms, width 300ms linear 700ms;
    -o-transition: transform 300ms linear 0ms, top 300ms linear 400ms, width 300ms linear 700ms;
    transition: transform 300ms linear 0ms, top 300ms linear 400ms, width 300ms linear 700ms;
  }
  .flyout a:before {
    top: -6px;
    width: 22px;
  }
  .flyout a:after {
    top: 6px;
    width: 17px;
  }
  .flyout.alive {
    -webkit-transition: all 0.4s linear 0s;
    -moz-transition: all 0.4s linear 0s;
    -ms-transition: all 0.4s linear 0s;
    -o-transition: all 0.4s linear 0s;
    transition: all 0.4s linear 0s;
  }
  .flyout.alive a {
    width: 20px;
    background: transparent;
    -webkit-transition: background 100ms ease-in-out 600ms;
    -moz-transition: background 100ms ease-in-out 600ms;
    -ms-transition: background 100ms ease-in-out 600ms;
    -o-transition: background 100ms ease-in-out 600ms;
    transition: background 100ms ease-in-out 600ms;
  }
  .flyout.alive a:before,
  .flyout.alive a:after {
    -webkit-transition: width 300ms linear 0ms, top 300ms linear 300ms, transform 300ms linear 700ms;
    -moz-transition: width 300ms linear 0ms, top 300ms linear 300ms, transform 300ms linear 700ms;
    -ms-transition: width 300ms linear 0ms, top 300ms linear 300ms, transform 300ms linear 700ms;
    -o-transition: width 300ms linear 0ms, top 300ms linear 300ms, transform 300ms linear 700ms;
    transition: width 300ms linear 0ms, top 300ms linear 300ms, transform 300ms linear 700ms;
  }
  .flyout.alive a:before {
    top: 0px;
    width: 22px;
    -webkit-transform: rotate3d(0, 0, 1, -40deg);
    -moz-transform: rotate3d(0, 0, 1, -40deg);
    -ms-transform: rotate3d(0, 0, 1, -40deg);
    -o-transform: rotate3d(0, 0, 1, -40deg);
    transform: rotate3d(0, 0, 1, -40deg);
  }
  .flyout.alive a:after {
    top: 0px;
    width: 22px;
    -webkit-transform: rotate3d(0, 0, 1, 40deg);
    -moz-transform: rotate3d(0, 0, 1, 40deg);
    -ms-transform: rotate3d(0, 0, 1, 40deg);
    -o-transform: rotate3d(0, 0, 1, 40deg);
    transform: rotate3d(0, 0, 1, 40deg);
  }
}
/* ------------------------------ */
/* Form Styles */
/* ------------------------------ */
.row,
.checkboxRow {
  position: relative;
}
.row input[type=checkbox],
.checkboxRow input[type=checkbox],
.row input[type=radio],
.checkboxRow input[type=radio] {
  float: left;
  cursor: pointer;
  visibility: hidden;
}
.row input[type=checkbox] + label,
.checkboxRow input[type=checkbox] + label,
.row input[type=radio] + label,
.checkboxRow input[type=radio] + label {
  float: left;
  cursor: pointer;
}
.row input[type=checkbox] + label:before,
.checkboxRow input[type=checkbox] + label:before,
.row input[type=radio] + label:before,
.checkboxRow input[type=radio] + label:before {
  content: '';
  display: inline-block;
  float: left;
  width: 20px;
  height: 20px;
  background: #FFF;
  margin: 1px 8px 0 0;
  border: 1px solid #DDD;
  visibility: visible;
  cursor: pointer;
}
.row input[type=checkbox]:checked + label:before,
.checkboxRow input[type=checkbox]:checked + label:before,
.row input[type=radio]:checked + label:before,
.checkboxRow input[type=radio]:checked + label:before {
  background: #038779;
  content: '\f00c';
  font-family: 'FontAwesome';
  color: #FFF;
  text-align: center;
  line-height: 20px;
}
.row input[type=checkbox][type=radio] + label:before,
.checkboxRow input[type=checkbox][type=radio] + label:before,
.row input[type=radio][type=radio] + label:before,
.checkboxRow input[type=radio][type=radio] + label:before {
  border-radius: 100%;
}
.lt-ie9 input[type=checkbox],
.lt-ie9 input[type=radio] {
  margin: 9px 10px 0;
  visibility: visible;
}
.lt-ie9 input[type=checkbox] + label:before,
.lt-ie9 input[type=radio] + label:before {
  display: none;
}
/*----------------------------------------- */
/* Fonts
----------------------------------------- */
@font-face {
  font-family: "TradeGothicNextW01-Cond";
  src: url("../font/5be4a815-5a22-4a8b-8a38-10467be39d2e.eot?#iefix");
  src: url("../font/5be4a815-5a22-4a8b-8a38-10467be39d2e.eot?#iefix") format("eot"), url("../font/a8816340-0294-4243-8519-b2ccf08ca174.woff2") format("woff2"), url("../font/eb20bf3e-7a5c-4c98-8bc5-f38c1b3dd9f2.woff") format("woff"), url("../font/bbd9ed4b-21d6-4a35-a3eb-176c31258e03.ttf") format("truetype");
}
/* ------------------------------ */
/* Vanilla Datepicker Styles  */
/* ------------------------------ */
#ui-datepicker-div,
.hasDatepicker {
  background: #fff;
}
#ui-datepicker-div .ui-datepicker-title,
.hasDatepicker .ui-datepicker-title {
  font-size: 12px;
  padding: 10px 0;
  text-align: center;
  font-weight: bold;
  font-family: Arial, Helvetica, sans-serif;
  text-transform: uppercase;
}
#ui-datepicker-div .ui-icon-circle-triangle-e,
.hasDatepicker .ui-icon-circle-triangle-e {
  float: right;
  margin: 15px;
  cursor: pointer;
}
#ui-datepicker-div .ui-icon-circle-triangle-w,
.hasDatepicker .ui-icon-circle-triangle-w {
  float: left;
  margin: 15px;
  cursor: pointer;
}
#ui-datepicker-div .ui-datepicker-calendar,
.hasDatepicker .ui-datepicker-calendar {
  background: #fff;
}
#ui-datepicker-div .ui-datepicker-calendar thead,
.hasDatepicker .ui-datepicker-calendar thead {
  text-transform: uppercase;
  color: #717171;
}
#ui-datepicker-div .ui-datepicker-calendar th,
.hasDatepicker .ui-datepicker-calendar th,
#ui-datepicker-div .ui-datepicker-calendar td,
.hasDatepicker .ui-datepicker-calendar td {
  padding: 7.5px 9px;
  border: 1px solid #f1f1f1;
  cursor: pointer;
  text-align: center;
  z-index: 100;
  position: relative;
}
#ui-datepicker-div .ui-datepicker-calendar td a,
.hasDatepicker .ui-datepicker-calendar td a {
  color: #3c3c3c;
  display: block;
}
#ui-datepicker-div .ui-datepicker-calendar td.ui-state-disabled,
.hasDatepicker .ui-datepicker-calendar td.ui-state-disabled {
  border: 0;
}
#ui-datepicker-div .ui-datepicker-calendar .ui-datepicker-current-day,
.hasDatepicker .ui-datepicker-calendar .ui-datepicker-current-day {
  background: #eee;
}
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.4.2
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2015 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
/* @group Base */
.chosen-container {
  position: relative;
  min-width: 190px;
  display: inline-block;
  vertical-align: middle;
  zoom: 1;
  *display: inline;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  border: 1px solid #DDD;
  border-radius: 5px;
}
.chosen-container .chosen-drop {
  position: absolute;
  top: 100%;
  left: -9999px;
  border-top: 0;
  background: #fff;
  z-index: 6000;
  border: 1px solid #DDD;
}
.chosen-container.chosen-with-drop .chosen-drop {
  left: -1px;
  right: -1px;
}
.chosen-container a {
  cursor: pointer;
}
.chosen-container .search-choice .group-name,
.chosen-container .chosen-single .group-name {
  margin-right: 4px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: normal;
  color: #999999;
}
.chosen-container .search-choice .group-name:after,
.chosen-container .chosen-single .group-name:after {
  content: ":";
  padding-left: 2px;
  vertical-align: top;
}
/* @end */
/* @group Single Chosen */
.chosen-container-single .chosen-single {
  position: relative;
  display: block;
  overflow: hidden;
  text-align: left;
  padding: 0 35px 0 10px;
  height: 38px;
  background-color: #FFF;
  text-decoration: none;
  white-space: nowrap;
  line-height: 38px;
  border-radius: 5px;
}
.chosen-container-single .chosen-default {
  color: #999;
}
.chosen-container-single .chosen-single span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chosen-container-single .chosen-single-with-deselect span {
  margin-right: 38px;
}
.chosen-container-single .chosen-single abbr {
  position: absolute;
  top: 6px;
  right: 26px;
  display: block;
  width: 12px;
  height: 12px;
  font-size: 1px;
}
.chosen-container-single .chosen-single div {
  position: absolute;
  top: 0;
  right: 25px;
  display: block;
  width: 18px;
  height: 100%;
}
.chosen-container-single .chosen-single div b {
  display: block;
  width: 100%;
  height: 100%;
}
.chosen-container-single .chosen-single div b:after {
  content: "\f0d7";
  right: -15px;
  position: absolute;
  top: 0px;
  font-family: 'FontAwesome';
  -webkit-transition: transform 200ms ease 0ms;
  -moz-transition: transform 200ms ease 0ms;
  -ms-transition: transform 200ms ease 0ms;
  -o-transition: transform 200ms ease 0ms;
  transition: transform 200ms ease 0ms;
}
.chosen-container-single .chosen-search {
  position: relative;
  z-index: 1010;
  margin: 0;
  padding: 3px 4px;
  white-space: nowrap;
  background: #FFF;
}
.chosen-container-single .chosen-search input[type="search"] {
  margin: 5px 0;
  padding: 5px 20px 5px 5px;
  width: 100%;
  height: auto;
  outline: 0;
  font-size: 1em;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #DDD;
}
.chosen-container-single .chosen-drop {
  margin-top: -3px;
  border-radius: 0 0 4px 4px;
  background-clip: padding-box;
  text-align: left;
  background: #FFF;
  border: 1px solid #DDD;
  border-top: 0;
}
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
  position: absolute;
  left: -9999px;
}
/* @end */
/* @group Results */
.chosen-container .chosen-results {
  float: left;
  width: 100%;
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0 4px 4px 0;
  padding: 0 4px;
  max-height: 240px;
  -webkit-overflow-scrolling: touch;
}
.chosen-container .chosen-results li {
  display: none;
  margin: 0;
  padding: 7px 6px;
  list-style: none;
  line-height: 15px;
  word-wrap: break-word;
  -webkit-touch-callout: none;
}
.chosen-container .chosen-results li.active-result {
  display: list-item;
  cursor: pointer;
}
.chosen-container .chosen-results li.disabled-result {
  display: list-item;
  color: #ccc;
  cursor: default;
}
.chosen-container .chosen-results li.highlighted {
  background-color: #dddddd;
}
.chosen-container .chosen-results li.no-results {
  color: #777;
  display: list-item;
  background: #f4f4f4;
}
.chosen-container .chosen-results li.group-result {
  display: list-item;
  font-weight: bold;
  cursor: default;
  border-bottom: 1px solid #EEE;
  color: #FFF;
  padding: 0;
  height: 1px;
  margin: 10px 5px;
}
.chosen-container .chosen-results li em {
  font-style: normal;
  text-decoration: underline;
}
/* @end */
/* @group Multi Chosen */
.chosen-container-multi .chosen-choices {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 5px 5px;
  width: 100%;
  height: auto !important;
  height: 1%;
  background-color: #fff;
  cursor: text;
}
.chosen-container-multi .chosen-choices li {
  float: left;
  list-style: none;
}
.chosen-container-multi .chosen-choices li.search-field {
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.chosen-container-multi .chosen-choices li.search-field input[type="search"] {
  margin: 1px 0;
  padding: 0;
  height: 25px;
  outline: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none;
  color: #999;
  font-size: 100%;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
}
.chosen-container-multi .chosen-choices li.search-choice {
  position: relative;
  margin: 3px 5px 3px 0;
  padding: 5px 20px 5px 5px;
  max-width: 100%;
  background-repeat: repeat-x;
  background-clip: padding-box;
  color: #333;
  line-height: 13px;
  cursor: default;
  background: #038779;
  color: #fff;
  border-radius: 3px;
}
.chosen-container-multi .chosen-choices li.search-choice span {
  word-wrap: break-word;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  position: absolute;
  top: 6px;
  right: 3px;
  display: block;
  width: 12px;
  height: 12px;
  font-size: 1px;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before {
  content: '\f00d';
  font-family: 'FontAwesome';
  font-size: 12px;
  color: #fff;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
  background-position: -42px -10px;
}
.chosen-container-multi .chosen-choices li.search-choice-disabled {
  padding-right: 5px;
  border: 1px solid #ccc;
  background-color: #e4e4e4;
  color: #666;
}
.chosen-container-multi .chosen-choices li.search-choice-focus {
  background: #d4d4d4;
}
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
  background-position: -42px -10px;
}
.chosen-container-multi .chosen-results {
  margin: 0;
  padding: 0;
}
.chosen-container-multi .chosen-drop .result-selected {
  display: list-item;
  color: #ccc;
  cursor: default;
}
/* @end */
/* @group Active  */
.chosen-container-active.chosen-with-drop .chosen-single div {
  border-left: none;
  background: transparent;
}
.chosen-container-active.chosen-with-drop {
  border-radius: 5px 5px 0 0;
}
.chosen-container-active.chosen-with-drop .chosen-single div b:after {
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  -o-transform: rotate(-180deg);
  transform: rotate(-180deg);
}
.chosen-container-active .chosen-choices li.search-field input[type="search"] {
  color: #222 !important;
}
/* @end */
/* @group Disabled Support */
.chosen-disabled {
  cursor: default;
  opacity: 0.2;
}
.chosen-disabled .chosen-single {
  cursor: default;
}
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
  cursor: default;
}
/* @end */
/* @group Right to Left */
.chosen-rtl {
  text-align: right;
}
.chosen-rtl .chosen-single {
  overflow: visible;
  padding: 0 8px 0 0;
}
.chosen-rtl .chosen-single span {
  margin-right: 0;
  margin-left: 26px;
  direction: rtl;
}
.chosen-rtl .chosen-single-with-deselect span {
  margin-left: 38px;
}
.chosen-rtl .chosen-single div {
  right: auto;
  left: 3px;
}
.chosen-rtl .chosen-single abbr {
  right: auto;
  left: 26px;
}
.chosen-rtl .chosen-choices li {
  float: right;
}
.chosen-rtl .chosen-choices li.search-field input[type="search"] {
  direction: rtl;
}
.chosen-rtl .chosen-choices li.search-choice {
  margin: 3px 5px 3px 0;
  padding: 3px 5px 3px 19px;
}
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
  right: auto;
  left: 4px;
}
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
.chosen-rtl .chosen-drop {
  left: 9999px;
}
.chosen-rtl.chosen-container-single .chosen-results {
  margin: 0 0 4px 4px;
  padding: 0 4px 0 0;
}
.chosen-rtl .chosen-results li.group-option {
  padding-right: 15px;
  padding-left: 0;
}
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
  border-right: none;
}
.chosen-rtl .chosen-search input[type="text"] {
  padding: 4px 5px 4px 20px;
  direction: rtl;
}
.chosen-rtl.chosen-container-single .chosen-single div b {
  background-position: 6px 2px;
}
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
  background-position: -12px 2px;
}
.mobileChosen {
  position: relative;
  min-width: 200px;
}
.mobileChosen select {
  display: block !important;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 998;
}
/*!
 * FullCalendar v2.5.0 Stylesheet
 * Docs & License: http://fullcalendar.io/
 * (c) 2015 Adam Shaw
 */
.fc {
  direction: ltr;
  text-align: left;
}
.fc-rtl {
  text-align: right;
}
body .fc {
  /* extra precedence to overcome jqui */
  font-size: 1em;
}
/* Colors
--------------------------------------------------------------------------------------------------*/
.fc-unthemed th,
.fc-unthemed td,
.fc-unthemed thead,
.fc-unthemed tbody,
.fc-unthemed .fc-divider,
.fc-unthemed .fc-row,
.fc-unthemed .fc-popover {
  border-color: #ddd;
}
.fc-unthemed .fc-popover {
  background-color: #fff;
}
.fc-unthemed .fc-divider,
.fc-unthemed .fc-popover .fc-header {
  background: #eee;
}
.fc-unthemed .fc-popover .fc-header .fc-close {
  color: #666;
}
.fc-unthemed .fc-today {
  background: #fcf8e3;
}
.fc-highlight {
  /* when user is selecting cells */
  background: #bce8f1;
  opacity: 0.3;
  filter: alpha(opacity=30);
  /* for IE */
}
.fc-bgevent {
  /* default look for background events */
  background: #8fdf82;
  opacity: 0.3;
  filter: alpha(opacity=30);
  /* for IE */
}
.fc-nonbusiness {
  /* default look for non-business-hours areas */
  /* will inherit .fc-bgevent's styles */
  background: #d7d7d7;
}
/* Icons (inline elements with styled text that mock arrow icons)
--------------------------------------------------------------------------------------------------*/
.fc-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1em;
  font-size: 1em;
  text-align: center;
  overflow: hidden;
  font-family: "Courier New", Courier, monospace;
  /* don't allow browser text-selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/*
Acceptable font-family overrides for individual icons:
	"Arial", sans-serif
	"Times New Roman", serif

NOTE: use percentage font sizes or else old IE chokes
*/
.fc-icon:after {
  position: relative;
  margin: 0 -1em;
  /* ensures character will be centered, regardless of width */
}
.fc-icon-left-single-arrow:after {
  content: "\02039";
  font-weight: bold;
  font-size: 200%;
  top: -7%;
  left: 3%;
}
.fc-icon-right-single-arrow:after {
  content: "\0203A";
  font-weight: bold;
  font-size: 200%;
  top: -7%;
  left: -3%;
}
.fc-icon-left-double-arrow:after {
  content: "\000AB";
  font-size: 160%;
  top: -7%;
}
.fc-icon-right-double-arrow:after {
  content: "\000BB";
  font-size: 160%;
  top: -7%;
}
.fc-icon-left-triangle:after {
  content: "\25C4";
  font-size: 125%;
  top: 3%;
  left: -2%;
}
.fc-icon-right-triangle:after {
  content: "\25BA";
  font-size: 125%;
  top: 3%;
  left: 2%;
}
.fc-icon-down-triangle:after {
  content: "\25BC";
  font-size: 125%;
  top: 2%;
}
.fc-icon-x:after {
  content: "\000D7";
  font-size: 200%;
  top: 6%;
}
/* Buttons (styled <button> tags, normalized to work cross-browser)
--------------------------------------------------------------------------------------------------*/
.fc button {
  /* force height to include the border and padding */
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  /* dimensions */
  margin: 0;
  height: 2.1em;
  padding: 0 0.6em;
  /* text & cursor */
  font-size: 1em;
  /* normalize */
  white-space: nowrap;
  cursor: pointer;
}
/* Firefox has an annoying inner border */
.fc button::-moz-focus-inner {
  margin: 0;
  padding: 0;
}
.fc-state-default {
  /* non-theme */
  border: 1px solid;
}
.fc-state-default.fc-corner-left {
  /* non-theme */
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.fc-state-default.fc-corner-right {
  /* non-theme */
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
/* icons in buttons */
.fc button .fc-icon {
  /* non-theme */
  position: relative;
  top: -0.05em;
  /* seems to be a good adjustment across browsers */
  margin: 0 0.2em;
  vertical-align: middle;
}
/*
  button states
  borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
*/
.fc-state-default {
  background-color: #f5f5f5;
  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
  background-repeat: repeat-x;
  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  color: #333;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.fc-state-hover,
.fc-state-down,
.fc-state-active,
.fc-state-disabled {
  color: #333333;
  background-color: #e6e6e6;
}
.fc-state-hover {
  color: #333333;
  text-decoration: none;
  background-position: 0 -15px;
  -webkit-transition: background-position 0.1s linear;
  -moz-transition: background-position 0.1s linear;
  -o-transition: background-position 0.1s linear;
  transition: background-position 0.1s linear;
}
.fc-state-down,
.fc-state-active {
  background-color: #cccccc;
  background-image: none;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.fc-state-disabled {
  cursor: default;
  background-image: none;
  opacity: 0.65;
  filter: alpha(opacity=65);
  box-shadow: none;
}
/* Buttons Groups
--------------------------------------------------------------------------------------------------*/
.fc-button-group {
  display: inline-block;
}
/*
every button that is not first in a button group should scootch over one pixel and cover the
previous button's border...
*/
.fc .fc-button-group > * {
  /* extra precedence b/c buttons have margin set to zero */
  float: left;
  margin: 0 0 0 -1px;
}
.fc .fc-button-group > :first-child {
  /* same */
  margin-left: 0;
}
/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-popover {
  position: absolute;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.fc-popover .fc-header {
  /* TODO: be more consistent with fc-head/fc-body */
  padding: 2px 4px;
}
.fc-popover .fc-header .fc-title {
  margin: 0 2px;
}
.fc-popover .fc-header .fc-close {
  cursor: pointer;
}
.fc-ltr .fc-popover .fc-header .fc-title,
.fc-rtl .fc-popover .fc-header .fc-close {
  float: left;
}
.fc-rtl .fc-popover .fc-header .fc-title,
.fc-ltr .fc-popover .fc-header .fc-close {
  float: right;
}
/* unthemed */
.fc-unthemed .fc-popover {
  border-width: 1px;
  border-style: solid;
}
.fc-unthemed .fc-popover .fc-header .fc-close {
  font-size: 0.9em;
  margin-top: 2px;
}
/* jqui themed */
.fc-popover > .ui-widget-header + .ui-widget-content {
  border-top: 0;
  /* where they meet, let the header have the border */
}
/* Misc Reusable Components
--------------------------------------------------------------------------------------------------*/
.fc-divider {
  border-style: solid;
  border-width: 1px;
}
hr.fc-divider {
  height: 0;
  margin: 0;
  padding: 0 0 2px;
  /* height is unreliable across browsers, so use padding */
  border-width: 1px 0;
}
.fc-clear {
  clear: both;
}
.fc-bg,
.fc-bgevent-skeleton,
.fc-highlight-skeleton,
.fc-helper-skeleton {
  /* these element should always cling to top-left/right corners */
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.fc-bg {
  bottom: 0;
  /* strech bg to bottom edge */
}
.fc-bg table {
  height: 100%;
  /* strech bg to bottom edge */
}
/* Tables
--------------------------------------------------------------------------------------------------*/
.fc table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 1em;
  /* normalize cross-browser */
}
.fc th {
  text-align: center;
}
.fc th,
.fc td {
  border-style: solid;
  border-width: 1px;
  padding: 0;
  vertical-align: top;
}
.fc td.fc-today {
  border-style: double;
  /* overcome neighboring borders */
}
/* Fake Table Rows
--------------------------------------------------------------------------------------------------*/
.fc .fc-row {
  /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */
  /* no visible border by default. but make available if need be (scrollbar width compensation) */
  border-style: solid;
  border-width: 0;
}
.fc-row table {
  /* don't put left/right border on anything within a fake row.
	   the outer tbody will worry about this */
  border-left: 0 hidden transparent;
  border-right: 0 hidden transparent;
  /* no bottom borders on rows */
  border-bottom: 0 hidden transparent;
}
.fc-row:first-child table {
  border-top: 0 hidden transparent;
  /* no top border on first row */
}
/* Day Row (used within the header and the DayGrid)
--------------------------------------------------------------------------------------------------*/
.fc-row {
  position: relative;
}
.fc-row .fc-bg {
  z-index: 1;
}
/* highlighting cells & background event skeleton */
.fc-row .fc-bgevent-skeleton,
.fc-row .fc-highlight-skeleton {
  bottom: 0;
  /* stretch skeleton to bottom of row */
}
.fc-row .fc-bgevent-skeleton table,
.fc-row .fc-highlight-skeleton table {
  height: 100%;
  /* stretch skeleton to bottom of row */
}
.fc-row .fc-highlight-skeleton td,
.fc-row .fc-bgevent-skeleton td {
  border-color: transparent;
}
.fc-row .fc-bgevent-skeleton {
  z-index: 2;
}
.fc-row .fc-highlight-skeleton {
  z-index: 3;
}
/*
row content (which contains day/week numbers and events) as well as "helper" (which contains
temporary rendered events).
*/
.fc-row .fc-content-skeleton {
  position: relative;
  z-index: 4;
  padding-bottom: 2px;
  /* matches the space above the events */
}
.fc-row .fc-helper-skeleton {
  z-index: 5;
}
.fc-row .fc-content-skeleton td,
.fc-row .fc-helper-skeleton td {
  /* see-through to the background below */
  background: none;
  /* in case <td>s are globally styled */
  border-color: transparent;
  /* don't put a border between events and/or the day number */
  border-bottom: 0;
}
.fc-row .fc-content-skeleton tbody td,
.fc-row .fc-helper-skeleton tbody td {
  /* don't put a border between event cells */
  border-top: 0;
}
/* Scrolling Container
--------------------------------------------------------------------------------------------------*/
.fc-scroller {
  /* this class goes on elements for guaranteed vertical scrollbars */
  overflow-y: scroll;
  overflow-x: hidden;
}
.fc-scroller > * {
  /* we expect an immediate inner element */
  position: relative;
  /* re-scope all positions */
  width: 100%;
  /* hack to force re-sizing this inner element when scrollbars appear/disappear */
  overflow: hidden;
  /* don't let negative margins or absolute positioning create further scroll */
}
/* Global Event Styles
--------------------------------------------------------------------------------------------------*/
.fc-event {
  position: relative;
  /* for resize handle and other inner positioning */
  display: block;
  /* make the <a> tag block */
  font-size: 0.85em;
  line-height: 1.3;
  border-radius: 3px;
  border: 1px solid #008778;
  /* default BORDER color */
  background-color: #00B2AE;
  /* default BACKGROUND color */
  color: #FFF;
  font-weight: normal;
  /* undo jqui's ui-widget-header bold */
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
}
.fc-event:hover {
  background: #012320;
  border-color: #012320;
}
/* overpower some of bootstrap's and jqui's styles on <a> tags */
.fc-event,
.fc-event:hover,
.ui-widget .fc-event {
  color: #fff;
  /* default TEXT color */
  text-decoration: none;
  /* if <a> has an href */
}
.fc-event[href],
.fc-event.fc-draggable {
  cursor: pointer;
  /* give events with links and draggable events a hand mouse pointer */
}
.fc-not-allowed,
.fc-not-allowed .fc-event {
  /* to override an event's custom cursor */
  cursor: not-allowed;
}
.fc-event .fc-bg {
  /* the generic .fc-bg already does position */
  z-index: 1;
  background: #fff;
  opacity: 0.25;
  filter: alpha(opacity=25);
  /* for IE */
}
.fc-event .fc-content {
  position: relative;
  z-index: 2;
}
.fc-event .fc-resizer {
  position: absolute;
  z-index: 3;
}
/* Horizontal Events
--------------------------------------------------------------------------------------------------*/
/* events that are continuing to/from another week. kill rounded corners and butt up against edge */
.fc-ltr .fc-h-event.fc-not-start,
.fc-rtl .fc-h-event.fc-not-end {
  margin-left: 0;
  border-left-width: 0;
  padding-left: 1px;
  /* replace the border with padding */
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.fc-ltr .fc-h-event.fc-not-end,
.fc-rtl .fc-h-event.fc-not-start {
  margin-right: 0;
  border-right-width: 0;
  padding-right: 1px;
  /* replace the border with padding */
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
/* resizer */
.fc-h-event .fc-resizer {
  /* positioned it to overcome the event's borders */
  top: -1px;
  bottom: -1px;
  left: -1px;
  right: -1px;
  width: 5px;
}
/* left resizer  */
.fc-ltr .fc-h-event .fc-start-resizer,
.fc-ltr .fc-h-event .fc-start-resizer:before,
.fc-ltr .fc-h-event .fc-start-resizer:after,
.fc-rtl .fc-h-event .fc-end-resizer,
.fc-rtl .fc-h-event .fc-end-resizer:before,
.fc-rtl .fc-h-event .fc-end-resizer:after {
  right: auto;
  /* ignore the right and only use the left */
  cursor: w-resize;
}
/* right resizer */
.fc-ltr .fc-h-event .fc-end-resizer,
.fc-ltr .fc-h-event .fc-end-resizer:before,
.fc-ltr .fc-h-event .fc-end-resizer:after,
.fc-rtl .fc-h-event .fc-start-resizer,
.fc-rtl .fc-h-event .fc-start-resizer:before,
.fc-rtl .fc-h-event .fc-start-resizer:after {
  left: auto;
  /* ignore the left and only use the right */
  cursor: e-resize;
}
/* DayGrid events
----------------------------------------------------------------------------------------------------
We use the full "fc-day-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/
.fc-day-grid-event {
  margin: 1px 2px 0;
  /* spacing between events and edges */
  padding: 2px 5px;
}
.fc-day-grid-event .fc-content {
  /* force events to be one-line tall */
  overflow: hidden;
}
.fc-day-grid-event .fc-time {
  font-weight: bold;
}
.fc-day-grid-event .fc-resizer {
  /* enlarge the default hit area */
  left: -3px;
  right: -3px;
  width: 7px;
}
/* Event Limiting
--------------------------------------------------------------------------------------------------*/
/* "more" link that represents hidden events */
a.fc-more {
  margin: 1px 3px;
  font-size: 0.85em;
  cursor: pointer;
  text-decoration: none;
}
a.fc-more:hover {
  text-decoration: underline;
}
.fc-limited {
  /* rows and cells that are hidden because of a "more" link */
  display: none;
}
/* popover that appears when "more" link is clicked */
.fc-day-grid .fc-row {
  z-index: 1;
  /* make the "more" popover one higher than this */
}
.fc-more-popover {
  z-index: 2;
  width: 220px;
}
.fc-more-popover .fc-event-container {
  padding: 10px;
}
/* Toolbar
--------------------------------------------------------------------------------------------------*/
.fc-toolbar {
  text-align: center;
  margin-bottom: 1em;
}
.fc-toolbar .fc-left {
  float: left;
}
.fc-toolbar .fc-right {
  float: right;
}
.fc-toolbar .fc-center {
  display: inline-block;
}
/* the things within each left/right/center section */
.fc .fc-toolbar > * > * {
  /* extra precedence to override button border margins */
  float: left;
  margin-left: 0.75em;
}
/* the first thing within each left/center/right section */
.fc .fc-toolbar > * > :first-child {
  /* extra precedence to override button border margins */
  margin-left: 0;
}
/* title text */
.fc-toolbar h2 {
  margin: 0;
}
/* button layering (for border precedence) */
.fc-toolbar button {
  position: relative;
}
.fc-toolbar .fc-state-hover,
.fc-toolbar .ui-state-hover {
  z-index: 2;
}
.fc-toolbar .fc-state-down {
  z-index: 3;
}
.fc-toolbar .fc-state-active,
.fc-toolbar .ui-state-active {
  z-index: 4;
}
.fc-toolbar button:focus {
  z-index: 5;
}
/* View Structure
--------------------------------------------------------------------------------------------------*/
/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
.fc-view-container *,
.fc-view-container *:before,
.fc-view-container *:after {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.fc-view,
.fc-view > table {
  /* so dragged elements can be above the view's main element */
  position: relative;
  z-index: 1;
}
/* BasicView
--------------------------------------------------------------------------------------------------*/
/* day row structure */
.fc-basicWeek-view .fc-content-skeleton,
.fc-basicDay-view .fc-content-skeleton {
  /* we are sure there are no day numbers in these views, so... */
  padding-top: 1px;
  /* add a pixel to make sure there are 2px padding above events */
  padding-bottom: 1em;
  /* ensure a space at bottom of cell for user selecting/clicking */
}
.fc-basic-view .fc-body .fc-row {
  min-height: 4em;
  /* ensure that all rows are at least this tall */
}
/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */
.fc-row.fc-rigid {
  overflow: hidden;
}
.fc-row.fc-rigid .fc-content-skeleton {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
/* week and day number styling */
.fc-basic-view .fc-week-number,
.fc-basic-view .fc-day-number {
  padding: 0 2px;
}
.fc-basic-view td.fc-week-number span,
.fc-basic-view td.fc-day-number {
  padding-top: 2px;
  padding-bottom: 2px;
}
.fc-basic-view .fc-week-number {
  text-align: center;
}
.fc-basic-view .fc-week-number span {
  /* work around the way we do column resizing and ensure a minimum width */
  display: inline-block;
  min-width: 1.25em;
}
.fc-ltr .fc-basic-view .fc-day-number {
  text-align: right;
}
.fc-rtl .fc-basic-view .fc-day-number {
  text-align: left;
}
.fc-day-number.fc-other-month {
  opacity: 0.3;
  filter: alpha(opacity=30);
  /* for IE */
  /* opacity with small font can sometimes look too faded
	   might want to set the 'color' property instead
	   making day-numbers bold also fixes the problem */
}
/* AgendaView all-day area
--------------------------------------------------------------------------------------------------*/
.fc-agenda-view .fc-day-grid {
  position: relative;
  z-index: 2;
  /* so the "more.." popover will be over the time grid */
}
.fc-agenda-view .fc-day-grid .fc-row {
  min-height: 3em;
  /* all-day section will never get shorter than this */
}
.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {
  padding-top: 1px;
  /* add a pixel to make sure there are 2px padding above events */
  padding-bottom: 1em;
  /* give space underneath events for clicking/selecting days */
}
/* TimeGrid axis running down the side (for both the all-day area and the slot area)
--------------------------------------------------------------------------------------------------*/
.fc .fc-axis {
  /* .fc to overcome default cell styles */
  vertical-align: middle;
  padding: 0 4px;
  white-space: nowrap;
}
.fc-ltr .fc-axis {
  text-align: right;
}
.fc-rtl .fc-axis {
  text-align: left;
}
.ui-widget td.fc-axis {
  font-weight: normal;
  /* overcome jqui theme making it bold */
}
/* TimeGrid Structure
--------------------------------------------------------------------------------------------------*/
.fc-time-grid-container,
.fc-time-grid {
  /* so slats/bg/content/etc positions get scoped within here */
  position: relative;
  z-index: 1;
}
.fc-time-grid {
  min-height: 100%;
  /* so if height setting is 'auto', .fc-bg stretches to fill height */
}
.fc-time-grid table {
  /* don't put outer borders on slats/bg/content/etc */
  border: 0 hidden transparent;
}
.fc-time-grid > .fc-bg {
  z-index: 1;
}
.fc-time-grid .fc-slats,
.fc-time-grid > hr {
  /* the <hr> AgendaView injects when grid is shorter than scroller */
  position: relative;
  z-index: 2;
}
.fc-time-grid .fc-bgevent-skeleton,
.fc-time-grid .fc-content-skeleton {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.fc-time-grid .fc-bgevent-skeleton {
  z-index: 3;
}
.fc-time-grid .fc-highlight-skeleton {
  z-index: 4;
}
.fc-time-grid .fc-content-skeleton {
  z-index: 5;
}
.fc-time-grid .fc-helper-skeleton {
  z-index: 6;
}
/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-slats td {
  height: 1.5em;
  border-bottom: 0;
  /* each cell is responsible for its top border */
}
.fc-time-grid .fc-slats .fc-minor td {
  border-top-style: dotted;
}
.fc-time-grid .fc-slats .ui-widget-content {
  /* for jqui theme */
  background: none;
  /* see through to fc-bg */
}
/* TimeGrid Highlighting Slots
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-highlight-container {
  /* a div within a cell within the fc-highlight-skeleton */
  position: relative;
  /* scopes the left/right of the fc-highlight to be in the column */
}
.fc-time-grid .fc-highlight {
  position: absolute;
  left: 0;
  right: 0;
  /* top and bottom will be in by JS */
}
/* TimeGrid Event Containment
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-event-container,
.fc-time-grid .fc-bgevent-container {
  /* a div within a cell within the fc-bgevent-skeleton */
  position: relative;
}
.fc-ltr .fc-time-grid .fc-event-container {
  /* space on the sides of events for LTR (default) */
  margin: 0 2.5% 0 2px;
}
.fc-rtl .fc-time-grid .fc-event-container {
  /* space on the sides of events for RTL */
  margin: 0 2px 0 2.5%;
}
.fc-time-grid .fc-event,
.fc-time-grid .fc-bgevent {
  position: absolute;
  z-index: 1;
  /* scope inner z-index's */
}
.fc-time-grid .fc-bgevent {
  /* background events always span full width */
  left: 0;
  right: 0;
}
/* Generic Vertical Event
--------------------------------------------------------------------------------------------------*/
.fc-v-event.fc-not-start {
  /* events that are continuing from another day */
  /* replace space made by the top border with padding */
  border-top-width: 0;
  padding-top: 1px;
  /* remove top rounded corners */
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.fc-v-event.fc-not-end {
  /* replace space made by the top border with padding */
  border-bottom-width: 0;
  padding-bottom: 1px;
  /* remove bottom rounded corners */
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
/* TimeGrid Event Styling
----------------------------------------------------------------------------------------------------
We use the full "fc-time-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/
.fc-time-grid-event {
  overflow: hidden;
  /* don't let the bg flow over rounded corners */
}
.fc-time-grid-event .fc-time,
.fc-time-grid-event .fc-title {
  padding: 0 1px;
}
.fc-time-grid-event .fc-time {
  font-size: 0.85em;
  white-space: nowrap;
}
/* short mode, where time and title are on the same line */
.fc-time-grid-event.fc-short .fc-content {
  /* don't wrap to second line (now that contents will be inline) */
  white-space: nowrap;
}
.fc-time-grid-event.fc-short .fc-time,
.fc-time-grid-event.fc-short .fc-title {
  /* put the time and title on the same line */
  display: inline-block;
  vertical-align: top;
}
.fc-time-grid-event.fc-short .fc-time span {
  display: none;
  /* don't display the full time text... */
}
.fc-time-grid-event.fc-short .fc-time:before {
  content: attr(data-start);
  /* ...instead, display only the start time */
}
.fc-time-grid-event.fc-short .fc-time:after {
  content: "\000A0-\000A0";
  /* seperate with a dash, wrapped in nbsp's */
}
.fc-time-grid-event.fc-short .fc-title {
  font-size: 0.85em;
  /* make the title text the same size as the time */
  padding: 0;
  /* undo padding from above */
}
/* resizer */
.fc-time-grid-event .fc-resizer {
  left: 0;
  right: 0;
  bottom: 0;
  height: 8px;
  overflow: hidden;
  line-height: 8px;
  font-size: 11px;
  font-family: monospace;
  text-align: center;
  cursor: s-resize;
}
.fc-time-grid-event .fc-resizer:after {
  content: "=";
}
.fc-event-container:hover {
  cursor: pointer;
}
/*
td.fc-other-month .fc-day-number {
	display: none;
}
*/
.animationStreet {
  display: block;
  width: 535px;
  height: 316px;
  float: right;
  position: relative;
  margin: 28px 50px;
}
.animationStreet * {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
@-moz-keyframes popIn {
  0% {
    -webkit-transform: translateY(-40px);
    -moz-transform: translateY(-40px);
    -ms-transform: translateY(-40px);
    -o-transform: translateY(-40px);
    transform: translateY(-40px);
  }
  20%,
  50%,
  80%,
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-15px);
    -moz-transform: translateY(-15px);
    -ms-transform: translateY(-15px);
    -o-transform: translateY(-15px);
    transform: translateY(-15px);
  }
  60% {
    -webkit-transform: translateY(-12px);
    -moz-transform: translateY(-12px);
    -ms-transform: translateY(-12px);
    -o-transform: translateY(-12px);
    transform: translateY(-12px);
  }
}
@-webkit-keyframes popIn {
  0% {
    -webkit-transform: translateY(-40px);
    -moz-transform: translateY(-40px);
    -ms-transform: translateY(-40px);
    -o-transform: translateY(-40px);
    transform: translateY(-40px);
  }
  20%,
  50%,
  80%,
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-15px);
    -moz-transform: translateY(-15px);
    -ms-transform: translateY(-15px);
    -o-transform: translateY(-15px);
    transform: translateY(-15px);
  }
  60% {
    -webkit-transform: translateY(-12px);
    -moz-transform: translateY(-12px);
    -ms-transform: translateY(-12px);
    -o-transform: translateY(-12px);
    transform: translateY(-12px);
  }
}
@keyframes popIn {
  0% {
    -webkit-transform: translateY(-40px);
    -moz-transform: translateY(-40px);
    -ms-transform: translateY(-40px);
    -o-transform: translateY(-40px);
    transform: translateY(-40px);
  }
  20%,
  50%,
  80%,
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-15px);
    -moz-transform: translateY(-15px);
    -ms-transform: translateY(-15px);
    -o-transform: translateY(-15px);
    transform: translateY(-15px);
  }
  60% {
    -webkit-transform: translateY(-12px);
    -moz-transform: translateY(-12px);
    -ms-transform: translateY(-12px);
    -o-transform: translateY(-12px);
    transform: translateY(-12px);
  }
}
@-moz-keyframes popUp {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
@-webkit-keyframes popUp {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes popUp {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
.animationStreet .tree {
  position: absolute;
  top: 46px;
  left: 160px;
  z-index: 2;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: 25% 75%;
}
.animationStreet .roadAnimation {
  width: 435px;
  height: 270px;
  overflow: hidden;
  position: absolute;
  top: 50px;
  left: 50px;
}
.animationStreet.ready .road {
  -webkit-animation: popUp 400ms ease-in 0ms 1 forwards;
  -moz-animation: popUp 400ms ease-in 0ms 1 forwards;
  animation: popUp 400ms ease-in 0ms 1 forwards;
}
.animationStreet.ready .tree {
  -webkit-animation: popUp 500ms ease-in 500ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 500ms 1 forwards;
  animation: popUp 500ms ease-in 500ms 1 forwards;
}
.animationStreet.ready .car_1,
.animationStreet.ready .digger_1 {
  -webkit-animation: popUp 500ms linear 500ms 1 forwards;
  -moz-animation: popUp 500ms linear 500ms 1 forwards;
  animation: popUp 500ms linear 500ms 1 forwards;
}
.animationStreet.ready .hotel_1 {
  -webkit-animation: popUp 500ms ease-in 750ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 750ms 1 forwards;
  animation: popUp 500ms ease-in 750ms 1 forwards;
}
.animationStreet.ready .hotel_2 {
  -webkit-animation: popUp 500ms ease-in 1100ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 1100ms 1 forwards;
  animation: popUp 500ms ease-in 1100ms 1 forwards;
}
.animationStreet.ready .lamppost_1 {
  -webkit-animation: popUp 300ms ease-in 250ms 1 forwards;
  -moz-animation: popUp 300ms ease-in 250ms 1 forwards;
  animation: popUp 300ms ease-in 250ms 1 forwards;
}
.animationStreet.ready .lamppost_2 {
  -webkit-animation: popUp 300ms ease-in 500ms 1 forwards;
  -moz-animation: popUp 300ms ease-in 500ms 1 forwards;
  animation: popUp 300ms ease-in 500ms 1 forwards;
}
.animationStreet.ready .lamppost_3 {
  -webkit-animation: popUp 300ms ease-in 750ms 1 forwards;
  -moz-animation: popUp 300ms ease-in 750ms 1 forwards;
  animation: popUp 300ms ease-in 750ms 1 forwards;
}
.animationStreet.ready .house_1 {
  -webkit-animation: popUp 500ms ease-in 1450ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 1450ms 1 forwards;
  animation: popUp 500ms ease-in 1450ms 1 forwards;
}
.animationStreet.ready .house_2 {
  -webkit-animation: popUp 500ms ease-in 1800ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 1800ms 1 forwards;
  animation: popUp 500ms ease-in 1800ms 1 forwards;
}
.animationStreet.ready .house_3 {
  -webkit-animation: popUp 500ms ease-in 2150ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 2150ms 1 forwards;
  animation: popUp 500ms ease-in 2150ms 1 forwards;
}
.animationStreet.ready .house_4 {
  -webkit-animation: popUp 500ms ease-in 2500ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 2500ms 1 forwards;
  animation: popUp 500ms ease-in 2500ms 1 forwards;
}
.animationStreet.ready .house_5 {
  -webkit-animation: popUp 500ms ease-in 2850ms 1 forwards;
  -moz-animation: popUp 500ms ease-in 2850ms 1 forwards;
  animation: popUp 500ms ease-in 2850ms 1 forwards;
}
.animationStreet.ready .car_2 {
  -webkit-animation: driveCar2 20s linear 2s infinite;
  -moz-animation: driveCar2 20s linear 2s infinite;
  animation: driveCar2 20s linear 2s infinite;
}
.animationStreet.ready .car_3 {
  -webkit-animation: driveCar3 20s linear 9s infinite;
  -moz-animation: driveCar3 20s linear 9s infinite;
  animation: driveCar3 20s linear 9s infinite;
}
.animationStreet.ready .car_4 {
  -webkit-animation: driveCar4 20s linear 3s infinite;
  -moz-animation: driveCar4 20s linear 3s infinite;
  animation: driveCar4 20s linear 3s infinite;
}
.animationStreet.ready .car_5 {
  -webkit-animation: driveCar5 20s linear 8s infinite;
  -moz-animation: driveCar5 20s linear 8s infinite;
  animation: driveCar5 20s linear 8s infinite;
}
.animationStreet.ready .car_6 {
  -webkit-animation: driveCar4 20s linear 18s infinite;
  -moz-animation: driveCar4 20s linear 18s infinite;
  animation: driveCar4 20s linear 18s infinite;
}
.animationStreet.ready .car_7 {
  -webkit-animation: driveCar7 20s linear 15s infinite;
  -moz-animation: driveCar7 20s linear 15s infinite;
  animation: driveCar7 20s linear 15s infinite;
}
.animationStreet .road {
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: center center;
}
.animationStreet .hotels .hotel {
  position: absolute;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: bottom center;
}
.animationStreet .hotels .hotel_1 {
  top: -35px;
  left: 104px;
  z-index: 1;
}
.animationStreet .hotels .hotel_2 {
  top: 0;
  left: 188px;
  z-index: 3;
}
.animationStreet .lampposts .lamppost {
  position: absolute;
  z-index: 5;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: center right;
}
.animationStreet .lampposts .lamppost_1 {
  top: 55px;
  left: 167px;
}
.animationStreet .lampposts .lamppost_2 {
  top: 129px;
  left: 295px;
}
.animationStreet .lampposts .lamppost_3 {
  top: 203px;
  left: 424px;
}
.animationStreet .rowOfBuildings .house {
  position: absolute;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: bottom center;
}
.animationStreet .rowOfBuildings .house_1 {
  top: 88px;
  left: 329px;
}
.animationStreet .rowOfBuildings .house_2 {
  top: 106px;
  left: 361px;
}
.animationStreet .rowOfBuildings .house_3 {
  top: 118px;
  left: 391px;
}
.animationStreet .rowOfBuildings .house_4 {
  top: 141px;
  left: 417px;
}
.animationStreet .rowOfBuildings .house_5 {
  top: 140px;
  left: 455px;
}
.animationStreet .vehicles .vehicle {
  position: absolute;
  z-index: 6;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.animationStreet .vehicles .car_1 {
  top: 92px;
  left: 241px;
  z-index: 4;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: 50% 75%;
}
.animationStreet .vehicles .car_2 {
  top: 275px;
  left: 422px;
}
@-moz-keyframes driveCar2 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
@-webkit-keyframes driveCar2 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
@keyframes driveCar2 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
.animationStreet .vehicles .car_3 {
  top: 275px;
  left: 422px;
}
@-moz-keyframes driveCar3 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
@-webkit-keyframes driveCar3 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
@keyframes driveCar3 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
.animationStreet .vehicles .car_4 {
  top: -23px;
  left: -43px;
}
@-moz-keyframes driveCar4 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
@-webkit-keyframes driveCar4 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
@keyframes driveCar4 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
.animationStreet .vehicles .car_5 {
  top: -23px;
  left: -43px;
}
@-moz-keyframes driveCar5 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
@-webkit-keyframes driveCar5 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
@keyframes driveCar5 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
.animationStreet .vehicles .car_6 {
  top: -23px;
  left: -43px;
}
@-moz-keyframes driveCar6 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
@-webkit-keyframes driveCar6 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
@keyframes driveCar6 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
  100% {
    -webkit-transform: translate(480px, 280px);
    -moz-transform: translate(480px, 280px);
    -ms-transform: translate(480px, 280px);
    -o-transform: translate(480px, 280px);
    transform: translate(480px, 280px);
  }
}
.animationStreet .vehicles .car_7 {
  top: 275px;
  left: 422px;
}
@-moz-keyframes driveCar7 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
@-webkit-keyframes driveCar7 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
@keyframes driveCar7 {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  20% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
  100% {
    -webkit-transform: translate(-465px, -270px);
    -moz-transform: translate(-465px, -270px);
    -ms-transform: translate(-465px, -270px);
    -o-transform: translate(-465px, -270px);
    transform: translate(-465px, -270px);
  }
}
.animationStreet .vehicles .digger_1 {
  top: 53px;
  left: 191px;
  z-index: 4;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: 50% 75%;
}
.statGraph {
  width: 570px;
  position: relative;
}
.statGraph .graph {
  width: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
@-moz-keyframes maskIn {
  0% {
    width: 0;
  }
  100% {
    width: 99.9%;
  }
}
@-webkit-keyframes maskIn {
  0% {
    width: 0;
  }
  100% {
    width: 99.9%;
  }
}
@keyframes maskIn {
  0% {
    width: 0;
  }
  100% {
    width: 99.9%;
  }
}
.statGraph .graph:before {
  display: block;
  content: '';
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  background-size: cover;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.statGraph .graphHotels .hotel {
  position: absolute;
  width: 65px;
  z-index: 5;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  transform-origin: 50% 75%;
}
@-moz-keyframes popUp {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
@-webkit-keyframes popUp {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes popUp {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
.statGraph .graphHotels .hotel_1 {
  top: 310px;
  left: 260px;
}
.statGraph .graphHotels .hotel_2 {
  top: 286px;
  left: 341px;
}
.statGraph .graphHotels .hotel_3 {
  top: 251px;
  left: 422px;
}
.statGraph.ready .graph_front {
  z-index: 3;
  -webkit-animation: maskIn 4s ease-out 0.5s 1 forwards;
  -moz-animation: maskIn 4s ease-out 0.5s 1 forwards;
  animation: maskIn 4s ease-out 0.5s 1 forwards;
}
.statGraph.ready .graph_front:before {
  background-image: url(../images/animation/graph/front_graph.png);
}
.statGraph.ready .graph_back {
  z-index: 2;
  -webkit-animation: maskIn 4s ease-out 0s 1 forwards;
  -moz-animation: maskIn 4s ease-out 0s 1 forwards;
  animation: maskIn 4s ease-out 0s 1 forwards;
}
.statGraph.ready .graph_back:before {
  background-image: url(../images/animation/graph/back_graph.png);
}
.statGraph.ready .hotel_1 {
  -webkit-animation: popUp 600ms ease-out 4000ms 1 forwards;
  -moz-animation: popUp 600ms ease-out 4000ms 1 forwards;
  animation: popUp 600ms ease-out 4000ms 1 forwards;
}
.statGraph.ready .hotel_2 {
  -webkit-animation: popUp 600ms ease-out 4400ms 1 forwards;
  -moz-animation: popUp 600ms ease-out 4400ms 1 forwards;
  animation: popUp 600ms ease-out 4400ms 1 forwards;
}
.statGraph.ready .hotel_3 {
  -webkit-animation: popUp 600ms ease-out 4800ms 1 forwards;
  -moz-animation: popUp 600ms ease-out 4800ms 1 forwards;
  animation: popUp 600ms ease-out 4800ms 1 forwards;
}
.roomWrapper {
  width: 50%;
  float: left;
  padding: 50px 0;
}
.room {
  width: 359px;
  height: 328px;
  position: relative;
  margin: 0 auto;
  overflow: hidden;
}
.room img {
  -webkit-transform: scale(1.5) translateY(-500px);
  -moz-transform: scale(1.5) translateY(-500px);
  -ms-transform: scale(1.5) translateY(-500px);
  -o-transform: scale(1.5) translateY(-500px);
  transform: scale(1.5) translateY(-500px);
}
@-moz-keyframes dropDown {
  0% {
    -webkit-transform: scale(1.5) translateY(-500px);
    -moz-transform: scale(1.5) translateY(-500px);
    -ms-transform: scale(1.5) translateY(-500px);
    -o-transform: scale(1.5) translateY(-500px);
    transform: scale(1.5) translateY(-500px);
  }
  100% {
    -webkit-transform: scale(1.5) translateY(0);
    -moz-transform: scale(1.5) translateY(0);
    -ms-transform: scale(1.5) translateY(0);
    -o-transform: scale(1.5) translateY(0);
    transform: scale(1.5) translateY(0);
  }
}
@-webkit-keyframes dropDown {
  0% {
    -webkit-transform: scale(1.5) translateY(-500px);
    -moz-transform: scale(1.5) translateY(-500px);
    -ms-transform: scale(1.5) translateY(-500px);
    -o-transform: scale(1.5) translateY(-500px);
    transform: scale(1.5) translateY(-500px);
  }
  100% {
    -webkit-transform: scale(1.5) translateY(0);
    -moz-transform: scale(1.5) translateY(0);
    -ms-transform: scale(1.5) translateY(0);
    -o-transform: scale(1.5) translateY(0);
    transform: scale(1.5) translateY(0);
  }
}
@keyframes dropDown {
  0% {
    -webkit-transform: scale(1.5) translateY(-500px);
    -moz-transform: scale(1.5) translateY(-500px);
    -ms-transform: scale(1.5) translateY(-500px);
    -o-transform: scale(1.5) translateY(-500px);
    transform: scale(1.5) translateY(-500px);
  }
  100% {
    -webkit-transform: scale(1.5) translateY(0);
    -moz-transform: scale(1.5) translateY(0);
    -ms-transform: scale(1.5) translateY(0);
    -o-transform: scale(1.5) translateY(0);
    transform: scale(1.5) translateY(0);
  }
}
.room .overlay {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: url(../images/animation/room/room.png) center;
  background-size: cover;
  opacity: 0.6;
  display: none;
}
.room .mainRoom {
  position: absolute;
  top: 55px;
  left: 60px;
  z-index: 1;
}
.room .innerWall {
  position: absolute;
  top: 66px;
  left: 115px;
  z-index: 5;
}
.room .plant_1 {
  position: absolute;
  top: 222px;
  left: 76px;
  z-index: 7;
}
.room .plant_2 {
  position: absolute;
  top: 251px;
  left: 126px;
  z-index: 9;
}
.room .tv {
  position: absolute;
  top: 225px;
  left: 97px;
  z-index: 8;
}
.room .lamp {
  position: absolute;
  top: 224px;
  left: 205px;
  z-index: 8;
}
.room .desk {
  position: absolute;
  top: 244px;
  left: 167px;
  z-index: 7;
}
.room .sink {
  position: absolute;
  top: 140px;
  left: 161px;
  z-index: 4;
}
.room .toilet {
  position: absolute;
  top: 124px;
  left: 200px;
  z-index: 3;
}
.room .bath {
  position: absolute;
  top: 112px;
  left: 126px;
  z-index: 2;
}
.room .bed {
  position: absolute;
  top: 160px;
  left: 190px;
  z-index: 6;
}
.room .papers {
  position: absolute;
  top: 266px;
  left: 169px;
  z-index: 8;
}
.room.ready .mainRoom {
  -webkit-animation: dropDown 400ms ease-out 0ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 0ms 1 forwards;
  animation: dropDown 400ms ease-out 0ms 1 forwards;
}
.room.ready .toilet {
  -webkit-animation: dropDown 400ms ease-out 800ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 800ms 1 forwards;
  animation: dropDown 400ms ease-out 800ms 1 forwards;
}
.room.ready .sink {
  -webkit-animation: dropDown 400ms ease-out 1100ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 1100ms 1 forwards;
  animation: dropDown 400ms ease-out 1100ms 1 forwards;
}
.room.ready .bath {
  -webkit-animation: dropDown 400ms ease-out 1300ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 1300ms 1 forwards;
  animation: dropDown 400ms ease-out 1300ms 1 forwards;
}
.room.ready .bed {
  -webkit-animation: dropDown 400ms ease-out 1400ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 1400ms 1 forwards;
  animation: dropDown 400ms ease-out 1400ms 1 forwards;
}
.room.ready .desk {
  -webkit-animation: dropDown 400ms ease-out 1600ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 1600ms 1 forwards;
  animation: dropDown 400ms ease-out 1600ms 1 forwards;
}
.room.ready .innerWall {
  -webkit-animation: dropDown 400ms ease-out 2000ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 2000ms 1 forwards;
  animation: dropDown 400ms ease-out 2000ms 1 forwards;
}
.room.ready .plant_1 {
  -webkit-animation: dropDown 400ms ease-out 2200ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 2200ms 1 forwards;
  animation: dropDown 400ms ease-out 2200ms 1 forwards;
}
.room.ready .plant_2 {
  -webkit-animation: dropDown 400ms ease-out 2300ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 2300ms 1 forwards;
  animation: dropDown 400ms ease-out 2300ms 1 forwards;
}
.room.ready .lamp {
  -webkit-animation: dropDown 400ms ease-out 2500ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 2500ms 1 forwards;
  animation: dropDown 400ms ease-out 2500ms 1 forwards;
}
.room.ready .tv {
  -webkit-animation: dropDown 400ms ease-out 2800ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 2800ms 1 forwards;
  animation: dropDown 400ms ease-out 2800ms 1 forwards;
}
.room.ready .papers {
  -webkit-animation: dropDown 400ms ease-out 3000ms 1 forwards;
  -moz-animation: dropDown 400ms ease-out 3000ms 1 forwards;
  animation: dropDown 400ms ease-out 3000ms 1 forwards;
}
html.lt-ie9 {
  min-width: 1480px;
}
html.lt-ie9 .box {
  width: 32%;
  margin: 0 1% 20px 0;
}
html.lt-ie9 .logo img {
  width: 200px;
  height: 55px;
}
html.lt-ie9 .mainMenu li ul {
  left: 0;
}
html.lt-ie9 .mainMenu li ul:after {
  left: 20%;
}
html.lt-ie9 .jigsawWrap {
  display: none;
}
html.lt-ie9 .mainWrapper .content {
  width: 100%;
}
html.lt-ie9 .mainWrapper .content .sector {
  width: 49%;
  margin: 0 1% 20px 0;
}
html.lt-ie9 .clients .carousel li a img {
  top: 0;
  left: 0;
  position: static;
  margin: 0 auto;
  display: block;
  vertical-align: middle;
}
html.lt-ie9 .section.about .carousel.dataCarousel .slick-dots {
  display: block;
  width: 100%;
  float: left;
  text-align: left;
}
html.lt-ie9 .section.marketSnapshot .content.right,
html.lt-ie9 .section.productTrends .content.right,
html.lt-ie9 .section.statistics .content.right,
html.lt-ie9 .section.search .content.right,
html.lt-ie9 .section.devices .content.left,
html.lt-ie9 .section.insight .content.left,
html.lt-ie9 .section.trends .content.left,
html.lt-ie9 .section.markets .content.left,
html.lt-ie9 .section.productInsight .map .left,
html.lt-ie9 .section.productInsight .database .right {
  margin-top: -200px;
}
html.lt-ie9 .section.search .overlay {
  left: 50%;
  background: #FFF;
}
html.lt-ie9 .section.video .caption {
  margin-left: -435px;
  -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod='auto expand')";
}
html.lt-ie9 .section.video .vjs-no-js {
  display: none;
}
html.lt-ie9 .insightsProduct .highlights .highlight i {
  margin-top: -75px;
}
html.lt-ie9 .insightsProduct .highlights .highlight {
  width: 32%;
  margin: 0;
}
html.lt-ie9 .highlighted {
  display: none;
}
html.lt-ie9 .hotspotMap {
  height: 683px;
  background: url(../images/layout/ukmap.jpg) center no-repeat;
}
html.lt-ie9 .svgContainer {
  display: none;
}
html.lt-ie9 label {
  width: 80%;
}
html.lt-ie9 .checkboxRow input[type=checkbox],
html.lt-ie9 .checkboxRow input[type=radio],
html.lt-ie9 .customRadio input[type=checkbox],
html.lt-ie9 .customRadio input[type=radio],
html.lt-ie9 .mobileSearchWrap,
html.lt-ie9 .subscriptionItem input[type=checkbox],
html.lt-ie9 .subscriptionItem input[type=radio] {
  display: block;
  float: right;
}
html.lt-ie9 form.styled .products {
  overflow: hidden;
  position: relative;
}
html.lt-ie9 form.styled .products .row {
  overflow: hidden;
}
html.lt-ie9 form.styled .products .checkboxRow input[type=checkbox],
html.lt-ie9 form.styled .products .checkboxRow input[type=radio],
html.lt-ie9 form.styled .products .customRadio input[type=checkbox],
html.lt-ie9 form.styled .products .customRadio input[type=radio],
html.lt-ie9 form.styled .products .mobileSearchWrap,
html.lt-ie9 form.styled .products .subscriptionItem input[type=checkbox],
html.lt-ie9 form.styled .products .subscriptionItem input[type=radio] {
  display: block;
  position: absolute;
  top: 30px;
  left: 200px;
}
html.lt-ie9 form.styled .products .selected .item,
html.lt-ie9 form.styled .products .subscriptionItem,
html.lt-ie9 form.styled .products .subscriptionItem {
  overflow: hidden;
}
html.lt-ie9 form.styled .products .selected .item:after,
html.lt-ie9 form.styled .products .subscriptionItem:after,
html.lt-ie9 form.styled .products .subscriptionItem:after {
  right: 100px;
  color: #85C981;
}
html.lt-ie9 .wrapper-sticky {
  float: right !important;
  right: 0 !important;
}
html.lt-ie9 .article .filter-table input {
  height: 20px;
}
html.lt-ie9 .dashboard .checkboxRow input[type=checkbox],
html.lt-ie9 .dashboard .checkboxRow input[type=radio],
html.lt-ie9 .dashboard .customRadio input[type=checkbox],
html.lt-ie9 .dashboard .customRadio input[type=radio],
html.lt-ie9 .dashboard .mobileSearchWrap,
html.lt-ie9 .dashboard .subscriptionItem input[type=checkbox],
html.lt-ie9 .dashboard .subscriptionItem input[type=radio] {
  display: block;
  float: right;
}
html.lt-ie9 .dashboard .blocks a {
  width: 24%;
  margin: 0 0.5%;
}
html.lt-ie9 .dashboard .guides li {
  width: 31%;
  margin: 10px 1%;
}
html.lt-ie9 .dashboard label {
  width: 80%;
}
html.lt-ie9 .dashboard .buttons .search.text {
  height: 40px;
}
html.lt-ie9 .dashboard .statistics {
  display: none;
}
html.lt-ie9 .dashboard .newsWrap .box {
  width: 32%;
  margin: 0 1% 20px 0;
}
html.lt-ie9 .dashboard .stats .stat {
  width: 32%;
  margin: 0 1% 20px 0;
}
html.lt-ie9 .vjs-no-js {
  display: block;
  padding: 10px 10px 10px 60px;
  border: 1px solid #457dae;
  background: #cde7f5;
  position: relative;
}
html.lt-ie9 .vjs-no-js:before {
  display: block;
  position: absolute;
  left: 10px;
  top: 5px;
  font-family: 'FontAwesome';
  content: '\f071';
  font-size: 40px;
  font-size: 3.076923076923077rem;
  color: #457dae;
}
/* ------------------------------ */
/* Site Styles */
/* ------------------------------ */
.wrapper {
  max-width: 1480px;
  width: 100%;
  padding: 0 40px;
  position: relative;
  margin: 0 auto;
  *zoom: 1;
}
.wrapper:before,
.wrapper:after {
  content: "";
  display: table;
}
.wrapper:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .wrapper {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .wrapper {
    padding: 0 20px;
  }
}
/* ------------------------------ */
/* Body Tag */
/* ------------------------------ */
html {
  font-size: 13px;
}
@media all and (max-width: 640px) {
  html {
    font-size: 11px;
  }
}
body {
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
  line-height: 1.662;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  min-width: 320px;
  max-width: 100%;
  color: #333;
}
@media all and (min-width: 1061px) {
  #content {
    min-height: 650px;
  }
}
/* ------------------------------ */
/* Typography */
/* ------------------------------ */
a {
  text-decoration: none;
  color: #038779;
  -webkit-transition: color ease-in-out 300ms;
  -moz-transition: color ease-in-out 300ms;
  -ms-transition: color ease-in-out 300ms;
  -o-transition: color ease-in-out 300ms;
  transition: color ease-in-out 300ms;
}
a:hover {
  color: #038779;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 5px 0;
  color: #333;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 1px;
}
h1 {
  color: #038779;
  margin: 0 0 5px 0;
  line-height: 1.1;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 32px;
  font-size: 2.4615384615384617rem;
}
h2 {
  font-size: 25px;
  font-size: 1.9230769230769231rem;
}
h3 {
  color: #999;
  margin: 0 0 15px 0;
  line-height: 1.2;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  line-height: 28px;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
}
@media all and (max-width: 640px) {
  h3 {
    line-height: 19px;
  }
}
h3:after {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 10px;
  margin: 10px 0;
  background: #038779;
  content: '';
}
h4,
h5,
h6 {
  font-size: 14px;
  font-size: 1.0769230769230769rem;
}
/* ------------------------------ */
/* Site Logo */
/* ------------------------------ */
.logo {
  float: left;
  padding: 0;
  margin: 10px 0;
}
.logo.replaced-svg {
  width: auto;
  height: 50px;
}
@media all and (max-width: 640px) {
  .logo {
    margin: 10px 0;
  }
  .logo.replaced-svg {
    width: 165px;
    height: 45px;
  }
}
/* ------------------------------ */
/* Main Menu */
/* ------------------------------ */
.hidden {
  display: none;
}
.flyoutWrap {
  position: relative;
  float: right;
  margin-right: 20px;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .flyoutWrap {
    float: none;
    width: 100%;
  }
}
@media all and (max-width: 640px) {
  .flyoutWrap {
    float: none;
    position: fixed;
    padding-bottom: 50px;
    height: 100%;
    overflow: scroll;
    margin: 0;
  }
}
.mainMenu {
  padding: 0 5px;
  width: auto;
  display: block;
  float: right;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  margin: 35px 10px 0 0;
  border-right: 1px solid #038779;
}
.mainMenu a {
  padding: 0 10px;
  color: #000;
  text-transform: uppercase;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  -webkit-transition: color ease-in 200ms;
  -moz-transition: color ease-in 200ms;
  -ms-transition: color ease-in 200ms;
  -o-transition: color ease-in 200ms;
  transition: color ease-in 200ms;
  display: block;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
}
.mainMenu a:hover {
  color: #038779;
}
.mainMenu li {
  position: relative;
  margin: 0 5px;
  display: block;
  float: left;
}
.mainMenu li:hover > ul {
  display: block;
}
.mainMenu li.mobileShow {
  display: none;
}
.mainMenu li.active a {
  color: #038779;
}
.mainMenu li#primary_menu_19 {
  display: none;
}
.mainMenu ul {
  display: none;
  position: absolute;
  top: 100%;
  margin: 0;
  z-index: 10;
  border-right: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  padding: 20px 0 0 0;
  background: transparent;
}
.mainMenu ul:after {
  top: 0;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(231, 242, 231, 0);
  border-bottom-color: #E7F2E7;
  border-width: 10px;
  margin-left: -10px;
}
.mainMenu ul li {
  background: #E7F2E7;
  width: 100%;
  margin: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.mainMenu ul li:first-child {
  border: 0;
}
.mainMenu ul a {
  padding: 10px 20px;
  white-space: nowrap;
  text-align: left;
  width: 100%;
  display: block;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .mainMenu {
    float: left;
    margin: 0 0 20px 0;
    padding: 0 20px;
    border-right: 0;
    *zoom: 1;
  }
  .mainMenu:before,
  .mainMenu:after {
    content: "";
    display: table;
  }
  .mainMenu:after {
    clear: both;
  }
  .mainMenu li {
    margin: 0 13px 0 0;
  }
  .mainMenu li a {
    padding: 0;
  }
  .mainMenu li li a {
    padding: 5px 10px;
  }
}
@media all and (max-width: 640px) {
  .mainMenu {
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px;
    border-right: 0;
    /* 2nd Level */
    /* 3rd Level */
    /* 4th Level */
  }
  .mainMenu a {
    width: 100%;
    padding: 8px 10px;
  }
  .mainMenu li {
    display: block;
    text-align: left;
    margin: 0;
  }
  .mainMenu li.mobileShow {
    display: block;
  }
  .mainMenu li.mobileHide {
    display: none;
  }
  .mainMenu li:hover > ul {
    display: none;
  }
  .mainMenu li.hasChildren > a:after {
    display: block;
    position: absolute;
    top: 10px;
    right: 10px;
    content: '';
    font-family: 'FontAwesome';
    content: "\f0da";
    -webkit-transition: all 300ms ease-in-out 0s;
    -moz-transition: all 300ms ease-in-out 0s;
    -ms-transition: all 300ms ease-in-out 0s;
    -o-transition: all 300ms ease-in-out 0s;
    transition: all 300ms ease-in-out 0s;
  }
  .mainMenu li.hasChildren.open > a:after {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  .mainMenu li ul {
    display: none;
    padding: 0;
  }
  .mainMenu li li a {
    padding-left: 10px;
  }
  .mainMenu li li li a {
    padding-left: 30px;
  }
  .mainMenu li li li li a {
    padding-left: 40px;
  }
}
/* ------------------------------ */
/* Header */
/* ------------------------------ */
#header {
  z-index: 5000;
  *zoom: 1;
  width: 100%;
  left: 0;
  top: 0;
  background: #FFF;
  border-bottom: 1px solid #EEE;
  height: 76px !important;
}
#header:before,
#header:after {
  content: "";
  display: table;
}
#header:after {
  clear: both;
}
@media only screen and (max-width: all and (min-width: 641px) and (max-width: 1000px)) {
  #header {
    height: auto;
  }
}
@media all and (max-width: 640px) {
  #header {
    position: fixed;
  }
}
#header .wrapper {
  position: relative;
}
#header .headerDetails {
  position: absolute;
  top: 55px;
  right: 0px;
}
#header .credits,
#header .address {
  display: none;
}
@media all and (max-width: 640px) {
  #header .credits,
  #header .address {
    clear: both;
    display: block;
    font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
    margin: 0 20px;
    border-top: 1px solid #DDD;
    padding: 10px 0;
  }
}
@media all and (max-width: 640px) {
  #header .address {
    border-top: 0;
    padding: 0 0 10px 0;
  }
}
#header .login {
  display: block;
  float: right;
  color: #038779;
  padding: 10px;
  margin: 25px 0 0 0;
  text-transform: uppercase;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  -webkit-transition: color ease-in 200ms;
  -moz-transition: color ease-in 200ms;
  -ms-transition: color ease-in 200ms;
  -o-transition: color ease-in 200ms;
  transition: color ease-in 200ms;
}
#header .login i {
  display: none;
}
#header .login:hover {
  color: #038779;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  #header .login {
    padding: 0 20px 0 15px;
    margin: 0;
    clear: both;
    border-left: 1px solid #038779;
  }
}
@media all and (max-width: 640px) {
  #header .login {
    width: 50%;
    float: right;
    margin: 0;
    line-height: 45px;
    text-align: center;
    background: #038779;
    color: #FFF;
  }
  #header .login i {
    display: inline-block;
    margin-right: 5px;
  }
}
#header .phone {
  display: none;
}
@media all and (max-width: 640px) {
  #header .phone {
    display: block;
    width: 50%;
    float: left;
    font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
    padding: 10px;
    line-height: 45px;
    text-align: center;
    background: #038779;
    color: #FFF;
    position: static;
  }
  #header .phone:hover {
    color: #038779;
  }
  #header .phone i {
    margin-right: 5px;
  }
}
#header .buttonAlt {
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  text-transform: uppercase;
  float: right;
  margin: 26px 0;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
/* ------------------------------ */
/* Forms */
/* ------------------------------ */
.row {
  margin-bottom: 5px;
}
.row .text {
  padding: 10px;
  border: 1px solid #DDD;
  border-radius: 5px;
  -webkit-transition: border ease-out 300ms;
  -moz-transition: border ease-out 300ms;
  -ms-transition: border ease-out 300ms;
  -o-transition: border ease-out 300ms;
  transition: border ease-out 300ms;
}
.row .text.large {
  padding: 15px;
}
.row .text:focus {
  border-color: #038779;
}
.row label {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  color: #777;
  padding: 11px 0;
}
.row label em {
  color: #038779;
}
.row.half {
  width: 48%;
  margin-right: 4%;
  float: left;
  clear: left;
}
@media all and (max-width: 640px) {
  .row.half {
    width: 100%;
    margin-right: 0;
  }
}
.row.half.last {
  margin-right: 0;
  clear: none;
}
.checkboxRow,
.customRadio,
.subscriptionItem {
  width: 100%;
}
.checkboxRow label,
.customRadio label,
.subscriptionItem label {
  position: relative;
  float: none;
  padding: 0 0 0 20px;
  width: 100%;
  cursor: pointer;
  display: block;
  line-height: 33px;
}
.checkboxRow label:before,
.customRadio label:before,
.subscriptionItem label:before {
  content: '';
  position: absolute;
  top: 4px;
  right: 0;
  width: 20px;
  height: 20px;
  background: #FFF;
}
@media all and (max-width: 640px) {
  .checkboxRow label:before,
  .customRadio label:before,
  .subscriptionItem label:before {
    bottom: 10px;
    top: auto;
    margin: 1px 0 0 0;
  }
}
.checkboxRow input[type=checkbox],
.customRadio input[type=checkbox],
.subscriptionItem input[type=checkbox],
.checkboxRow input[type=radio],
.customRadio input[type=radio],
.subscriptionItem input[type=radio] {
  display: none;
}
.checkboxRow.selected label:before,
.customRadio.selected label:before,
.subscriptionItem.selected label:before {
  background: #0f55c4;
}
.checkboxRow.small label,
.customRadio.small label,
.subscriptionItem.small label {
  padding-left: 0;
}
.checkboxRow.small label:before,
.customRadio.small label:before,
.subscriptionItem.small label:before {
  width: 10px !important;
  height: 10px !important;
  content: '' !important;
}
/*
.errorList {

    h3 {
        color: #B94A48;
    }

    li {
        display: block;
        width: 100%;
    }

}
*/
/* ------------------------------ */
/* Search */
/* ------------------------------ */
.mobileSearchWrap {
  display: none;
}
@media all and (max-width: 640px) {
  .mobileSearchWrap {
    display: block;
  }
}
.searchForm {
  float: left;
  margin-right: 20px;
}
.searchForm .row {
  position: relative;
}
.searchForm label {
  display: none;
}
.searchForm input[type="text"] {
  padding: 6px;
}
.searchForm button {
  border: 0;
  background: 0;
  position: absolute;
  top: 3px;
  right: 0;
}
/* ------------------------------ */
/* Footer */
/* ------------------------------ */
.footerWrap {
  clear: both;
  *zoom: 1;
  color: #FFF;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  padding: 20px 40px;
  background: #038779;
}
.footerWrap:before,
.footerWrap:after {
  content: "";
  display: table;
}
.footerWrap:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .footerWrap {
    padding: 10px 20px;
  }
}
.footerWrap .logo {
  width: auto;
  margin: 0 0 28px 0;
}
.footerWrap .logo .st0 {
  fill: #fff;
}
.footerWrap .logo .st1 {
  fill: #038779;
}
.footerWrap ul {
  margin: 0;
  padding: 0;
  clear: both;
}
.footerWrap li {
  display: block;
  margin: 5px 0;
}
.footerWrap li i {
  width: 12px;
  text-align: left;
}
.footerWrap li:first-child {
  margin: 0;
}
.footerWrap a {
  text-transform: none;
  color: #FFF;
}
.footerWrap .contactDetails {
  float: left;
  width: 45%;
}
@media all and (max-width: 640px) {
  .footerWrap .contactDetails {
    width: 100%;
  }
}
.footerWrap .details {
  float: left;
  width: 35%;
  padding: 20px 0 0 0;
}
.footerWrap .details p {
  clear: both;
  line-height: 18px;
}
@media all and (max-width: 640px) {
  .footerWrap .details {
    width: 100%;
    padding: 0;
  }
  .footerWrap .details > a {
    display: none;
  }
  .footerWrap .details ul,
  .footerWrap .details ul li {
    width: 100%;
    text-align: center;
  }
  .footerWrap .details li:first-child {
    display: none;
  }
}
.footerWrap .sitemap {
  float: right;
  width: 45%;
  padding: 20px 0;
  *zoom: 1;
}
.footerWrap .sitemap:before,
.footerWrap .sitemap:after {
  content: "";
  display: table;
}
.footerWrap .sitemap:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .footerWrap .sitemap {
    width: 100%;
    padding-bottom: 10px;
  }
}
.footerWrap .sitemap .column {
  float: left;
  width: 32%;
  margin-right: 2%;
  clear: none;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footerWrap .sitemap .column {
    width: 49%;
  }
  .footerWrap .sitemap .column:nth-child(2n) {
    margin-right: 0;
  }
}
@media all and (max-width: 640px) {
  .footerWrap .sitemap .column {
    width: 100%;
    margin-right: 0;
  }
  .footerWrap .sitemap .column.mobileHide {
    display: none;
  }
  .footerWrap .sitemap .column ul {
    display: none;
  }
  .dashBackground .footerWrap .sitemap .column h4 {
    cursor: auto;
  }
  .dashBackground .footerWrap .sitemap .column h4:after {
    display: none;
  }
  .dashBackground .footerWrap .sitemap .column ul {
    display: block;
  }
}
.footerWrap .sitemap h4 {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  color: #FFF;
}
@media all and (max-width: 640px) {
  .footerWrap .sitemap h4 {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    line-height: 35px;
    cursor: pointer;
  }
  .footerWrap .sitemap h4:after {
    display: block;
    float: right;
    content: '\f067';
    font-family: 'FontAwesome';
    font-size: 13px;
    font-size: 1rem;
  }
  .footerWrap .sitemap h4.open:after {
    content: '\f068';
  }
}
.footerWrap .sitemap .action {
  float: left;
  width: 32%;
  margin: 25px 0;
}
.footerWrap .sitemap .action a {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  clear: left;
  max-width: 230px;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footerWrap .sitemap .action {
    text-align: center;
    width: 100%;
    max-width: 230px;
  }
}
@media all and (max-width: 640px) {
  .footerWrap .sitemap .action {
    width: 100%;
    margin: 25px 0 0 0;
    text-align: center;
  }
  .footerWrap .sitemap .action a {
    margin: 0 auto;
  }
}
.footerWrap .sitemap .buttonAlt {
  margin-bottom: 10px;
  color: #FFF;
  display: block;
  width: 100%;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  padding: 10px 15px;
}
.footerWrap .sitemap span {
  display: block;
  padding: 5px 0 0 0;
  width: 100%;
  text-align: center;
}
.footerWrap .legal {
  clear: both;
  *zoom: 1;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding: 15px 0;
}
.footerWrap .legal:before,
.footerWrap .legal:after {
  content: "";
  display: table;
}
.footerWrap .legal:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .footerWrap .legal {
    padding-bottom: 0;
  }
}
.footerWrap #terms_policy {
  float: right;
  text-align: right;
  width: 48%;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footerWrap #terms_policy {
    width: 60%;
  }
}
.footerWrap #credits {
  float: right;
  text-align: right;
  width: 48%;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footerWrap #credits {
    width: 60%;
  }
}
@media all and (max-width: 640px) {
  .footerWrap #credits {
    display: none;
  }
}
.footerWrap #copyright {
  float: left;
  width: 48%;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footerWrap #copyright {
    width: 40%;
  }
}
@media all and (max-width: 640px) {
  .footerWrap #copyright {
    width: 100%;
    text-align: center;
  }
}
.footer {
  clear: both;
  max-width: 1480px;
  width: 100%;
  position: relative;
  margin: 0 auto;
  *zoom: 1;
  padding: 0 40px;
}
.footer:before,
.footer:after {
  content: "";
  display: table;
}
.footer:after {
  clear: both;
}
.footer:before,
.footer:after {
  content: "";
  display: table;
}
.footer:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footer {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .footer {
    padding: 0 20px;
  }
}
.footer:before,
.footer:after {
  content: "";
  display: table;
}
.footer:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .footer {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .footer {
    padding: 0 20px;
  }
}
@media all and (max-width: 640px) {
  .footer {
    padding: 0;
  }
}
/* ------------------------------ */
/* Slide Wrapper (both slideshows) */
/* ------------------------------ */
.slideWrapper {
  margin-bottom: 40px;
  clear: both;
  max-width: 1480px;
  padding: 0 40px;
  position: relative;
  margin: 0 auto;
  *zoom: 1;
  width: 100%;
}
.slideWrapper:before,
.slideWrapper:after {
  content: "";
  display: table;
}
.slideWrapper:after {
  clear: both;
}
.slideWrapper:before,
.slideWrapper:after {
  content: "";
  display: table;
}
.slideWrapper:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .slideWrapper {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .slideWrapper {
    padding: 0 20px;
  }
}
.slideWrapper:before,
.slideWrapper:after {
  content: "";
  display: table;
}
.slideWrapper:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .slideWrapper {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .slideWrapper {
    padding: 0 20px;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .slideWrapper {
    margin-bottom: 20px;
  }
}
@media all and (max-width: 640px) {
  .slideWrapper {
    margin-bottom: 20px;
  }
}
/* ------------------------------ */
/* Large Slider */
/* ------------------------------ */
.largeSlider {
  width: 100%;
  *zoom: 1;
  position: relative;
}
.largeSlider:before,
.largeSlider:after {
  content: "";
  display: table;
}
.largeSlider:after {
  clear: both;
}
.largeSlider .controls {
  text-align: center;
}
.largeSlider .controls .prev,
.largeSlider .controls .next {
  font-size: 2em;
  margin: 10px;
}
/* ------------------------------ */
/* Small Slider */
/* ------------------------------ */
.smallSlider {
  display: none;
}
@media all and (max-width: 640px) {
  .smallSlider {
    display: block;
  }
}
.smallSlider .imageWrap {
  position: relative;
}
.smallSlider .imageWrap a {
  float: right;
}
/* ------------------------------ */
/* Google Map */
/* ------------------------------ */
.map {
  width: 100%;
  min-height: 360px;
}
/* ------------------------------ */
/* CSS3 Social icons*/
/* ------------------------------ */
.social {
  float: left;
  *zoom: 1;
}
.social:before,
.social:after {
  content: "";
  display: table;
}
.social:after {
  clear: both;
}
.social li {
  list-style-type: none;
  float: left;
  text-align: center;
}
.social li a {
  padding: 0 10px;
  display: block;
}
.social li a i {
  font-size: 1.3846153846153846em;
  vertical-align: middle;
}
/* ------------------------------ */
/* Breadcrumb Styling */
/* ------------------------------ */
.breadcrumbWrap {
  *zoom: 1;
  clear: both;
  margin: 0 0 20px;
}
.breadcrumbWrap:before,
.breadcrumbWrap:after {
  content: "";
  display: table;
}
.breadcrumbWrap:after {
  clear: both;
}
.breadcrumbWrap .breadcrumbs {
  *zoom: 1;
  margin: 0;
  clear: both;
}
.breadcrumbWrap .breadcrumbs:before,
.breadcrumbWrap .breadcrumbs:after {
  content: "";
  display: table;
}
.breadcrumbWrap .breadcrumbs:after {
  clear: both;
}
.breadcrumbWrap .breadcrumbs li {
  float: left;
  position: relative;
  padding: 0px 10px;
}
@media all and (max-width: 640px) {
  .breadcrumbWrap .breadcrumbs li {
    padding: 0 6px;
  }
  .breadcrumbWrap .breadcrumbs li:first-child {
    display: none;
  }
  .breadcrumbWrap .breadcrumbs li:nth-child(2) {
    padding-left: 0;
  }
}
.breadcrumbWrap .breadcrumbs li:first-child {
  padding-left: 0;
}
/* ------------------------------ */
/* Pagination */
/* ------------------------------ */
.pagination,
.paginationUl {
  *zoom: 1;
}
.pagination:before,
.paginationUl:before,
.pagination:after,
.paginationUl:after {
  content: "";
  display: table;
}
.pagination:after,
.paginationUl:after {
  clear: both;
}
.pagination li,
.paginationUl li {
  float: left;
}
.pagination li a,
.paginationUl li a {
  display: block;
  float: left;
  padding: 0 5px;
  text-align: center;
  cursor: pointer;
  outline: 0;
}
.paginumberorder form {
  float: right;
  margin-left: 10px;
}
.paginumberorder form.bottom {
  margin-bottom: 40px;
  *zoom: 1;
}
.paginumberorder form.bottom:before,
.paginumberorder form.bottom:after {
  content: "";
  display: table;
}
.paginumberorder form.bottom:after {
  clear: both;
}
/* ------------------------------ */
/* Site Map Styling */
/* ------------------------------ */
.siteMapWrap {
  max-width: 1480px;
  width: 100%;
  padding: 0 40px;
  position: relative;
  margin: 0 auto;
  *zoom: 1;
  clear: both;
  padding: 50px 40px;
}
.siteMapWrap:before,
.siteMapWrap:after {
  content: "";
  display: table;
}
.siteMapWrap:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .siteMapWrap {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .siteMapWrap {
    padding: 0 20px;
  }
}
.siteMapWrap:before,
.siteMapWrap:after {
  content: "";
  display: table;
}
.siteMapWrap:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .siteMapWrap {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .siteMapWrap {
    padding: 0 20px;
  }
}
.siteMapWrap:before,
.siteMapWrap:after {
  content: "";
  display: table;
}
.siteMapWrap:after {
  clear: both;
}
.siteMapWrap h1 {
  margin-bottom: 20px;
}
@media all and (max-width: 1000px) {
  .siteMapWrap {
    margin: 20px 0;
  }
}
@media all and (max-width: 640px) {
  .siteMapWrap {
    width: 100%;
    margin: 20px 0;
  }
}
.siteMapWrap .siteMapColumn {
  width: 32%;
  margin-right: 2%;
  margin-bottom: 40px;
  float: left;
}
.siteMapWrap .siteMapColumn ul {
  margin-bottom: 20px;
}
.siteMapWrap .siteMapColumn:nth-child(3n) {
  margin-right: 0;
}
/* ------------------------------ */
/* Contact Page Styling */
/* ------------------------------ */
.contactWrap {
  max-width: 1480px;
  width: 100%;
  padding: 0 40px;
  position: relative;
  margin: 0 auto;
  *zoom: 1;
  padding: 100px 40px;
}
.contactWrap:before,
.contactWrap:after {
  content: "";
  display: table;
}
.contactWrap:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .contactWrap {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .contactWrap {
    padding: 0 20px;
  }
}
.contactWrap:before,
.contactWrap:after {
  content: "";
  display: table;
}
.contactWrap:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .contactWrap {
    padding: 0 30px;
  }
}
@media all and (max-width: 640px) {
  .contactWrap {
    padding: 0 20px;
  }
}
.contactWrap:before,
.contactWrap:after {
  content: "";
  display: table;
}
.contactWrap:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .contactWrap {
    padding: 40px;
  }
}
.contactDetails {
  float: left;
  width: 45%;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .contactDetails {
    width: 40%;
  }
}
@media all and (max-width: 640px) {
  .contactDetails {
    width: 100%;
    padding: 20px 0;
    float: none;
    *zoom: 1;
  }
  .contactDetails:before,
  .contactDetails:after {
    content: "";
    display: table;
  }
  .contactDetails:after {
    clear: both;
  }
}
.contactDetails li {
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  padding: 5px 0;
  margin-right: 60px;
  float: left;
}
@media all and (max-width: 640px) {
  .contactDetails li {
    font-size: 17px;
    font-size: 1.3076923076923077rem;
  }
}
.contactDetails li i {
  width: 35px;
  color: #666;
}
@media all and (max-width: 640px) {
  .contactDetails li i {
    width: 20px;
  }
}
.contactDetails li a {
  color: #666;
}
.contactDetails li a:hover {
  color: #038779;
}
.contactFormWrap {
  width: 45%;
  float: right;
  padding: 20px;
  background: #EEE;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .contactFormWrap {
    width: 55%;
  }
}
@media all and (max-width: 640px) {
  .contactFormWrap {
    width: 100%;
    float: none;
    *zoom: 1;
    margin-bottom: 20px;
  }
  .contactFormWrap:before,
  .contactFormWrap:after {
    content: "";
    display: table;
  }
  .contactFormWrap:after {
    clear: both;
  }
  .contactFormWrap .buttonAlt {
    width: 100%;
    margin-top: 20px;
    float: none;
    padding: 10px 20px;
  }
}
.contactForm textarea {
  min-height: 150px;
}
/* ------------------------------ */
/* Button Styling */
/* ------------------------------ */
.button {
  display: inline-block;
  cursor: pointer;
  text-align: center;
  border: 0;
  background: 0;
  outline: none;
  padding: 10px 25px;
  background: transparent;
  border: 2px solid #038779;
  border-radius: 3px;
  color: #038779;
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
}
.button i {
  padding-left: 0.25em;
}
.button.buttonSmall {
  font-size: 0.7692307692307693em;
}
.button.buttonLarge {
  font-size: 1.5384615384615385em;
}
.button:hover {
  background: #038779;
  color: #FFF;
}
.button.left {
  float: left;
  margin-right: 35px;
}
.button.right {
  float: right;
}
.button.bold {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.button.large {
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  padding: 15px 30px;
  width: 300px;
  margin: 0;
}
.button i {
  margin-right: 10px;
}
.button.small {
  padding: 5px 15px;
  border: 0;
}
.buttonAlt {
  display: inline-block;
  cursor: pointer;
  text-align: center;
  border: 0;
  background: 0;
  outline: none;
  padding: 10px 25px;
  background: transparent;
  border: 2px solid #038779;
  border-radius: 3px;
  color: #038779;
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
  background: #02B0AE;
  color: #fff;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  border-color: #02B0AE;
}
.buttonAlt i {
  padding-left: 0.25em;
}
.buttonAlt.buttonSmall {
  font-size: 0.7692307692307693em;
}
.buttonAlt.buttonLarge {
  font-size: 1.5384615384615385em;
}
.buttonAlt i {
  padding-left: 0.25em;
}
.buttonAlt.buttonSmall {
  font-size: 0.7692307692307693em;
}
.buttonAlt.buttonLarge {
  font-size: 1.5384615384615385em;
}
.buttonAlt:hover {
  background: #038779;
  color: #FFF;
}
.buttonAlt.left {
  float: left;
  margin-right: 35px;
}
.buttonAlt.right {
  float: right;
}
.buttonAlt.bold {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.buttonAlt.large {
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  padding: 15px 30px;
  width: 300px;
  margin: 0;
}
.buttonAlt i {
  margin-right: 10px;
}
.buttonAlt.small {
  padding: 5px 15px;
  border: 0;
}
.buttonAlt:hover {
  background: #014b4a;
  border-color: #014b4a;
}
@media all and (max-width: 1425px) {
  .buttonAlt {
    font-size: 16px;
    font-size: 1.2307692307692308rem;
  }
}
@media all and (max-width: 640px) {
  .buttonAlt {
    margin: 10px 0;
    width: 100%;
    padding-top: 5px;
    padding-bottom: 5px;
  }
}
/* ------------------------------ */
/* Home page */
/* ------------------------------ */
.frame {
  position: relative;
}
.frame img {
  z-index: 2;
}
@media all and (max-width: 640px) {
  .frame img {
    width: 400px;
    height: 313px;
  }
}
.frame .screen {
  position: absolute;
  z-index: 1;
  top: 94px;
}
@media all and (max-width: 640px) {
  .frame .screen {
    width: 324px;
    height: 182px;
    top: 33px;
  }
}
.frame .maps {
  width: 972px;
  height: 523px;
  overflow: hidden;
}
.frame .maps img {
  height: 523px;
}
@media all and (max-width: 640px) {
  .frame .maps {
    width: 324px;
    height: 182px;
    top: 0;
  }
  .frame .maps img {
    width: 100%;
    height: auto;
  }
}
.frame .maps .screen {
  width: 972px;
  height: 523px;
}
@media all and (max-width: 640px) {
  .frame .maps .screen {
    width: 647px;
    height: 350px;
    top: 62px;
  }
}
.left .frame .screen {
  right: 115px;
}
@media all and (max-width: 640px) {
  .left .frame .screen {
    right: 38px;
  }
}
.right .frame .screen {
  left: 115px;
}
@media all and (max-width: 640px) {
  .right .frame .screen {
    left: 38px;
  }
}
.phone {
  width: 250px;
  position: absolute;
  bottom: 0;
  z-index: 10;
}
@media all and (max-width: 640px) {
  .phone {
    width: 70px;
  }
}
.phone img {
  z-index: 2;
  position: relative;
}
.phone img.screen {
  position: absolute;
  z-index: 1;
  width: 166px;
  top: 98px;
  right: 44px;
}
@media all and (max-width: 640px) {
  .phone img.screen {
    width: 47px;
    height: 84px;
    top: 27px;
    right: 12px;
  }
}
.left .phone {
  right: -20px;
}
@media all and (max-width: 640px) {
  .left .phone {
    right: 0;
  }
}
.right .phone {
  left: -20px;
}
@media all and (max-width: 640px) {
  .right .phone {
    left: 0;
  }
}
.tablet {
  width: 520px;
  position: absolute;
  bottom: -20px;
  z-index: 10;
}
@media all and (max-width: 1180px) {
  .tablet {
    width: 430px;
  }
}
@media all and (max-width: 640px) {
  .tablet {
    width: 200px;
  }
}
.tablet img {
  z-index: 2;
  position: relative;
}
.tablet img.screen {
  position: absolute;
  z-index: 1;
  width: 393px;
  top: 21px;
  right: 62px;
}
@media all and (max-width: 1180px) {
  .tablet img.screen {
    top: 18px;
    right: 54px;
    width: 323px;
  }
}
@media all and (max-width: 640px) {
  .tablet img.screen {
    width: 151px;
    height: 113px;
    top: 8px;
    right: 25px;
  }
}
.left .tablet {
  right: -65px;
}
@media all and (max-width: 1180px) {
  .left .tablet {
    right: 0;
  }
}
@media all and (max-width: 640px) {
  .left .tablet {
    right: -20px;
  }
}
.right .tablet {
  left: -65px;
}
@media all and (max-width: 1180px) {
  .right .tablet {
    left: 0;
  }
}
@media all and (max-width: 640px) {
  .right .tablet {
    left: -20px;
  }
}
.section {
  *zoom: 1;
  border-top: 1px solid #EEE;
}
.section:before,
.section:after {
  content: "";
  display: table;
}
.section:after {
  clear: both;
}
.section:nth-child(even) {
  background: #F9F9F9;
}
.section .content {
  width: 47%;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  line-height: 1.8;
  color: #888;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  position: relative;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section .content {
    width: 46%;
  }
}
@media all and (max-width: 640px) {
  .section .content {
    width: 100%;
  }
}
.section .content.left {
  float: left;
}
.section .content.right {
  float: right;
}
.section .content .button {
  margin-top: 10px;
}
.section .content.center {
  text-align: center;
  padding: 0 !important;
}
.section .content.center img {
  border: 1px solid #EEE;
}
.section .content.center h3:after {
  margin: 20px auto;
}
.section .content.center .button {
  margin: 0 auto;
  float: none;
}
.section .content.fullWidth {
  width: 100%;
}
.section .content.fullWidth .buttonAlt {
  margin-top: 30px;
}
.section .content.fullWidth:last-of-type {
  padding: 0 15%;
}
@media all and (max-width: 850px) {
  .section .content.fullWidth:last-of-type {
    padding: 0;
  }
}
.section .content.fullWidth .hotspotMap {
  min-height: 700px;
  margin-top: -170px;
  padding: 0;
}
@media all and (max-width: 590px) {
  .section .content.fullWidth .hotspotMap {
    min-height: 550px;
    margin-top: -250px;
  }
}
.section .content.fullWidth .hotspotMap svg {
  height: 850px !important;
  left: 50% !important;
  transform: translateX(-50%);
}
@media all and (max-width: 590px) {
  .section .content.fullWidth .hotspotMap svg {
    height: 530px !important;
  }
}
@media all and (max-width: 850px) {
  .section .content.fullWidth .hotspotMap svg .region.focus {
    transform: scale(0.7);
  }
}
@media all and (max-width: 590px) {
  .section .content.fullWidth .hotspotMap svg .region.focus {
    transform: scale(0.5);
  }
}
@media all and (max-width: 440px) {
  .section .content.fullWidth .hotspotMap svg .region.focus {
    transform: scale(0.4);
  }
}
.section .content.fullWidth .hotspotMap svg path {
  cursor: pointer;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(1n) {
  fill: #00B2AE;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(2n) {
  fill: #03b39f;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(3n) {
  fill: #00908d;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(4n) {
  fill: #188f82;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(5n) {
  fill: #519c94;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(6n) {
  fill: #00d2cd;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(7n) {
  fill: #16bcb9;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(8n) {
  fill: #367770;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(9n) {
  fill: #38968b;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(10n) {
  fill: #7ee1df;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(11n) {
  fill: #308a88;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(12n) {
  fill: #007976;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(13n) {
  fill: #4daba9;
}
.section .content.fullWidth .hotspotMap svg path:nth-child(14n) {
  fill: #00B2AE;
}
.section.about {
  padding: 120px 0;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.about {
    padding: 70px 0;
  }
  .section.about .content {
    width: 100%;
  }
  .section.about .content.right {
    margin-top: 40px;
  }
}
@media all and (max-width: 640px) {
  .section.about {
    padding: 30px 0;
  }
  .section.about .content.right {
    margin-top: 40px;
  }
}
.section.about .graphs {
  margin-bottom: 10px;
  background: #F9F9F9;
  width: 580px;
  clear: both;
  padding-top: 20px;
}
@media all and (max-width: 1180px) {
  .section.about .graphs {
    width: 100%;
    overflow: hidden;
  }
}
@media all and (max-width: 640px) {
  .section.about .graphs {
    display: none;
  }
}
.section.about .stat {
  margin: 0 30px 0 0;
  display: inline-block;
  width: 150px;
  position: relative;
}
@media all and (max-width: 1180px) {
  .section.about .stat {
    margin: 0 10px 0 0;
    width: 120px;
  }
  .section.about .stat canvas {
    width: 120px;
    height: 120px;
  }
}
.section.about .stat .inner {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 10%;
  width: 80%;
  padding: 70px 15px;
  text-align: center;
  color: #038779;
  font-size: 12px;
  font-size: 0.9230769230769231rem;
  text-transform: uppercase;
  white-space: normal;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
@media all and (max-width: 1180px) {
  .section.about .stat .inner {
    padding: 50px 5px;
  }
}
.section.trends,
.section.devices,
.section.insight {
  display: block;
}
.section.trends .content.left,
.section.devices .content.left,
.section.insight .content.left {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media all and (max-width: 640px) {
  .section.trends .content.left,
  .section.devices .content.left,
  .section.insight .content.left {
    position: relative;
    top: 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
    padding: 20px 0;
  }
}
.section.trends .frame img,
.section.devices .frame img,
.section.insight .frame img {
  max-width: none;
}
.section.productInsight .wrapper {
  max-height: 780px;
}
.section.productInsight .content.center {
  width: 60%;
  text-align: center;
  margin: 0 auto;
  position: static;
  padding-bottom: 50px;
}
.section.productInsight .database {
  /*
            img {
                border: 0;
                position: relative;
                .transform(translateX(-20%));
                .transition(all ease-out 1000ms);

                @media @mobile {
                    width: 800px;
                    height: 600px;
                    margin: 10px 0;
                }

                &.focus {
                    .transform(translateX(0%));
                }
            }
*/
}
@media all and (max-width: 640px) {
  .section.productInsight .database {
    padding: 20px 0;
  }
}
.section.productInsight .database .right {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  right: 40px;
}
@media all and (max-width: 1180px) {
  .section.productInsight .database .right {
    right: 40px;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.productInsight .database .right {
    right: 20px;
  }
}
@media all and (max-width: 640px) {
  .section.productInsight .database .right {
    position: relative;
    top: 0;
    right: 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
.section.productInsight .database .frame {
  -webkit-transform: translateX(-20%);
  -moz-transform: translateX(-20%);
  -ms-transform: translateX(-20%);
  -o-transform: translateX(-20%);
  transform: translateX(-20%);
  -webkit-transition: all ease-out 1000ms;
  -moz-transition: all ease-out 1000ms;
  -ms-transition: all ease-out 1000ms;
  -o-transition: all ease-out 1000ms;
  transition: all ease-out 1000ms;
}
.section.productInsight .database .frame.focus {
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
}
.section.productInsight .map {
  *zoom: 1;
  padding: 0 0 40px 0;
}
.section.productInsight .map:before,
.section.productInsight .map:after {
  content: "";
  display: table;
}
.section.productInsight .map:after {
  clear: both;
}
.section.productInsight .map .left {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media all and (max-width: 640px) {
  .section.productInsight .map .left {
    position: relative;
    top: 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
.section.productInsight .map .frame {
  -webkit-transform: translateX(20%);
  -moz-transform: translateX(20%);
  -ms-transform: translateX(20%);
  -o-transform: translateX(20%);
  transform: translateX(20%);
  -webkit-transition: all ease-out 1000ms;
  -moz-transition: all ease-out 1000ms;
  -ms-transition: all ease-out 1000ms;
  -o-transition: all ease-out 1000ms;
  transition: all ease-out 1000ms;
}
.section.productInsight .map .frame.focus {
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
}
.section.productInsight .left img {
  float: right;
}
.section.productInsight .right img {
  float: left;
}
.section.productInsight .frame img {
  max-width: none;
}
.section .fullMarkets,
.section .fullReports {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  padding: 20px 40px;
  background: #FFF;
  box-shadow: 3px 5px 10px rgba(0, 0, 0, 0.2);
  display: none;
}
@media all and (max-width: 640px) {
  .section .fullMarkets,
  .section .fullReports {
    padding: 20px;
  }
}
.section .fullMarkets .close,
.section .fullReports .close {
  position: absolute;
  top: 5px;
  right: 5px;
  display: block;
  width: 30px;
  height: 30px;
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  text-align: center;
  line-height: 30px;
  vertical-align: middle;
  cursor: pointer;
}
.section .fullMarkets .body,
.section .fullReports .body {
  overflow: scroll;
  max-height: 100%;
}
.section .fullMarkets .column,
.section .fullReports .column {
  width: 48%;
  margin: 0 2% 20px 0;
  float: left;
}
.section .fullMarkets .column:nth-child(2n),
.section .fullReports .column:nth-child(2n) {
  margin: 0 0 20px 0;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .section .fullMarkets .column,
  .section .fullReports .column {
    width: 100%;
    margin: 0;
  }
}
@media all and (max-width: 640px) {
  .section .fullMarkets .column,
  .section .fullReports .column {
    width: 100%;
    margin: 0;
  }
}
.section.markets {
  padding: 50px 0;
}
.section.markets .content.left {
  float: left;
  /*
            position: absolute;
            top: 50%;
            width: 48%;
            .transform(translateY(-50%));
*/
}
@media all and (max-width: 1425px) {
  .section.markets .content.left {
    width: 40%;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.markets .content.left {
    position: relative;
    top: 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
@media all and (max-width: 640px) {
  .section.markets .content.left {
    position: relative;
    top: 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
.section.markets .content.right {
  width: 47%;
}
@media all and (max-width: 1425px) {
  .section.markets .content.right {
    width: 58%;
  }
}
@media all and (max-width: 1000px) {
  .section.markets .content.left,
  .section.markets .content.right {
    width: 100%;
    position: relative;
  }
}
.section.markets .region {
  stroke: #E7F2E7;
  stroke-width: 2px;
  fill: #FF9900;
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
  opacity: 0;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  -ms-transform: scale(0.5);
  -o-transform: scale(0.5);
  transform: scale(0.5);
  -webkit-transform-origin: 50% 50%;
  -moz-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  -o-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
}
.section.markets .region.focus {
  opacity: 0.7;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1);
}
.section.markets .region:hover {
  opacity: 1;
}
.section.markets .region.hover {
  opacity: 1;
  fill: #038779 !important;
}
.section.markets .points {
  opacity: 0;
  -webkit-transition: opacity ease-out 300ms;
  -moz-transition: opacity ease-out 300ms;
  -ms-transition: opacity ease-out 300ms;
  -o-transition: opacity ease-out 300ms;
  transition: opacity ease-out 300ms;
}
.section.markets .points .circle {
  opacity: 0.5;
}
.section.markets .points.active {
  opacity: 1;
}
.section.markets .points.active .circle {
  opacity: 0.5;
  pointer-events: none;
}
.section.markets .points.active .circle.active {
  -webkit-animation: pulse 4s ease-in-out infinite;
  -moz-animation: pulse 4s ease-in-out infinite;
  animation: pulse 4s ease-in-out infinite;
}
@-moz-keyframes pulse {
  0% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.5;
  }
}
@-webkit-keyframes pulse {
  0% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.5;
  }
}
@keyframes pulse {
  0% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.5;
  }
}
.section.markets .highlighted {
  position: absolute;
  top: 0;
  left: 0;
  right: -50px;
}
.section.markets .highlighted .pointKey {
  border-bottom: 0;
  width: 250px;
  position: absolute;
  left: -80px;
  opacity: 0;
  -webkit-transition: opacity 300ms ease-out 100ms;
  -moz-transition: opacity 300ms ease-out 100ms;
  -ms-transition: opacity 300ms ease-out 100ms;
  -o-transition: opacity 300ms ease-out 100ms;
  transition: opacity 300ms ease-out 100ms;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.markets .highlighted .pointKey {
    left: 0;
    opacity: 1;
    margin: 20px 0;
    width: 220px;
  }
  .section.markets .highlighted .pointKey div {
    font-size: 14.999999999999998px;
    font-size: 1.1538461538461537rem;
    padding: 0 0 0 20px;
  }
  .section.markets .highlighted .pointKey div:before {
    width: 13px;
    height: 13px;
    margin-top: 0;
    top: 5px;
  }
}
@media all and (max-width: 640px) {
  .section.markets .highlighted .pointKey {
    display: none;
  }
}
.section.markets .highlighted .pointKey.highlight {
  opacity: 1;
}
@media all and (max-width: 640px) {
  .section.markets .highlighted .pointKey.highlight {
    display: none;
  }
}
.section.markets .highlighted .pointKey div {
  width: 100%;
  float: none;
}
.section.markets .highlighted .market {
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0;
  -webkit-transition: opacity 300ms ease-in-out;
  -moz-transition: opacity 300ms ease-in-out;
  -ms-transition: opacity 300ms ease-in-out;
  -o-transition: opacity 300ms ease-in-out;
  transition: opacity 300ms ease-in-out;
  width: 210px;
  text-align: left;
  padding: 50px 0 0 0;
}
@media all and (max-width: 1180px) {
  .section.markets .highlighted .market {
    width: 22%;
    right: 20px;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.markets .highlighted .market {
    right: 20px;
    width: 22%;
  }
}
@media all and (max-width: 640px) {
  .section.markets .highlighted .market {
    display: none;
  }
}
.section.markets .highlighted .market h4 {
  line-height: 1.2;
}
.section.markets .highlighted .market.highlight {
  opacity: 1;
}
@media all and (max-width: 640px) {
  .section.markets .highlighted .market.highlight {
    display: none;
  }
}
.section.markets .highlighted .market:hover {
  background: transparent;
}
.section.markets .pointKey {
  width: 95%;
  padding: 20px 0;
  margin: 20px;
  border-bottom: 1px solid #EEE;
  *zoom: 1;
}
.section.markets .pointKey:before,
.section.markets .pointKey:after {
  content: "";
  display: table;
}
.section.markets .pointKey:after {
  clear: both;
}
.section.markets .pointKey div {
  float: left;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  line-height: 25px;
  vertical-align: middle;
  width: 50%;
  padding: 0 0 0 22px;
  position: relative;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .section.markets .pointKey div {
    width: 100%;
  }
}
.section.markets .pointKey div:before {
  display: inline-block;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  margin-right: 10px;
  content: '';
  vertical-align: middle;
  margin-top: -3px;
  position: absolute;
  left: 0;
  top: 7px;
}
.section.markets .pointKey div.hotstats:before {
  background: #FFD500;
}
.section.markets .pointKey div.supply:before {
  background: #384420;
}
.section.markets .market {
  padding: 10px 20px;
}
.section.markets .market:hover {
  background: #F9F9F9;
}
.section.markets ul {
  margin-bottom: 20px;
}
.section.markets h4 {
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.section.markets li {
  font-size: 16px;
  font-size: 1.2307692307692308rem;
}
.section.markets li span {
  display: inline-block;
  border-radius: 50%;
  height: 10px;
  width: 10px;
  margin-right: 5px;
}
.section.markets li .supply {
  background: #384420;
}
.section.markets li .hotstats {
  background: #FFD500;
}
.section.video {
  background: #DDD url(../images/layout/videoPoster.avif) center;
  background-size: cover;
  height: 860px;
  position: relative;
  overflow: hidden;
  display: block;
  border-top: 0;
}
.section.video .big-image {
  display: none;
  background: url(../images/layout/videoPoster.avif) center;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
}
@media all and (max-width: 640px) {
  .section.video .big-image {
    display: none;
    background: transparent;
  }
}
.section.video .videoWrap {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.section.video .videoWrap video {
  width: 100%;
  height: 100%;
  opacity: 0;
}
@media all and (max-width: 640px) {
  .section.video .videoWrap {
    display: none;
  }
}
.section.video .video-js {
  height: 100%;
  width: 100%;
  position: relative;
}
.section.video .big-image {
  min-width: 100%;
  min-height: 100%;
  height: auto;
  width: auto;
  position: relative;
  z-index: 3;
}
.section.video .overlay {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 5;
}
.section.video .caption {
  position: absolute;
  top: 55%;
  left: 50%;
  width: 870px;
  text-align: center;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  z-index: 6;
  color: #FFF;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.video .caption {
    width: 80%;
  }
}
@media all and (max-width: 640px) {
  .section.video .caption {
    width: 80%;
  }
}
.section.video .caption .playBtn {
  color: #FFF;
  font-size: 59.99999999999999px;
  font-size: 4.615384615384615rem;
}
.section.video .caption h1 {
  font-size: 80px;
  font-size: 6.153846153846154rem;
  margin-bottom: 20px;
  color: #FFF;
}
@media all and (max-width: 640px) {
  .section.video .caption h1 {
    font-size: 40px;
    font-size: 3.076923076923077rem;
  }
}
.section.video .caption p {
  margin: 0;
  line-height: 1;
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
}
.section.video .caption .buttonAlt {
  width: 170px;
  margin: 25px auto;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.section.video .caption .buttonAlt i {
  margin-right: 5px;
  vertical-align: middle;
}
.section.video .down {
  position: absolute;
  bottom: 5%;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.6);
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.6);
  width: 40px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  display: block;
  z-index: 5;
}
.section.marketSnapshot,
.section.statistics,
.section.productTrends {
  display: block;
  /*.content {
            padding: 100px 0;
        }*/
}
.section.marketSnapshot .content.right,
.section.statistics .content.right,
.section.productTrends .content.right {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media all and (max-width: 1180px) {
  .section.marketSnapshot .content.right,
  .section.statistics .content.right,
  .section.productTrends .content.right {
    right: 40px;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .section.marketSnapshot .content.right,
  .section.statistics .content.right,
  .section.productTrends .content.right {
    right: 20px;
  }
}
@media all and (max-width: 640px) {
  .section.marketSnapshot .content.right,
  .section.statistics .content.right,
  .section.productTrends .content.right {
    position: relative;
    top: 0;
    right: 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
    padding: 20px 0;
  }
}
.section.marketSnapshot .frame img,
.section.statistics .frame img,
.section.productTrends .frame img {
  float: right;
  max-width: none;
}
.section.marketSnapshot {
  min-height: 700px;
}
.section.marketSnapshot .content.left {
  padding-top: 200px;
}
.section.marketSnapshot .content.right img {
  float: left;
}
.section.statistics .wrapper {
  height: 900px;
}
.section.statistics .statGraph {
  position: absolute;
  right: 80px;
  bottom: 100px;
  z-index: 2;
}
.section.statistics .emptyFrame img {
  max-width: none;
  float: right;
}
.section.statistics .graphs {
  position: absolute;
  right: 80px;
  top: 150px;
  z-index: 2;
  border-bottom: 1px solid #DDD;
  white-space: nowrap;
}
.section.search {
  position: relative;
  display: block;
}
.section.search .wrapper {
  height: 900px;
}
@media all and (max-width: 1000px) {
  .section.search .wrapper {
    height: auto;
  }
  .section.search .wrapper .content {
    width: 100%;
  }
}
.section.search .content.right {
  position: absolute;
  top: 50%;
  right: 0;
  padding: 60px 40px;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media all and (max-width: 1000px) {
  .section.search .content.right {
    position: relative;
    top: 0;
    left: 0;
    padding: 20px 0;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
.section.search .overlay {
  /*
            background: -moz-linear-gradient(left,  rgba(255,255,255,1) 0%, rgba(255,255,255,1) 70%, rgba(255,255,255,0) 100%);
            background: -webkit-linear-gradient(left,  rgba(255,255,255,1) 0%,rgba(255,255,255,1) 70%,rgba(255,255,255,0) 100%);
            background: linear-gradient(to right,  rgba(255,255,255,1) 0%,rgba(255,255,255,1) 70%,rgba(255,255,255,0) 100%);
            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1 );
*/
  background: #FFF;
  background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #fdfdfd 25%, #f9f9f9 100%);
  background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #fdfdfd 25%, #f9f9f9 100%);
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #fdfdfd 25%, #f9f9f9 100%);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 33%;
  z-index: 2;
  pointer-events: none;
}
.ie9 .section.search .overlay {
  left: 50%;
}
@media all and (max-width: 1000px) {
  .section.search .overlay {
    display: none;
  }
}
.section.search #playableMapWrap {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 1;
}
.section.search #playableMapWrap img {
  display: none;
}
@media all and (max-width: 640px) {
  .section.search #playableMapWrap {
    position: static;
    width: 100%;
  }
  .section.search #playableMapWrap img {
    display: block;
  }
}
.section.search #playableMapWrap iframe {
  display: block;
  border: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}
@media all and (max-width: 1000px) {
  .section.search #playableMapWrap iframe {
    position: static;
    width: 100%;
    height: 400px;
  }
}
.section.search .content {
  position: relative;
  z-index: 3;
}
.section .testimonials {
  padding: 100px 0;
  background: url(../images/layout/lobby.avif) center no-repeat;
  background-size: cover;
}
@media all and (max-width: 640px) {
  .section .testimonials {
    padding: 20px 0;
  }
}
.section .testimonials .carousel {
  max-width: 1000px;
  margin: 0 auto;
}
.section .testimonials .slick-slide {
  padding: 40px 80px;
  text-align: center;
  color: #FFF;
  font-size: 22px;
  font-size: 1.6923076923076923rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  height: 240px;
  position: relative;
}
.section .testimonials .slick-slide p {
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  max-width: 85%;
  margin: 0 auto;
}
.section .testimonials .slick-slide p:before {
  display: block;
  font-family: "FontAwesome";
  position: absolute;
  top: -20px;
  left: -40px;
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  color: #FFF;
  content: '\f10d';
}
.section .testimonials .slick-slide p:after {
  font-family: "FontAwesome";
  position: absolute;
  bottom: -20px;
  right: -40px;
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  color: #FFF;
  content: '\f10e';
}
@media all and (max-width: 640px) {
  .section .testimonials .slick-slide {
    padding: 10px 5px;
    height: auto;
    font-size: 18px;
    font-size: 1.3846153846153846rem;
    margin-bottom: 20px;
  }
  .section .testimonials .slick-slide p {
    width: 95%;
  }
  .section .testimonials .slick-slide p:before {
    top: -40px;
    left: -15px;
  }
  .section .testimonials .slick-slide p:after {
    bottom: -40px;
    right: -15px;
  }
}
.section .testimonials .prevTest,
.section .testimonials .nextTest {
  position: absolute;
  top: 110px;
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  cursor: pointer;
  color: #DDD;
}
@media all and (max-width: 640px) {
  .section .testimonials .prevTest,
  .section .testimonials .nextTest {
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
  }
}
.section .testimonials .prevTest {
  left: -20px;
}
@media all and (max-width: 640px) {
  .section .testimonials .prevTest {
    left: 0;
  }
}
.section .testimonials .nextTest {
  right: -20px;
}
@media all and (max-width: 640px) {
  .section .testimonials .nextTest {
    right: 0;
  }
}
.section .charts {
  float: left;
  width: 50%;
}
.section .video2 {
  width: 563px;
  height: 368px;
}
.section .data {
  *zoom: 1;
  margin-bottom: 20px;
}
.section .data:before,
.section .data:after {
  content: "";
  display: table;
}
.section .data:after {
  clear: both;
}
.section .data h4 {
  font-size: 32px;
  font-size: 2.4615384615384617rem;
  margin: 0;
  line-height: 1;
  color: #038779;
}
.section .data p {
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  color: #999;
  line-height: 1;
}
.section .data .first,
.section .data .second {
  padding: 10px 0;
  margin-right: 40px;
  float: left;
}
.clients {
  padding: 40px 0;
}
@media all and (max-width: 640px) {
  .clients {
    padding: 20px 0;
  }
}
.clients .carousel {
  padding: 40px 40px 0 40px;
}
@media all and (max-width: 640px) {
  .clients .carousel {
    padding: 20px 0;
  }
}
.clients .carousel .slick-dots {
  margin-top: 40px;
}
@media all and (max-width: 640px) {
  .clients .carousel .slick-dots {
    margin-top: 20px;
  }
}
.clients .carousel li a {
  display: block;
  height: 90px;
  position: relative;
  margin: 0 17px;
}
.clients .carousel li a img {
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-right: -50%;
  transform: translate(-50%, -50%);
  max-height: 100%;
}
.clients h1 {
  text-align: center;
}
.clients h2 {
  text-align: center;
  width: 60%;
  margin: 0 auto;
  font-size: 28px;
  font-size: 2.1538461538461537rem;
}
@media all and (max-width: 640px) {
  .clients h2 {
    width: 90%;
    font-size: 20px;
    font-size: 1.5384615384615385rem;
  }
}
.clients .prev,
.clients .next {
  position: absolute;
  top: 78px;
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  cursor: pointer;
  color: #DDD;
}
@media all and (max-width: 1000px) {
  .clients .prev,
  .clients .next {
    z-index: 10;
  }
}
@media all and (max-width: 640px) {
  .clients .prev,
  .clients .next {
    display: none;
  }
}
.clients .prev {
  left: -20px;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .clients .prev {
    left: 0;
  }
}
@media all and (max-width: 640px) {
  .clients .prev {
    left: 0;
  }
}
.clients .next {
  right: -20px;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .clients .next {
    right: 0;
  }
}
@media all and (max-width: 640px) {
  .clients .next {
    right: 0;
  }
}
/* ------------------------------ */
/* Jigsaw */
/* ------------------------------ */
.mainWrapper {
  width: 100%;
}
.mainWrapper .content {
  padding: 50px 0;
  float: right;
  *zoom: 1;
  width: 60%;
}
.mainWrapper .content:before,
.mainWrapper .content:after {
  content: "";
  display: table;
}
.mainWrapper .content:after {
  clear: both;
}
.ie9 .mainWrapper .content {
  width: 100%;
}
.mainWrapper .content .next,
.mainWrapper .content .prev {
  display: none;
}
@media all and (max-width: 1425px) {
  .mainWrapper .content {
    width: 52%;
  }
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .mainWrapper .content {
    width: 40%;
  }
}
@media all and (max-width: 1000px) {
  .mainWrapper .content {
    width: 100%;
  }
  .mainWrapper .content .slick-dots {
    text-align: center;
    margin: 0 auto;
  }
  .mainWrapper .content .slick-dots li {
    margin: 0 3px;
    padding: 0;
    float: none;
    display: inline-block;
  }
  .mainWrapper .content .slick-dots button {
    background: #FFF;
    border-radius: 50%;
    width: 10px;
    height: 10px;
    overflow: hidden;
    text-indent: -9999px;
    border: 0;
    padding: 0;
  }
  .mainWrapper .content .slick-dots .slick-active button {
    background: #038779;
  }
  .mainWrapper .content .next,
  .mainWrapper .content .prev {
    display: block;
    position: absolute;
    top: -10px;
    color: #FFF;
    cursor: pointer;
    font-size: 20px;
    font-size: 1.5384615384615385rem;
    padding: 20px;
    z-index: 101;
  }
  .mainWrapper .content .next:hover,
  .mainWrapper .content .prev:hover {
    color: #038779;
  }
  .mainWrapper .content .prev {
    left: -30px;
  }
  .mainWrapper .content .next {
    right: -30px;
  }
}
.mainWrapper .content h2 {
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  text-align: left;
  color: #FFF;
}
.mainWrapper .content h2:after {
  display: block;
  width: 15px;
  height: 2px;
  border-radius: 10px;
  margin: 5px 0 20px 0;
  background: #FFF;
  content: '';
}
@media all and (max-width: 640px) {
  .mainWrapper .content h2 {
    text-align: center;
    width: 100%;
    margin-bottom: 15px;
  }
  .mainWrapper .content h2:after {
    margin: 0 auto;
  }
}
.mainWrapper .content h3 {
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  color: #FFF;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.mainWrapper .content h3:after {
  margin: 5px 0;
}
.mainWrapper .content .slick-slide {
  overflow: hidden;
  padding: 0 2px;
}
.mainWrapper .content .sector {
  width: 48%;
  float: left;
  margin: 0 4% 20px 0;
  padding: 30px;
  background: #013c36;
  color: #FFF;
  height: 320px;
}
.ie9 .mainWrapper .content .sector {
  width: 49%;
  margin: 0 1% 20px 0;
  float: left;
  height: 250px;
}
@media all and (max-width: 1425px) {
  .mainWrapper .content .sector {
    width: 100%;
    margin: 0 0 20px 0;
    float: none;
    height: auto;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .mainWrapper .content .sector {
    width: 48%;
    float: left;
    margin: 0 4% 20px 0;
    padding: 20px;
    height: 350px;
  }
}
@media all and (max-width: 640px) {
  .mainWrapper .content .sector {
    width: 100%;
    margin: 0 0 20px 0;
    float: none;
    height: auto;
    padding: 15px;
  }
}
.mainWrapper .content .sector:nth-child(2n) {
  margin: 0 0 20px 0;
}
.mainWrapper .content .sector:nth-child(3n) {
  clear: both;
}
.mainWrapper .content .sector li {
  position: relative;
  padding: 0 0 0 25px;
}
.mainWrapper .content .sector li:before {
  float: left;
  display: block;
  font-family: 'FontAwesome';
  width: 30px;
  color: #038779;
  content: '\f00c';
  position: absolute;
  left: 0;
  top: 0;
}
.keys {
  float: left;
  width: 600px;
  clear: left;
  margin-top: 50px;
  display: none;
}
.keys li {
  float: left;
  width: 49%;
  margin-right: 2%;
  padding: 10px 0;
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  color: #FFF;
  line-height: 25px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  text-shadow: 0 0 1px rgba(0, 0, 0, 0.3);
}
.keys li:nth-child(2n) {
  margin-right: 0;
}
.keys .key {
  display: block;
  float: left;
  margin-right: 20px;
  width: 25px;
  height: 25px;
}
.keys .key.operations {
  background: #038779;
}
.keys .key.realEstate {
  background: #81FF81;
}
.keys .key.financeInvestment {
  background: #677F67;
}
.keys .key.serviceSupport {
  background: #038779;
}
.jigsawWrap {
  width: 500px;
  height: 500px;
  position: relative;
  margin: 215px 0 0 0;
  float: left;
}
.ie9 .jigsawWrap {
  display: none;
}
@media all and (max-width: 1425px) {
  .jigsawWrap {
    margin: 50px 0 0 0;
  }
}
@media all and (max-width: 1000px) {
  .jigsawWrap {
    display: none;
  }
}
.jigsawWrap .center {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 400px;
  z-index: 6;
  text-align: center;
  display: none;
}
.jigsawWrap .center h2 {
  font-size: 35px;
  font-size: 2.6923076923076925rem;
  padding: 40px 20px;
  vertical-align: middle;
  color: #038779;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.jigsawWrap .centerLower {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 400px;
  height: 400px;
  border-radius: 50%;
  z-index: 5;
  display: none;
}
.jigsawWrap .arrow {
  right: 0;
  top: 50%;
  position: absolute;
  pointer-events: none;
  z-index: 1;
  width: 40px;
  height: 40px;
  -webkit-transform: rotate(45deg) translateY(-50%);
  -moz-transform: rotate(45deg) translateY(-50%);
  -ms-transform: rotate(45deg) translateY(-50%);
  -o-transform: rotate(45deg) translateY(-50%);
  transform: rotate(45deg) translateY(-50%);
}
.jigsawWrap.operations .arrow {
  background: #038779;
}
.jigsawWrap.operations .operations h3,
.jigsawWrap.operations .operations p {
  opacity: 1;
}
.jigsawWrap.operations .operations i {
  display: none;
}
.jigsawWrap.realEstate .arrow {
  background: #017A6D;
}
.jigsawWrap.realEstate .realEstate h3,
.jigsawWrap.realEstate .realEstate p {
  opacity: 1;
}
.jigsawWrap.realEstate .realEstate i {
  display: none;
}
.jigsawWrap.financeInvestment .arrow {
  background: #038779;
}
.jigsawWrap.financeInvestment .financeInvestment h3,
.jigsawWrap.financeInvestment .financeInvestment p {
  opacity: 1;
}
.jigsawWrap.financeInvestment .financeInvestment i {
  display: none;
}
.jigsawWrap.serviceSupport .arrow {
  background: #017A6D;
}
.jigsawWrap.serviceSupport .serviceSupport h3,
.jigsawWrap.serviceSupport .serviceSupport p {
  opacity: 1;
}
.jigsawWrap.serviceSupport .serviceSupport i {
  display: none;
}
.jigsaw {
  width: 500px;
  height: 500px;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  -webkit-transform: translateZ(2px);
  -moz-transform: translateZ(2px);
  -ms-transform: translateZ(2px);
  -o-transform: translateZ(2px);
  transform: translateZ(2px);
  -webkit-transform: rotate(0);
  -moz-transform: rotate(0);
  -ms-transform: rotate(0);
  -o-transform: rotate(0);
  transform: rotate(0);
  -webkit-transition: transform linear 500ms;
  -moz-transition: transform linear 500ms;
  -ms-transition: transform linear 500ms;
  -o-transition: transform linear 500ms;
  transition: transform linear 500ms;
  z-index: 1;
}
.jigsaw h3,
.jigsaw i {
  opacity: 0.5;
}
.jigsaw i {
  opacity: 0.31;
  display: none;
  position: absolute;
  z-index: 10;
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  color: #FFF;
  top: 22%;
  right: 156px;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: opacity linear 300ms;
  -moz-transition: opacity linear 300ms;
  -ms-transition: opacity linear 300ms;
  -o-transition: opacity linear 300ms;
  transition: opacity linear 300ms;
}
.jigsaw h3 {
  position: absolute;
  z-index: 10;
  color: #FFF;
  width: 250px;
  -webkit-transition: opacity linear 300ms;
  -moz-transition: opacity linear 300ms;
  -ms-transition: opacity linear 300ms;
  -o-transition: opacity linear 300ms;
  transition: opacity linear 300ms;
  text-align: center;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  top: 10px;
  font-size: 21px;
  font-size: 1.6153846153846154rem;
}
.jigsaw h3:after {
  display: none;
}
.jigsaw p {
  position: absolute;
  width: 220px;
  margin-left: 15px;
  top: 40px;
  color: #FFF;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  text-align: center;
  font-size: 13px;
  font-size: 1rem;
  opacity: 0;
  -webkit-transition: opacity linear 300ms;
  -moz-transition: opacity linear 300ms;
  -ms-transition: opacity linear 300ms;
  -o-transition: opacity linear 300ms;
  transition: opacity linear 300ms;
}
.jigsaw .quadrant {
  width: 300px;
  height: 300px;
  position: absolute;
  border: 0;
  -webkit-transition: all linear 300ms;
  -moz-transition: all linear 300ms;
  -ms-transition: all linear 300ms;
  -o-transition: all linear 300ms;
  transition: all linear 300ms;
  background-size: cover;
  cursor: pointer;
}
.jigsaw .quadrant:hover {
  border: 0;
  opacity: 1;
}
.jigsaw .quadrant:hover i {
  opacity: 0.8;
}
.jigsaw img {
  pointer-events: none;
  max-width: none;
}
.jigsaw .wrap:hover h3 {
  opacity: 0.8;
}
.jigsaw .wrap.flip h3 {
  -webkit-transform: scaleX(-1) scaleY(-1);
  -moz-transform: scaleX(-1) scaleY(-1);
  -ms-transform: scaleX(-1) scaleY(-1);
  -o-transform: scaleX(-1) scaleY(-1);
  transform: scaleX(-1) scaleY(-1);
}
.jigsaw .operations .quadrant {
  background-color: #038779;
  top: 100px;
  left: 523px;
  -webkit-transform: rotate(-45deg) translate(-50%, -50%) translateZ(1px);
  -moz-transform: rotate(-45deg) translate(-50%, -50%) translateZ(1px);
  -ms-transform: rotate(-45deg) translate(-50%, -50%) translateZ(1px);
  -o-transform: rotate(-45deg) translate(-50%, -50%) translateZ(1px);
  transform: rotate(-45deg) translate(-50%, -50%) translateZ(1px);
}
.jigsaw .operations img {
  position: absolute;
  top: 27px;
  left: 31px;
}
.jigsaw .operations h3 {
  color: #fff;
}
.jigsaw .realEstate .quadrant {
  background-color: #038779;
  top: -323px;
  right: 100px;
  -webkit-transform: rotate(-135deg) translate(-50%, -50%) translateZ(1px);
  -moz-transform: rotate(-135deg) translate(-50%, -50%) translateZ(1px);
  -ms-transform: rotate(-135deg) translate(-50%, -50%) translateZ(1px);
  -o-transform: rotate(-135deg) translate(-50%, -50%) translateZ(1px);
  transform: rotate(-135deg) translate(-50%, -50%) translateZ(1px);
  z-index: 4;
}
.jigsaw .realEstate img {
  position: absolute;
  top: -79px;
  left: 0px;
}
.jigsaw .realEstate h3,
.jigsaw .realEstate p {
  color: #fff;
}
.jigsaw .financeInvestment .quadrant {
  background-color: #038779;
  bottom: 100px;
  left: -323px;
  -webkit-transform: rotate(-225deg) translate(-50%, -50%) translateZ(1px);
  -moz-transform: rotate(-225deg) translate(-50%, -50%) translateZ(1px);
  -ms-transform: rotate(-225deg) translate(-50%, -50%) translateZ(1px);
  -o-transform: rotate(-225deg) translate(-50%, -50%) translateZ(1px);
  transform: rotate(-225deg) translate(-50%, -50%) translateZ(1px);
}
.jigsaw .financeInvestment img {
  position: absolute;
  top: -79px;
  left: 0;
}
.jigsaw .financeInvestment h3 {
  color: #fff;
}
.jigsaw .serviceSupport .quadrant {
  background-color: #038779;
  top: 524px;
  left: 98px;
  -webkit-transform: rotate(45deg) translate(-50%, -50%) translateZ(1px);
  -moz-transform: rotate(45deg) translate(-50%, -50%) translateZ(1px);
  -ms-transform: rotate(45deg) translate(-50%, -50%) translateZ(1px);
  -o-transform: rotate(45deg) translate(-50%, -50%) translateZ(1px);
  transform: rotate(45deg) translate(-50%, -50%) translateZ(1px);
}
.jigsaw .serviceSupport img {
  position: absolute;
  top: -79px;
  left: 0;
}
.jigsaw .serviceSupport h3,
.jigsaw .serviceSupport p {
  color: #fff;
}
/* ------------------------------ */
/* Carousels */
/* ------------------------------ */
.carousel {
  position: relative;
  padding: 0 20px;
}
.carousel ul {
  padding: 0;
  margin: 0;
}
.carousel li {
  max-width: 50%;
  float: left;
  display: block;
}
.carousel .slick-dots {
  text-align: center;
  margin: 0 auto;
}
.carousel .slick-dots li {
  margin: 0 3px;
  padding: 0;
  float: none;
  display: inline-block;
}
.carousel .slick-dots button {
  background: #DDD;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  overflow: hidden;
  text-indent: -9999px;
  border: 0;
  padding: 0;
}
.carousel .slick-dots .slick-active button {
  background: #038779;
}
.carousel.dataCarousel {
  padding: 0;
  *zoom: 1;
}
.carousel.dataCarousel > .data:not(:first-child) {
  display: none;
}
.carousel.dataCarousel:before,
.carousel.dataCarousel:after {
  content: "";
  display: table;
}
.carousel.dataCarousel:after {
  clear: both;
}
.carousel.dataCarousel .slick-dots {
  float: left;
  *zoom: 1;
}
.carousel.dataCarousel .slick-dots:before,
.carousel.dataCarousel .slick-dots:after {
  content: "";
  display: table;
}
.carousel.dataCarousel .slick-dots:after {
  clear: both;
}
/* ------------------------------ */
/* Sub Page */
/* ------------------------------ */
.coverImage {
  width: 100%;
  height: 80px;
  background: url(../images/layout/coverImage.jpg) center no-repeat;
  background-size: cover;
}
/* ------------------------------ */
/* Products Page */
/* ------------------------------ */
.devices {
  background: #FFF;
  padding: 100px 0;
  border-top: 0;
}
@media all and (max-width: 640px) {
  .devices {
    padding: 40px 0;
  }
}
.devices .content {
  width: 44%;
}
@media all and (max-width: 640px) {
  .devices .content {
    width: 100%;
  }
}
.devices .shelf {
  position: absolute;
  bottom: -7%;
  left: -120px;
  background: url(../images/products/shelf.png) center no-repeat;
  width: 1400px;
  height: 289px;
  z-index: 1;
  opacity: 0;
  -webkit-transform: translateY(20%);
  -moz-transform: translateY(20%);
  -ms-transform: translateY(20%);
  -o-transform: translateY(20%);
  transform: translateY(20%);
  -webkit-transition: all 800ms ease-in-out 400ms;
  -moz-transition: all 800ms ease-in-out 400ms;
  -ms-transition: all 800ms ease-in-out 400ms;
  -o-transition: all 800ms ease-in-out 400ms;
  transition: all 800ms ease-in-out 400ms;
}
@media all and (max-width: 640px) {
  .devices .shelf {
    display: none;
  }
}
.devices .shelf.visible {
  opacity: 1;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  -ms-transform: translateY(0);
  -o-transform: translateY(0);
  transform: translateY(0);
}
.devices .deviceWrap {
  float: left;
  width: 1000px;
  height: 600px;
  margin: 0 auto;
  position: relative;
}
@media all and (max-width: 640px) {
  .devices .deviceWrap {
    height: 450px;
    width: 100%;
  }
}
.devices .device {
  position: absolute;
  opacity: 0;
  -webkit-transform: translateX(50%);
  -moz-transform: translateX(50%);
  -ms-transform: translateX(50%);
  -o-transform: translateX(50%);
  transform: translateX(50%);
  z-index: 2;
}
@-moz-keyframes fadeUp {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50%);
    -moz-transform: translateX(50%);
    -ms-transform: translateX(50%);
    -o-transform: translateX(50%);
    transform: translateX(50%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
  }
}
@-webkit-keyframes fadeUp {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50%);
    -moz-transform: translateX(50%);
    -ms-transform: translateX(50%);
    -o-transform: translateX(50%);
    transform: translateX(50%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeUp {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50%);
    -moz-transform: translateX(50%);
    -ms-transform: translateX(50%);
    -o-transform: translateX(50%);
    transform: translateX(50%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
  }
}
.devices .macbook {
  width: 800px;
  height: 450px;
  left: 0;
  top: 0;
}
@media all and (max-width: 640px) {
  .devices .macbook {
    width: 600px;
    height: 338px;
    left: 15%;
  }
}
.devices .macbook.visible {
  -webkit-animation: fadeUp 800ms ease-out 800ms 1 forwards;
  -moz-animation: fadeUp 800ms ease-out 800ms 1 forwards;
  animation: fadeUp 800ms ease-out 800ms 1 forwards;
}
.devices .ipad {
  width: 420px;
  height: 300px;
  right: 0;
  top: 200px;
}
@media all and (max-width: 640px) {
  .devices .ipad {
    width: 280px;
    height: 200px;
    left: 0;
    right: auto;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
  }
}
.devices .ipad.visible {
  -webkit-animation: fadeUp 800ms ease-out 1400ms 1 forwards;
  -moz-animation: fadeUp 800ms ease-out 1400ms 1 forwards;
  animation: fadeUp 800ms ease-out 1400ms 1 forwards;
}
.devices .iphone {
  width: 140px;
  height: 350px;
  left: 47%;
  bottom: 0%;
}
@media all and (max-width: 640px) {
  .devices .iphone {
    width: 100px;
    height: 250px;
    left: auto;
    right: 0;
    bottom: -10%;
  }
}
.devices .iphone.visible {
  -webkit-animation: fadeUp 800ms ease-out 1900ms 1 forwards;
  -moz-animation: fadeUp 800ms ease-out 1900ms 1 forwards;
  animation: fadeUp 800ms ease-out 1900ms 1 forwards;
}
.devices .arrow {
  position: absolute;
  white-space: nowrap;
  opacity: 0;
  /*

		.transform(translateY(20%));

		&.visible {
			.keyframes(fadeUp; {
				0% {opacity: 0; .transform(translateY(20%));}
				100% {opacity: 1; .transform(translateY(0));}
			});
		}
*/
}
.devices .arrow h2 {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #038779;
  display: inline-block;
  vertical-align: bottom;
  padding: 0 20px;
  position: relative;
  margin: 0;
}
.devices .arrow.left {
  bottom: 0;
  left: -100px;
}
.devices .arrow.left h2 {
  bottom: -15px;
}
.devices .arrow.left.visible {
  -webkit-animation: fadeUp 400ms ease-in 2000ms 1 forwards;
  -moz-animation: fadeUp 400ms ease-in 2000ms 1 forwards;
  animation: fadeUp 400ms ease-in 2000ms 1 forwards;
}
.devices .arrow.right {
  top: 320px;
  right: -215px;
}
.devices .arrow.right h2 {
  bottom: -15px;
  display: block;
}
.devices .arrow.right.visible {
  -webkit-animation: fadeUp 400ms ease-in 2350ms 1 forwards;
  -moz-animation: fadeUp 400ms ease-in 2350ms 1 forwards;
  animation: fadeUp 400ms ease-in 2350ms 1 forwards;
}
.devices .arrow.middle {
  bottom: -80px;
  left: 58%;
  margin-right: -80px;
}
.devices .arrow.middle h2 {
  bottom: -15px;
}
.devices .arrow.middle.visible {
  -webkit-animation: fadeUp 400ms ease-in 2700ms 1 forwards;
  -moz-animation: fadeUp 400ms ease-in 2700ms 1 forwards;
  animation: fadeUp 400ms ease-in 2700ms 1 forwards;
}
.insightsProduct {
  padding: 100px 0;
}
@media all and (max-width: 640px) {
  .insightsProduct {
    padding: 20px 0;
  }
}
.insightsProduct h1,
.insightsProduct h3 {
  text-align: center;
}
.insightsProduct h3 {
  margin-bottom: 40px;
}
@media all and (max-width: 640px) {
  .insightsProduct h3 {
    margin-bottom: 10px;
  }
}
.insightsProduct h3:after {
  margin: 10px auto;
}
.insightsProduct .highlights {
  width: 100%;
  *zoom: 1;
}
.insightsProduct .highlights:before,
.insightsProduct .highlights:after {
  content: "";
  display: table;
}
.insightsProduct .highlights:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .insightsProduct .highlights .slick-dots {
    text-align: center;
    margin: 0 auto;
  }
  .insightsProduct .highlights .slick-dots li {
    margin: 0 3px;
    padding: 0;
    float: none;
    display: inline-block;
  }
  .insightsProduct .highlights .slick-dots button {
    background: #DDD;
    border-radius: 50%;
    width: 10px;
    height: 10px;
    overflow: hidden;
    text-indent: -9999px;
    border: 0;
    padding: 0;
  }
  .insightsProduct .highlights .slick-dots .slick-active button {
    background: #038779;
  }
}
.insightsProduct .highlights .highlight {
  float: left;
  width: 32%;
  margin: 0 2% 20px 0;
  text-align: left;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  color: #999;
  position: relative;
  *zoom: 1;
}
.insightsProduct .highlights .highlight:before,
.insightsProduct .highlights .highlight:after {
  content: "";
  display: table;
}
.insightsProduct .highlights .highlight:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .insightsProduct .highlights .highlight {
    width: 100%;
    margin: 0 0 20px 0;
    padding: 10px 0;
  }
}
.insightsProduct .highlights .highlight h2 {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.insightsProduct .highlights .highlight h2:after {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 10px;
  margin: 10px 0;
  background: #038779;
  content: '';
}
@media all and (max-width: 1180px) {
  .insightsProduct .highlights .highlight h2 {
    text-align: center;
    width: 100%;
  }
  .insightsProduct .highlights .highlight h2:after {
    margin: 10px auto;
  }
}
@media all and (max-width: 640px) {
  .insightsProduct .highlights .highlight h2 {
    text-align: center;
    width: 100%;
  }
  .insightsProduct .highlights .highlight h2:after {
    margin: 10px auto;
  }
}
.insightsProduct .highlights .highlight:nth-child(3n) {
  margin: 0 0 20px 0;
}
@media all and (max-width: 640px) {
  .insightsProduct .highlights .highlight:nth-child(3n) {
    margin: 0;
  }
}
.insightsProduct .highlights .highlight div {
  float: right;
  width: 65%;
  top: 0%;
  right: 0;
  min-height: 165px;
}
@media all and (max-width: 1180px) {
  .insightsProduct .highlights .highlight div {
    width: 100%;
    text-align: center;
  }
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .insightsProduct .highlights .highlight div {
    font-size: 17px;
    font-size: 1.3076923076923077rem;
    padding: 0 10px;
  }
}
@media all and (max-width: 640px) {
  .insightsProduct .highlights .highlight div {
    width: 100%;
    float: none;
    min-height: unset;
    text-align: center;
    padding: 5px 0 0 0;
    min-height: auto;
  }
}
.insightsProduct .highlights .highlight i {
  border-radius: 50%;
  border: 1px solid #EEE;
  background: #FFF;
  font-size: 59.99999999999999px;
  font-size: 4.615384615384615rem;
  display: block;
  width: 33%;
  max-width: 130px;
  max-height: 130px;
  text-align: center;
  color: #038779;
  float: left;
  margin-right: 40px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  padding: 33px 0;
}
@media all and (max-width: 1180px) {
  .insightsProduct .highlights .highlight i {
    width: 130px;
    height: 130px;
    max-height: 130px;
    position: static;
    float: none;
    margin: 10px auto;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
@media all and (max-width: 640px) {
  .insightsProduct .highlights .highlight i {
    position: relative;
    top: 0;
    float: none;
    margin: 0 auto;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
    height: 100px;
    width: 100px;
    line-height: 1;
    font-size: 45px;
    font-size: 3.4615384615384617rem;
  }
}
.productTrends .list {
  float: left;
  margin: 20px 80px 40px 0;
}
@media all and (max-width: 1425px) {
  .productTrends .list {
    margin: 20px 60px 40px 0;
  }
}
@media all and (max-width: 640px) {
  .productTrends .list {
    margin: 10px 0;
    width: 100%;
  }
}
.productTrends .list h2 {
  font-size: 28px;
  font-size: 2.1538461538461537rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #038779;
}
.productTrends .list h2:after {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 10px;
  margin: 0 0 15px 0;
  background: #70C06B;
  content: '';
}
.callToActionBar {
  width: 100%;
  padding: 70px 0;
  background: #F1F1F1;
}
@media all and (max-width: 640px) {
  .callToActionBar {
    padding: 20px 0;
  }
}
.callToActionBar .buttons {
  width: 400px;
  margin: 0 auto;
}
@media all and (max-width: 640px) {
  .callToActionBar .buttons {
    width: 200px;
  }
}
.callToActionBar .buttons .buttonAlt {
  width: 180px;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
}
@media all and (max-width: 640px) {
  .callToActionBar .buttons .buttonAlt {
    width: 200px;
    margin: 5px 0;
  }
}
.region#ireland,
.region.ireland {
  fill: #007976;
}
.region#scotland,
.region.scotland {
  fill: #00908d;
}
.region#northernIreland,
.region.northernIreland {
  fill: #00B2AE;
}
.region#northEast,
.region.northEast {
  fill: #00d2cd;
}
.region#northWest,
.region.northWest {
  fill: #16bcb9;
}
.region#yorkshire,
.region.yorkshire {
  fill: #308a88;
}
.region#westMidlands,
.region.westMidlands {
  fill: #4daba9;
}
.region#wales,
.region.wales {
  fill: #7ee1df;
}
.region#eastMidlands,
.region.eastMidlands {
  fill: #188f82;
}
.region#eastofEngland,
.region.eastofEngland {
  fill: #03b39f;
}
.region#london,
.region.london {
  fill: #519c94;
}
.region#southWest,
.region.southWest {
  fill: #38968b;
}
.region#southEast,
.region.southEast {
  fill: #367770;
}
.hotspotMap {
  padding: 50px 0;
}
.hotspotMap .svgContainer {
  width: 100%;
  max-width: 600px;
  position: relative;
  height: 0;
  padding-top: 100%;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .hotspotMap .svgContainer {
    width: 60%;
    margin: 0 auto;
    padding-top: 70%;
  }
}
@media all and (max-width: 640px) {
  .hotspotMap .svgContainer {
    padding-top: 100%;
  }
}
.hotspotMap svg {
  position: absolute;
  top: 0;
  left: 0;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .hotspotMap svg {
    width: 100%;
    margin: 0 auto;
    height: auto;
    display: block;
    float: none;
  }
}
@media all and (max-width: 640px) {
  .hotspotMap {
    padding: 0;
  }
  .hotspotMap svg {
    width: 80%;
    height: auto;
    float: none;
  }
}
/* ------------------------------ */
/* News Page */
/* ------------------------------ */
.box {
  float: left;
  width: 32%;
  margin: 10px 0;
  margin-right: 2%;
  overflow: hidden;
}
.box:nth-child(3n) {
  margin-right: 0;
}
@media all and (max-width: 1000px) {
  .box {
    width: 100%;
    margin: 0 0 10px 0;
    padding: 10px 0 0 0;
    border-top: 1px solid #EEE;
    position: relative;
  }
  .box:first-child {
    border: 0;
  }
  .box .image {
    display: none;
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 30%;
    overflow: hidden;
  }
  .box .image img {
    position: absolute;
    top: 50%;
    display: block;
    -webkit-transform: translate(0%, -50%);
    -moz-transform: translate(0%, -50%);
    -ms-transform: translate(0%, -50%);
    -o-transform: translate(0%, -50%);
    transform: translate(0%, -50%);
    width: 100%;
  }
}
.box.news {
  position: relative;
}
.box.news .caption {
  position: absolute;
  left: 15px;
  bottom: 15px;
  padding: 15px;
  width: 80%;
  background: #333;
  color: #FFF;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
}
@media all and (max-width: 1000px) {
  .box.news .caption {
    background: #FFF;
    position: relative;
    left: auto;
    bottom: auto;
    right: 0;
    width: 100%;
    padding: 0;
    float: right;
    color: #333;
    text-align: left;
  }
}
.box.news .caption h5 {
  color: #FFF;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  margin-bottom: 10px;
  line-height: 18px;
}
@media all and (max-width: 1000px) {
  .box.news .caption h5 {
    color: #666;
    margin-bottom: 0;
  }
}
.box.news .caption p {
  margin-bottom: 10px;
  line-height: 15px;
}
@media all and (max-width: 1000px) {
  .box.news .caption p {
    display: none;
    font-size: 14px;
    font-size: 1.0769230769230769rem;
    line-height: 18px;
    margin-bottom: 5px;
  }
}
.box.news .caption .date {
  font-size: 13px;
  font-size: 1rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  line-height: 15px;
}
.box.news .caption .date i {
  display: none;
}
@media all and (max-width: 1000px) {
  .box.news .caption .date {
    color: #999;
  }
  .box.news .caption .date i {
    display: inline-block;
    margin-right: 5px;
  }
}
.box img {
  -webkit-transition: all linear 300ms;
  -moz-transition: all linear 300ms;
  -ms-transition: all linear 300ms;
  -o-transition: all linear 300ms;
  transition: all linear 300ms;
  width: 100%;
}
@media all and (max-width: 1000px) {
  .box img {
    width: 40%;
    float: left;
    height: auto;
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    -o-transition: none;
    transition: none;
  }
}
.box:hover img {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
  transform: scale(1.1);
}
@media all and (max-width: 1000px) {
  .box:hover img {
    -webkit-transform: translate(0, -50%);
    -moz-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    -o-transform: translate(0, -50%);
    transform: translate(0, -50%);
  }
}
.newsPage .section {
  padding: 50px 0;
}
@media all and (max-width: 1000px) {
  .newsPage .section {
    padding: 20px 0;
  }
}
.newsPage #js_newsletter {
  display: none;
}
.newsPage .publications {
  padding: 50px 0;
  *zoom: 1;
}
.newsPage .publications:before,
.newsPage .publications:after {
  content: "";
  display: table;
}
.newsPage .publications:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .newsPage .publications {
    padding: 0;
  }
}
.newsPage .subscribe {
  background: #038779 url(../images/layout/newsletter.png) center;
  color: #FFF;
  padding: 100px 20px;
  *zoom: 1;
  margin: 0;
  line-height: 40px;
}
.newsPage .subscribe:before,
.newsPage .subscribe:after {
  content: "";
  display: table;
}
.newsPage .subscribe:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .newsPage .subscribe {
    padding: 20px;
  }
}
.newsPage .subscribe .content {
  width: 100%;
  *zoom: 1;
}
.newsPage .subscribe .content:before,
.newsPage .subscribe .content:after {
  content: "";
  display: table;
}
.newsPage .subscribe .content:after {
  clear: both;
}
.newsPage .subscribe h2 {
  font-size: 35px;
  font-size: 2.6923076923076925rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin: 0;
  float: left;
  line-height: 56px;
  color: #FFF;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}
@media all and (max-width: 1000px) {
  .newsPage .subscribe h2 {
    font-size: 22px;
    font-size: 1.6923076923076923rem;
    margin: 0 0 10px 0;
    line-height: 28px;
    text-align: center;
    float: none;
    width: 100%;
  }
}
.newsPage .subscribe .buttonAlt {
  float: right;
  margin: 0;
}
@media all and (max-width: 1000px) {
  .newsPage .subscribe .buttonAlt {
    width: 130px;
    margin: 0 auto;
    clear: both;
  }
  .newsPage .subscribe .buttonAlt.right {
    display: block;
    float: none;
  }
}
.newsPage .ourInsights {
  *zoom: 1;
  margin: 20px 0;
  font-size: 17px;
  font-size: 1.3076923076923077rem;
}
.newsPage .ourInsights:before,
.newsPage .ourInsights:after {
  content: "";
  display: table;
}
.newsPage .ourInsights:after {
  clear: both;
}
.newsPage .archives {
  *zoom: 1;
  padding: 20px 0;
}
.newsPage .archives:before,
.newsPage .archives:after {
  content: "";
  display: table;
}
.newsPage .archives:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .newsPage .archives .box {
    background: #FFF;
    border: 1px solid #EEE;
    padding: 10px;
  }
  .newsPage .archives .box .caption {
    padding: 0;
  }
}
@media all and (max-width: 640px) {
  .newsPage .archives {
    padding: 0;
  }
}
.newsPage .archives h1 {
  text-align: center;
  margin-bottom: 20px;
}
.newsPage .archives h4 {
  display: none;
}
@media all and (max-width: 640px) {
  .newsPage .archives h4 {
    display: block;
    cursor: pointer;
    margin: 0;
    font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
    padding: 10px;
  }
  .newsPage .archives h4:after {
    display: block;
    float: right;
    padding: 0 5px;
    content: '\f0d7';
    font-family: 'FontAwesome';
  }
}
@media all and (max-width: 640px) {
  .newsPage .archives .list {
    width: 100%;
    border: 1px solid #EEE;
    background: #FFF;
    margin-bottom: 20px;
  }
}
.newsPage .archives ul {
  text-align: center;
  margin: 0;
}
@media all and (max-width: 640px) {
  .newsPage .archives ul {
    text-align: left;
    display: none;
    border-top: 1px solid #EEE;
  }
  .newsPage .archives ul.months {
    display: none;
  }
}
.newsPage .archives ul li {
  display: inline-block;
  margin: 0 10px;
}
@media all and (max-width: 640px) {
  .newsPage .archives ul li {
    display: block;
    margin: 0;
  }
}
.newsPage .archives ul a {
  padding: 5px 10px;
  display: block;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #333;
}
@media all and (max-width: 640px) {
  .newsPage .archives ul a {
    padding: 10px;
    line-height: 1;
    font-size: 16px;
    font-size: 1.2307692307692308rem;
    -webkit-transition: all ease-in-out 300ms;
    -moz-transition: all ease-in-out 300ms;
    -ms-transition: all ease-in-out 300ms;
    -o-transition: all ease-in-out 300ms;
    transition: all ease-in-out 300ms;
  }
  .newsPage .archives ul a:hover,
  .newsPage .archives ul a.selected {
    background: #F5F5F5;
  }
}
.newsPage .archives ul a.selected {
  color: #038779;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.newsPage .archives ul a:hover {
  color: #038779;
}
.newsPage .archives ul.months {
  border-bottom: 1px solid #EEE;
  margin-bottom: 20px;
}
.newsPage .archives ul.months a {
  color: #999;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
}
.newsPage .archives ul.months a.selected {
  color: #038779;
}
.newsPage .archives ul.months a:hover {
  color: #038779;
}
.article {
  padding: 50px 40px;
}
@media all and (max-width: 1000px) {
  .article {
    padding: 20px;
  }
}
.article ol {
  counter-reset: item;
}
.article ol > li {
  display: block;
}
.article ol > li:before {
  content: counters(item, ".") " - ";
  counter-increment: item;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.article h3 i {
  font-size: 17px;
  font-size: 1.3076923076923077rem;
  display: block;
  float: left;
  padding: 5px 8px 5px 0;
}
.article .sidebar {
  float: right;
  width: 20%;
  margin-left: 2%;
}
.article .sidebar h4 {
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  color: #038779;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  border-bottom: 1px solid #DDD;
}
.article .sidebar li {
  padding: 3px 0;
}
@media all and (max-width: 1000px) {
  .article .sidebar {
    width: 100%;
    margin: 20px 0;
    float: none;
    clear: both;
  }
  .article .sidebar ul {
    display: none;
    background: #FFF;
    padding: 5px;
    border: 1px solid #EEE;
    border-top: 0;
  }
  .article .sidebar ul li {
    padding: 0;
  }
  .article .sidebar ul a {
    padding: 8px 10px;
    display: block;
    width: 100%;
  }
  .article .sidebar h4 {
    background: #038779;
    color: #FFF;
    padding: 10px;
    position: relative;
    cursor: pointer;
    margin: 0;
  }
  .article .sidebar h4:after {
    display: block;
    content: '\f0d7';
    font-family: 'FontAwesome';
    position: absolute;
    right: 10px;
    top: 10px;
  }
  .article .sidebar h4.open:after {
    content: '\f0d8';
  }
}
.article .inner {
  width: 78%;
  float: left;
  *zoom: 1;
}
.article .inner:before,
.article .inner:after {
  content: "";
  display: table;
}
.article .inner:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .article .inner {
    width: 100%;
    margin: 0;
    padding-bottom: 30px;
  }
  .article .inner h1 {
    font-size: 25px;
    font-size: 1.9230769230769231rem;
  }
  .article .inner h3 {
    font-size: 16px;
    font-size: 1.2307692307692308rem;
    line-height: 18px;
  }
  .article .inner h3 i {
    font-size: 14px;
    font-size: 1.0769230769230769rem;
    padding-top: 1px;
  }
}
.article .inner img {
  float: right;
  margin: 0 0 20px 20px;
}
@media all and (max-width: 1000px) {
  .article .inner img {
    margin: 0 0 30px 0;
    float: none;
    display: block;
  }
}
.article .inner h5 {
  clear: both;
  text-transform: uppercase;
  border-bottom: 1px solid #EEE;
  color: #AAA;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-size: 1rem;
  padding: 5px 0;
  margin: 0 0 20px 0;
}
.article .inner .attachement {
  display: block;
  position: relative;
  padding: 5px 10px 5px 30px;
  line-height: 20px;
}
.article .inner .attachement.pdf:before {
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  content: '\f1c1';
  font-family: 'FontAwesome';
  display: block;
  position: absolute;
  top: 5px;
  left: 0;
  color: #999;
}
.article .filter-table {
  float: left;
  line-height: 23px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin-bottom: 0;
  padding: 10px 20px;
  color: #333;
  background: #F1F1F1;
  border-bottom: 1px solid #DDD;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
  width: 100%;
}
.article .filter-table input {
  float: right;
  border-radius: 3px;
  padding: 0 10px;
  border: 1px solid #EEE;
  line-height: 21px;
  margin-left: 10px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-size: 1rem;
}
.article table {
  margin: 20px 0;
}
.article table tr {
  background: #FFF;
}
.article table tr:nth-child(odd) {
  background: #F9F9F9;
}
.article table th {
  background: #F1F1F1;
  color: #038779;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.article table th:first-child {
  padding: 5px 20px;
}
.article table td {
  border: 1px solid #EEE;
  padding: 5px 10px;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
}
@media all and (max-width: 640px) {
  .article table td {
    display: block;
    width: 100%;
    border-bottom: 0;
  }
}
.article table td:first-child {
  vertical-align: middle;
  padding: 5px 20px;
}
@media all and (max-width: 640px) {
  .article table td:first-child {
    border-bottom: 0;
    padding: 5px;
  }
}
.article table td:first-child img {
  max-width: 80px;
}
.article table.filterTable td:last-child {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
/* ------------------------------ */
/* Order Page */
/* ------------------------------ */
.order {
  *zoom: 1;
  padding: 20px 0;
}
.order:before,
.order:after {
  content: "";
  display: table;
}
.order:after {
  clear: both;
}
.order .termsWrap {
  clear: both;
  *zoom: 1;
  text-align: left;
}
.order .termsWrap:before,
.order .termsWrap:after {
  content: "";
  display: table;
}
.order .termsWrap:after {
  clear: both;
}
.order .termsWrap .termsAndConditions {
  max-height: 496px;
  overflow: auto;
  margin-bottom: 20px;
  padding: 20px;
  display: none;
  text-align: left;
}
.order .termsWrap .termsAndConditions ol {
  margin: 0;
  padding: 0 0 0 20px;
}
.order .termsconditions {
  margin: 0;
}
.order .termsconditions label {
  padding: 0 20px 0 0;
  line-height: 33px;
}
@media all and (max-width: 640px) {
  .order .termsconditions label {
    padding: 0 30px 0 0;
  }
}
form.styled .total {
  background: #038779;
  color: #FFF;
  width: 100%;
  *zoom: 1;
  clear: both;
  padding: 0 20px;
  border-radius: 10px;
  margin-top: 10px;
  display: block;
}
form.styled .total:before,
form.styled .total:after {
  content: "";
  display: table;
}
form.styled .total:after {
  clear: both;
}
form.styled .total h5 {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 22px;
  font-size: 1.6923076923076923rem;
  float: left;
  color: #FFF;
  padding: 20px 0;
  margin: 0;
}
form.styled .total h5:after {
  content: 'Please inquire';
}
@media all and (max-width: 640px) {
  form.styled .total h5 {
    line-height: 1;
    padding: 20px 0;
  }
}
form.styled .total span {
  display: none !important;
  float: right;
  font-size: 22px;
  font-size: 1.6923076923076923rem;
  line-height: 1;
  padding-top: 20px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
@media all and (max-width: 640px) {
  form.styled .total span {
    float: none;
    width: 100%;
    padding: 10px 0;
    display: block;
    clear: left;
  }
}
form.styled .total small {
  clear: right;
  display: block;
  float: right;
  font-size: 11px;
  font-size: 0.8461538461538461rem;
  text-transform: uppercase;
}
form.styled .break {
  margin: 20px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  width: 100%;
  clear: both;
}
form.styled h4 {
  line-height: 30px;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  vertical-align: middle;
  margin: 10px 0;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  text-align: left;
}
form.styled h4 span {
  display: block;
  width: 30px;
  height: 30px;
  text-align: center;
  line-height: 30px;
  background: #038779;
  color: #FFF;
  font-size: 17px;
  font-size: 1.3076923076923077rem;
  margin-right: 15px;
  border-radius: 50%;
  float: left;
}
form.styled h4 span i {
  vertical-align: middle;
}
form.styled .help {
  float: right;
  background: #EEE;
  padding: 20px;
  width: 28%;
  border-radius: 10px;
}
form.styled .details,
form.styled .terms {
  background: #EEE;
  padding: 20px;
  clear: left;
}
form.styled .formWrap {
  float: left;
  width: 56%;
}
@media all and (max-width: 640px) {
  form.styled .formWrap {
    width: 100%;
    margin-bottom: 20px;
    *zoom: 1;
    float: none;
  }
  form.styled .formWrap:before,
  form.styled .formWrap:after {
    content: "";
    display: table;
  }
  form.styled .formWrap:after {
    clear: both;
  }
}
form.styled .submitButton {
  background: #EEE;
  padding: 0 20px 20px 20px;
  float: left;
  width: 56%;
}
form.styled .submitButton .buttonAlt {
  margin-top: 0;
}
@media all and (max-width: 640px) {
  form.styled .submitButton {
    width: 100%;
    margin-top: 20px;
    float: none;
    padding: 20px;
  }
  form.styled .submitButton .buttonAlt {
    float: none;
    width: 100%;
    margin: 0 auto;
  }
}
form.styled .terms {
  margin-top: 20px;
}
@media all and (max-width: 640px) {
  form.styled .wrapper-sticky {
    width: 100% !important;
  }
}
form.styled .products {
  background: none;
  float: right;
  width: 40%;
  background: #EEE;
  padding: 20px;
}
form.styled .products .inputWrap .item {
  position: relative;
}
form.styled .products .inputWrap .price {
  display: none;
}
form.styled .products .inputWrap.selected .product:after {
  content: 'Please inquire';
  position: absolute;
  right: 20px;
}
.renew form.styled .products {
  width: 100%;
}
@media all and (max-width: 640px) {
  form.styled .products {
    width: 100% !important;
  }
}
form.styled .products h4 {
  margin-bottom: 20px;
}
form.styled .products .row {
  margin-bottom: 0;
  overflow: hidden;
}
form.styled .products .item,
form.styled .products .subscriptionItem {
  border-radius: 10px;
  padding: 0 20px;
  background: #ffffff;
  margin-bottom: 10px;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  box-shadow: none;
  *zoom: 1;
  width: 100%;
}
form.styled .products .item:before,
form.styled .products .subscriptionItem:before,
form.styled .products .item:after,
form.styled .products .subscriptionItem:after {
  content: "";
  display: table;
}
form.styled .products .item:after,
form.styled .products .subscriptionItem:after {
  clear: both;
}
form.styled .products .item:before,
form.styled .products .subscriptionItem:before {
  display: none;
}
@media all and (max-width: 640px) {
  form.styled .products .item,
  form.styled .products .subscriptionItem {
    padding: 0 16px;
  }
}
form.styled .products .text {
  margin: 5px 0;
}
form.styled .products .selected .item,
form.styled .products .subscriptionItem,
form.styled .products .subscriptionItem {
  background: #038779;
  color: #ffffff;
}
form.styled .products .selected .item:after,
form.styled .products .subscriptionItem:after,
form.styled .products .subscriptionItem:after {
  display: block;
  font-family: 'FontAwesome';
  content: '\f00c';
  position: absolute;
  top: 20px;
  right: 60px;
  font-size: 135px;
  font-size: 10.384615384615385rem;
  color: rgba(255, 255, 255, 0.15);
}
@media all and (max-width: 640px) {
  form.styled .products .selected .item:after,
  form.styled .products .subscriptionItem:after,
  form.styled .products .subscriptionItem:after {
    top: -20px;
    right: -10px;
  }
}
form.styled .products .selected .item .price,
form.styled .products .subscriptionItem .price,
form.styled .products .subscriptionItem .price {
  color: #FFF;
}
form.styled .products .subscriptionItem {
  position: relative;
  padding: 20px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
form.styled .products .subscriptionItem:after {
  top: -70px;
}
form.styled .products .text {
  width: 70px;
  float: right;
  margin: 9px 0;
  text-align: center;
}
@media all and (max-width: 640px) {
  form.styled .products .text {
    width: 100%;
    margin: 0;
    float: none;
    margin-bottom: 10px;
  }
}
form.styled .products .product {
  padding: 20px 0;
  display: block;
  float: left;
}
@media all and (max-width: 640px) {
  form.styled .products .product {
    padding-bottom: 10px;
  }
}
form.styled .products .price {
  float: right;
  font-size: 22px;
  font-size: 1.6923076923076923rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #038779;
  line-height: 61px;
}
@media all and (max-width: 640px) {
  form.styled .products .price {
    display: block;
    float: none;
    clear: both;
    width: 100%;
    text-align: left;
    line-height: 31px;
    padding-bottom: 10px;
  }
}
form.styled .products small {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
  float: right;
  display: block;
  clear: right;
}
@media all and (max-width: 640px) {
  form.styled .products small {
    width: 100%;
    text-align: left;
    font-size: 12px;
    font-size: 0.9230769230769231rem;
    margin-bottom: 20px;
  }
}
form.styled .products .terms {
  font-size: 13px;
  font-size: 1rem;
  padding: 0 5px;
}
form.styled .products .terms strong {
  font-size: 16px;
  font-size: 1.2307692307692308rem;
}
form.styled .buttonAlt {
  margin-top: 20px;
}
.whiteRow {
  border-radius: 10px;
  padding: 0 20px;
  background: #ffffff;
  margin-bottom: 10px !important;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  box-shadow: none;
  *zoom: 1;
  width: 100%;
  padding-bottom: 11px;
  overflow: visible !important;
}
.whiteRow:before,
.whiteRow:after {
  content: "";
  display: table;
}
.whiteRow:after {
  clear: both;
}
.whiteRow .chosen-container-active .chosen-choices li.search-field input {
  width: 100% !important;
}
.whiteRow .chosen-container-multi .chosen-choices li.search-field input[type="search"] {
  width: 100% !important;
}
.whiteRow .chosen-container-active.chosen-with-drop {
  border-radius: 0;
  border: none;
}
.whiteRow .chosen-container {
  border-radius: 0;
  border: none;
}
.whiteRow .chosen-container-multi .chosen-choices {
  border: 1px solid #DDD;
  border-radius: 5px;
}
.whiteRow:before {
  display: none;
}
@media all and (max-width: 640px) {
  .whiteRow {
    padding: 0 16px;
  }
}
/* ------------------------------ */
/* Login Page */
/* ------------------------------ */
.login {
  padding: 100px 0;
  *zoom: 1;
}
.login:before,
.login:after {
  content: "";
  display: table;
}
.login:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .login {
    padding: 30px 0;
    *zoom: 1;
  }
  .login:before,
  .login:after {
    content: "";
    display: table;
  }
  .login:after {
    clear: both;
  }
}
.login form {
  *zoom: 1;
  background: #EEE;
  padding: 20px;
  float: right;
  width: 45%;
}
.login form:before,
.login form:after {
  content: "";
  display: table;
}
.login form:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .login form {
    width: 100%;
  }
  .login form .buttonAlt {
    width: 100%;
    margin-top: 20px;
    float: none;
    padding: 10px 20px;
  }
}
.login .content {
  float: left;
  width: 45%;
}
@media all and (max-width: 640px) {
  .login .content {
    width: 100%;
    padding: 0 0 20px 0;
  }
}
.login li {
  margin: 0 40px 0 0;
  float: left;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
}
@media all and (max-width: 640px) {
  .login li {
    font-size: 17px;
    font-size: 1.3076923076923077rem;
  }
}
.login li i {
  margin-right: 5px;
}
.login a:hover {
  color: #038779;
}
/* ------------------------------ */
/* Client Dashboard */
/* ------------------------------ */
.dashBackground {
  background: #F1F1F1;
}
.dashBackground .logo {
  margin-left: 20px;
}
.dashBackground .wrapper {
  padding: 0;
}
.dashBackground .footer .logo {
  margin-left: 0;
}
.dashboard {
  margin: 40px 20px;
  *zoom: 1;
  background: #FFF;
  padding: 20px;
  /*
    h1 {
        .rems(25);
        margin-top: 40px;
        width: 100%;
        line-height: 27px;

        span {
            .rems(12);
            font-family: @semiBold;
            color: #999;
            display: block;
            float: right;
            vertical-align: middle;
            letter-spacing: 0;
        }
    }
*/
}
.dashboard:before,
.dashboard:after {
  content: "";
  display: table;
}
.dashboard:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .dashboard {
    margin: 0;
  }
}
.dashboard .content.left {
  width: 45%;
}
@media all and (max-width: 1000px) {
  .dashboard .content.left {
    width: 100%;
  }
}
.dashboard h2 {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin: 0 0 15px 0;
}
@media all and (max-width: 640px) {
  .dashboard h2 {
    margin: 0;
  }
}
.dashboard .welcome {
  *zoom: 1;
  margin-bottom: 20px;
  border-bottom: 1px solid #EEE;
  padding-bottom: 20px;
}
.dashboard .welcome:before,
.dashboard .welcome:after {
  content: "";
  display: table;
}
.dashboard .welcome:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .dashboard .welcome {
    margin: 0;
    padding: 0;
    border: 0;
  }
  .dashboard .welcome h1 {
    display: none;
  }
}
.dashboard .welcome h1 {
  line-height: 45px;
  margin: 0;
  float: left;
}
.dashboard .welcome .button {
  margin-left: 10px;
  padding: 8px 24px;
  border: 0;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
  line-height: 24px;
  letter-spacing: 0;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .dashboard .welcome .button {
    padding: 8px 15px;
  }
  .dashboard .welcome .button span {
    display: none;
  }
  .dashboard .welcome .button i {
    margin-right: 0;
  }
}
.dashboard .welcome .messages {
  background: #04aa98;
  color: #FFF;
  float: right;
  position: relative;
}
.dashboard .welcome .messages:hover {
  background: #05d2bc;
}
@media all and (max-width: 640px) {
  .dashboard .welcome .messages:hover {
    background: transparent;
  }
}
.dashboard .welcome .messages .count {
  border-radius: 50%;
  height: 20px;
  line-height: 20px;
  min-width: 20px;
  color: #FFF;
  background: #f00;
  display: block;
  position: absolute;
  top: -5px;
  right: -5px;
  font-size: 11px;
  font-size: 0.8461538461538461rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  text-align: center;
}
@media all and (max-width: 640px) {
  .dashboard .welcome .messages .count {
    height: 16px;
    min-width: 16px;
    line-height: 16px;
    right: 0;
  }
}
@media all and (max-width: 640px) {
  .dashboard .welcome .messages {
    display: block;
    position: fixed;
    top: 19px;
    right: 50px;
    background: none;
    color: #677F67;
    z-index: 5001;
    padding: 0;
    font-size: 23px;
    font-size: 1.7692307692307692rem;
  }
  .dashboard .welcome .messages span.text {
    display: none;
  }
}
.dashboard .welcome .account {
  background: #038779;
  color: #FFF;
  float: right;
}
.dashboard .welcome .account:hover {
  background: #04a08f;
}
@media all and (max-width: 640px) {
  .dashboard .welcome .account {
    display: none;
  }
}
.dashboard .blocks {
  margin: 0 auto;
}
.dashboard .blocks a {
  display: block;
  width: 23.5%;
  margin: 0 2% 20px 0;
  background: #038779;
  color: #FFF;
  float: left;
  text-align: center;
  padding: 50px 20px;
  border-radius: 5px;
  -webkit-transition: background ease-in-out 300ms;
  -moz-transition: background ease-in-out 300ms;
  -ms-transition: background ease-in-out 300ms;
  -o-transition: background ease-in-out 300ms;
  transition: background ease-in-out 300ms;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .dashboard .blocks a {
    width: 49%;
  }
  .dashboard .blocks a:nth-child(2n) {
    margin-right: 0;
  }
}
@media all and (max-width: 640px) {
  .dashboard .blocks a {
    width: 100%;
    margin: 0 0 20px 0;
  }
}
.dashboard .blocks a h4 {
  color: #FFF;
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  margin: 20px 0 0 0;
}
.dashboard .blocks a i {
  font-size: 40px;
  font-size: 3.076923076923077rem;
  margin: 20px 0 0 0;
}
.dashboard .blocks a:nth-child(4n) {
  margin-right: 0;
}
.dashboard .blocks a:hover {
  background: #038779;
}
.dashboard .filter {
  float: right;
  position: relative;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .filter {
    display: none;
  }
}
@media all and (max-width: 1000px) {
  .dashboard .filter {
    display: none;
  }
}
.dashboard .filter h4 {
  margin: 0 0 0 10px;
}
.dashboard .filter .row {
  margin-bottom: 0;
  padding-bottom: 0;
}
.dashboard .filter .openFilter {
  padding: 8px 15px;
  text-align: right;
  cursor: pointer;
}
.dashboard .filter .openFilter.selected {
  background: #EEE;
}
.dashboard .filter .filterWrap {
  position: relative;
  float: left;
}
.dashboard .filter .filterWrap#filtersRegion h5 {
  border-bottom: solid 1px #cccccc;
  padding-top: 10px;
  clear: both;
  cursor: pointer;
}
.dashboard .filter .filterWrap#filtersRegion h5:first-of-type {
  padding-top: 0;
}
.dashboard .filter .filterWrap#filtersRegion .filters > div {
  padding-left: 10px;
}
.dashboard .filter .filters {
  background: #EEE;
  position: absolute;
  top: 39px;
  right: 0;
  padding: 20px;
  display: none;
  clear: both;
  *zoom: 1;
  z-index: 20;
  width: 333px;
  max-height: 600px;
  overflow: auto;
}
.dashboard .filter .filters:before,
.dashboard .filter .filters:after {
  content: "";
  display: table;
}
.dashboard .filter .filters:after {
  clear: both;
}
.dashboard .filter .filters label {
  line-height: 25px;
  padding: 0;
}
.dashboard .filter .filters .text {
  float: none;
  display: inline-block;
  width: 33%;
  border-radius: 0;
}
.dashboard .filter .filters span {
  display: inline-block;
  padding: 0 15px;
  line-height: 38px;
}
.dashboard .filter .filters .buttonAlt {
  margin-top: 10px;
  clear: both;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
}
.dashboard .users {
  /*
        .tableWrap {
            max-height: 300px;
            overflow: auto;
            border: 1px solid #A9C4A9;
        }
*/
}
.dashboard .users p {
  line-height: 34px;
  margin-bottom: 16px;
  float: left;
}
@media all and (max-width: 640px) {
  .dashboard .users p {
    margin-bottom: 0;
  }
}
.dashboard .users th,
.dashboard .users td {
  padding: 5px;
  white-space: nowrap;
  line-height: 34px;
}
.dashboard .users th {
  background: #038779;
  color: #FFF;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .users tr {
  background: #E7F2E7;
}
.dashboard .users tr:nth-child(odd) {
  background: #EFF4EF;
}
.dashboard .buttons {
  padding: 0 0 20px 0;
  border-bottom: 1px solid #EEE;
  margin: 0 0 20px 0;
  *zoom: 1;
}
.dashboard .buttons:before,
.dashboard .buttons:after {
  content: "";
  display: table;
}
.dashboard .buttons:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .dashboard .buttons {
    margin: 0 0 10px 0;
    padding: 0 0 10px 0;
  }
}
.dashboard .buttons .row {
  float: left;
  width: 50%;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .dashboard .buttons .row {
    width: 100%;
  }
}
@media all and (max-width: 640px) {
  .dashboard .buttons .row {
    width: 49%;
    float: right;
  }
}
.dashboard .buttons .button {
  margin-left: 10px;
  padding: 8px 16px;
  border: 0;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .buttons .button.location {
  display: none;
}
@media all and (max-width: 640px) {
  .dashboard .buttons .button.location {
    display: block;
    background: #038779;
    color: #FFF;
    border: 0;
    width: 49%;
    padding: 0;
    margin: 0;
    float: left;
    line-height: 40px;
    -webkit-transition: background ease-in-our 300ms;
    -moz-transition: background ease-in-our 300ms;
    -ms-transition: background ease-in-our 300ms;
    -o-transition: background ease-in-our 300ms;
    transition: background ease-in-our 300ms;
    font-size: 12px;
    font-size: 0.9230769230769231rem;
  }
  .dashboard .buttons .button.location i {
    margin-right: 5px;
  }
  .dashboard .buttons .button.location:hover {
    background: #232323;
  }
}
.dashboard .buttons .membership {
  background: #038779;
  color: #FFF;
  margin-left: 0;
  border: 0;
  width: 380px;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .dashboard .buttons .membership {
    width: 100%;
    margin-bottom: 10px;
  }
}
@media all and (max-width: 640px) {
  .dashboard .buttons .membership {
    display: none;
  }
}
.dashboard .buttons .membership.right {
  float: right;
  clear: right;
}
.dashboard .buttons .membership.orange {
  background: #e3a42a;
}
.dashboard .buttons .membership.red {
  background: #b94a48;
}
.dashboard .buttons .membership span {
  text-decoration: underline;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .buttons label {
  display: block;
  float: none;
  width: 100%;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .buttons .text.search {
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  padding: 10px;
  border-radius: 5px 0 0 5px;
  border-right: 0;
  float: left;
  line-height: 18px;
  width: 92%;
}
@media all and (max-width: 640px) {
  .dashboard .buttons .text.search {
    width: 80%;
  }
}
.dashboard .buttons .buttonSearch {
  width: 8%;
  border: 0;
  background: #038779;
  color: #FFF;
  text-align: center;
  border-radius: 0 5px 5px 0;
  float: left;
  line-height: 16px;
  padding: 12px 5px;
}
@media all and (max-width: 640px) {
  .dashboard .buttons .buttonSearch {
    width: 20%;
  }
}
.dashboard .statistics {
  *zoom: 1;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #EEE;
}
.dashboard .statistics:before,
.dashboard .statistics:after {
  content: "";
  display: table;
}
.dashboard .statistics:after {
  clear: both;
}
@media all and (max-width: 640px) {
  .dashboard .statistics .carousel {
    display: none;
  }
}
.dashboard .stats {
  width: 100%;
  padding: 20px 0 0 0;
  *zoom: 1;
  clear: both;
}
.dashboard .stats:before,
.dashboard .stats:after {
  content: "";
  display: table;
}
.dashboard .stats:after {
  clear: both;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .dashboard .stats {
    margin-bottom: 20px;
  }
}
@media all and (max-width: 640px) {
  .dashboard .stats {
    border-top: 1px solid #EEE;
    border-bottom: 1px solid #EEE;
    margin-bottom: 20px;
    display: none;
  }
}
.dashboard .stats .slick-dots {
  text-align: center;
  margin: 20px auto 0;
  float: none;
}
.dashboard .stats .slick-dots li {
  margin: 0 3px;
  padding: 0;
  float: none;
  display: inline-block;
}
.dashboard .stats .slick-dots button {
  background: #DDD;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  overflow: hidden;
  text-indent: -9999px;
  border: 0;
  padding: 0;
}
.dashboard .stats .slick-dots .slick-active button {
  background: #038779;
}
.dashboard .stats .slick-track {
  display: flex;
  justify-content: space-between;
}
.dashboard .stats .stat {
  float: left;
  width: 33%;
  margin: 0 3% 0 0;
  background: #EEE;
  text-align: left;
  padding: 23px 20px;
  background: #04a08f;
  flex: 1;
}
@media all and (max-width: 640px) {
  .dashboard .stats .stat {
    width: 100%;
    margin: 0;
  }
}
.dashboard .stats .stat h2 {
  margin: 0;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  display: block;
  color: #FFF;
}
@media all and (max-width: 1000px) {
  .dashboard .stats .stat h2 {
    font-size: 18px;
    font-size: 1.3846153846153846rem;
  }
}
.dashboard .stats .stat h4 {
  margin: 0;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
  clear: left;
  display: block;
  color: #FFF;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .stats .stat .numbers {
  margin-top: 20px;
  float: left;
  width: 50%;
  line-height: 1.2;
}
@media all and (min-width: 641px) and (max-width: 1000px) {
  .dashboard .stats .stat .numbers {
    width: 100%;
  }
}
.dashboard .stats .stat .numbers strong {
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  color: #FFF;
}
@media all and (max-width: 640px) {
  .dashboard .stats .stat .numbers strong {
    font-size: 25px;
    font-size: 1.9230769230769231rem;
  }
}
.dashboard .stats .stat .numbers p {
  font-size: 17px;
  font-size: 1.3076923076923077rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #FFF;
}
.dashboard .stats .stat:nth-child(3n) {
  margin-right: 0;
}
.dashboard .charts {
  padding: 20px 20px 0 20px;
  *zoom: 1;
  width: 100%;
  position: relative;
}
.dashboard .charts:before,
.dashboard .charts:after {
  content: "";
  display: table;
}
.dashboard .charts:after {
  clear: both;
}
.dashboard .charts.mobile .column {
  width: 48%;
}
.dashboard .charts.mobile .column:nth-child(odd) {
  width: 48%;
}
@media all and (max-width: 1000px) {
  .dashboard .charts.mobile .mapGraph .points .point {
    width: 30px;
    height: 30px;
    line-height: 30px;
  }
  .dashboard .charts.mobile .column {
    display: block;
    float: none;
    width: 100%;
  }
  .dashboard .charts.mobile .column:nth-child(odd) {
    width: 100%;
  }
  .dashboard .charts.mobile .chartWrap .canvasWrap {
    width: 100%;
  }
  .dashboard .charts.mobile .chartWrap.full .chart {
    position: absolute;
    left: -100%;
  }
  .dashboard .charts.mobile .chartWrap.full .chart.active {
    position: static;
  }
  .dashboard .charts.mobile .chartWrap.full .chart ul {
    width: 100%;
    position: static;
  }
}
@media all and (max-width: 1000px) {
  .dashboard .charts {
    padding: 0;
  }
}
.dashboard .charts .slick-dots {
  text-align: center;
  margin: 0 auto;
}
@media all and (max-width: 1000px) {
  .dashboard .charts .slick-dots {
    display: none !important;
  }
}
.dashboard .charts .slick-dots li {
  margin: 0 3px;
  padding: 0;
  float: none;
  display: inline-block;
}
.dashboard .charts .slick-dots button {
  background: #EEE;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  overflow: hidden;
  text-indent: -9999px;
  border: 0;
  padding: 0;
}
.dashboard .charts .slick-dots .slick-active button {
  background: #038779;
}
.dashboard .charts .prevCharts,
.dashboard .charts .nextCharts {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  cursor: pointer;
  color: #FFF;
  display: block;
  background: #038779;
  border: none;
  padding: 5px 10px;
  font-size: 22px;
  font-size: 1.6923076923076923rem;
}
@media all and (max-width: 1000px) {
  .dashboard .charts .prevCharts,
  .dashboard .charts .nextCharts {
    display: none !important;
  }
}
.dashboard .charts .prevCharts {
  left: -30px;
}
.dashboard .charts .nextCharts {
  right: -30px;
}
.dashboard .charts .header {
  *zoom: 1;
}
.dashboard .charts .header:before,
.dashboard .charts .header:after {
  content: "";
  display: table;
}
.dashboard .charts .header:after {
  clear: both;
}
.dashboard .charts h4 {
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  color: #666;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin-bottom: 20px;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.dashboard .charts h2 {
  color: #666;
  margin: 0;
  line-height: 35px;
  margin-bottom: 20px;
  *zoom: 1;
  border-bottom: 1px solid #F1F1F1;
  padding-bottom: 10px;
}
.dashboard .charts h2:before,
.dashboard .charts h2:after {
  content: "";
  display: table;
}
.dashboard .charts h2:after {
  clear: both;
}
.dashboard .charts h2:after {
  display: none;
}
.dashboard .charts h2 span {
  margin-left: 10px;
  color: #CCC;
  font-size: 13px;
  font-size: 1rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .charts a {
  display: block;
  line-height: 1;
  vertical-align: middle;
  float: right;
  border-radius: 5px;
  padding: 10px;
  font-size: 12px;
  font-size: 0.9230769230769231rem;
  background: #EEE;
  cursor: pointer;
}
.dashboard .charts a.active {
  background: #038779;
  color: #FFF;
}
.dashboard .charts .carousel {
  padding: 0;
}
.dashboard .charts .column {
  width: 58%;
}
.dashboard .charts .column:nth-child(odd) {
  width: 40%;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .charts .column:nth-child(odd) {
    width: 100%;
  }
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .charts .column {
    width: 100%;
  }
}
.dashboard .charts .column.left {
  float: left;
}
.dashboard .charts .column.right {
  float: right;
}
@media all and (max-width: 1000px) {
  .dashboard .charts .column {
    width: 100%;
    display: none;
  }
}
.dashboard .charts .pointsGroup {
  display: none;
}
.dashboard .charts .mapWrapper {
  margin: 0 auto;
  padding: 40px 0;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .charts .mapWrapper {
    text-align: center;
  }
}
.dashboard .charts .mapGraph {
  margin: 4px auto;
  width: auto;
  position: relative;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .charts .mapGraph {
    height: 440px;
    width: 400px;
  }
}
.dashboard .charts .mapGraph .svgContainer {
  width: 100%;
  max-width: 600px;
  position: relative;
  height: 0;
  padding-top: 100%;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .charts .mapGraph .svgContainer {
    height: 440px;
    margin: 0 auto;
    width: 100%;
  }
}
.dashboard .charts .mapGraph svg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  max-height: 100%;
}
.dashboard .charts .mapGraph .region {
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
}
.dashboard .charts .mapGraph .points .point {
  position: absolute;
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  background: #038779;
  color: #FFF;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  border-radius: 50%;
  display: none;
  z-index: 2;
}
.dashboard .charts .mapGraph .points .negative {
  background: #FF685E;
}
.dashboard .charts .mapGraph .points .scotland {
  left: 55%;
  top: 25%;
}
.dashboard .charts .mapGraph .points .ireland {
  left: 20%;
  top: 58%;
}
.dashboard .charts .mapGraph .points .northernIreland {
  left: 29%;
  top: 40%;
}
.dashboard .charts .mapGraph .points .northWest {
  left: 56%;
  top: 49%;
}
.dashboard .charts .mapGraph .points .northEast {
  left: 68%;
  top: 38%;
}
.dashboard .charts .mapGraph .points .yorkshire {
  left: 71%;
  top: 49%;
}
.dashboard .charts .mapGraph .points .eastMidlands {
  left: 74%;
  top: 61%;
}
.dashboard .charts .mapGraph .points .westMidlands {
  left: 63%;
  top: 66%;
}
.dashboard .charts .mapGraph .points .wales {
  left: 52%;
  top: 68%;
}
.dashboard .charts .mapGraph .points .eastOfEngland {
  left: 87%;
  top: 67%;
}
.dashboard .charts .mapGraph .points .southEast {
  left: 73%;
  top: 85%;
}
.dashboard .charts .mapGraph .points .london {
  left: 79%;
  top: 77%;
}
.dashboard .charts .mapGraph .points .southWest {
  left: 55%;
  top: 84%;
}
.dashboard .charts .chartWrap {
  float: left;
  position: relative;
  width: 48%;
  margin-bottom: 20px;
}
.dashboard .charts .chartWrap.full {
  width: 100%;
}
.dashboard .charts .chartWrap.full .chart {
  width: 100%;
}
.dashboard .charts .chartWrap.full .chart ul {
  position: absolute;
  width: 45%;
  top: 60px;
  right: 0;
  background: #FFF;
}
.dashboard .charts .chartWrap.full .chart ul li {
  display: block;
}
.dashboard .charts .chartWrap .canvasWrap {
  float: left;
  width: 49%;
}
@media all and (max-width: 1000px) {
  .dashboard .charts .chartWrap {
    width: 100%;
  }
}
.dashboard .charts .chartWrap .chart {
  width: 100%;
}
.dashboard .charts .chartWrap .chart.active {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
}
.dashboard .charts .chartWrap.left {
  float: left;
  clear: both;
}
.dashboard .charts .chartWrap.right {
  float: right;
}
.dashboard .charts .chartWrap .toggleRooms,
.dashboard .charts .chartWrap .toggleHotels {
  cursor: pointer;
}
.dashboard .charts .chartWrap a {
  margin-left: 10px;
}
.dashboard .charts .chart {
  background: #FFF;
  float: left;
  position: relative;
}
.dashboard .charts .chart ul {
  display: block;
  width: 100%;
  margin: 10px 0;
  padding: 5px;
  background: #F9F9F9;
}
.dashboard .charts .chart ul li {
  line-height: 15px;
  padding: 3px 0;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  display: inline-block;
  min-width: 100px;
  padding-right: 10px;
}
.dashboard .charts .chart ul span {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 2px;
  border: 1px solid #DDD;
  vertical-align: middle;
  margin-right: 10px;
}
.dashboard .charts .chart ul span.percent {
  float: right;
  display: block;
  border: 0;
  width: auto;
}
.dashboard .charts .chart.leftLegend ul {
  left: 10px;
  right: auto;
}
.dashboard .charts .chart.full {
  width: 100%;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .charts .chart.full {
    width: 100%;
    text-align: center;
  }
}
.dashboard .charts .chart.small {
  width: 48%;
  margin-bottom: 20px;
}
@media all and (max-width: 1000px) {
  .dashboard .charts .chart.small {
    width: 100%;
  }
}
.dashboard .charts .chart.small.left {
  float: left;
}
.dashboard .charts .chart.small.right {
  float: right;
}
.dashboard .charts .chart canvas {
  width: 100% !important;
  padding: 20px;
  height: 300px;
  clear: both;
  background: #F9F9F9;
}
.dashboard .charts .slick-dots {
  margin-top: 10px;
}
.dashboard .sidebar {
  width: 22%;
  float: right;
}
.dashboard .guides {
  *zoom: 1;
  margin: 20px 0 40px;
}
.dashboard .guides:before,
.dashboard .guides:after {
  content: "";
  display: table;
}
.dashboard .guides:after {
  clear: both;
}
.dashboard .guides.right {
  margin: 20px 0;
}
.dashboard .guides.right ul {
  width: 100%;
}
@media all and (max-width: 640px) {
  .dashboard .guides {
    margin: 10px 0;
  }
}
.dashboard .guides ul {
  width: 80%;
  margin: 0 auto;
}
@media all and (max-width: 1000px) {
  .dashboard .guides ul {
    width: 100%;
  }
}
@media all and (max-width: 640px) {
  .dashboard .guides ul {
    width: 100%;
  }
}
.dashboard .guides li {
  width: 32%;
  margin: 10px 2% 10px 0;
  float: left;
}
.dashboard .guides li:nth-child(3n) {
  margin-right: 0;
}
@media all and (max-width: 1000px) {
  .dashboard .guides li {
    width: 48%;
  }
  .dashboard .guides li:nth-child(3n) {
    margin-right: 2%;
  }
  .dashboard .guides li:nth-child(2n) {
    margin-right: 0;
  }
}
@media all and (max-width: 640px) {
  .dashboard .guides li {
    width: 100%;
    margin: 10px 0;
  }
}
.dashboard .guides li a {
  display: block;
  border: 1px solid #DDD;
  border-radius: 5px;
  padding: 50px 10px;
  text-align: center;
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  background: #F1F1F1;
  color: #666;
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
}
@media all and (max-width: 1180px) {
  .dashboard .guides li a {
    font-size: 20px;
    font-size: 1.5384615384615385rem;
    padding: 20px 10px;
  }
}
.dashboard .guides li a:hover {
  background: #038779;
  color: #FFF;
}
.dashboard .guides li a i {
  font-size: 45px;
  font-size: 3.4615384615384617rem;
  margin: 0 auto;
  margin-bottom: 10px;
  display: block;
}
.dashboard .newsWrap {
  width: 78%;
  margin-right: 2%;
  float: left;
  padding: 0;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .newsWrap {
    width: 100%;
    margin-right: 0;
  }
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap {
    width: 100%;
    margin-right: 0;
  }
}
.dashboard .newsWrap #newsBox {
  -webkit-transition: opacity 300ms ease-in-out;
  -moz-transition: opacity 300ms ease-in-out;
  -ms-transition: opacity 300ms ease-in-out;
  -o-transition: opacity 300ms ease-in-out;
  transition: opacity 300ms ease-in-out;
  opacity: 0;
}
.dashboard .newsWrap .articlesWrap {
  position: relative;
}
.dashboard .newsWrap h2 {
  float: left;
}
.dashboard .newsWrap .loading {
  padding: 50px 0;
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #666;
}
.dashboard .newsWrap .loading img {
  margin: 10px auto;
  display: block;
}
.dashboard .newsWrap .empty {
  padding: 50px 0;
  text-align: center;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .newsWrap .articles {
  *zoom: 1;
  border-right: 1px solid #EEE;
  padding-right: 20px;
  float: left;
  width: 100%;
}
.dashboard .newsWrap .articles:before,
.dashboard .newsWrap .articles:after {
  content: "";
  display: table;
}
.dashboard .newsWrap .articles:after {
  clear: both;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .newsWrap .articles {
    border: 0;
    padding: 0;
  }
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap .articles {
    border: 0;
    padding: 0;
  }
}
.dashboard .newsWrap .articles .column {
  width: 100%;
  float: left;
}
.dashboard .newsWrap .box {
  width: 32%;
  margin: 0 2% 20px 0;
  *zoom: 1;
}
.dashboard .newsWrap .box:before,
.dashboard .newsWrap .box:after {
  content: "";
  display: table;
}
.dashboard .newsWrap .box:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap .box {
    margin: 0 0 10px 0;
    width: 100%;
  }
  .dashboard .newsWrap .box .image {
    bottom: 0;
    display: block;
  }
}
.dashboard .newsWrap .box:nth-child(3n) {
  margin-right: 0;
}
.dashboard .newsWrap .box:nth-child(4n) {
  clear: none;
}
.dashboard .newsWrap .box h5 {
  margin-bottom: 0;
}
.dashboard .newsWrap .box .overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: -moz-linear-gradient(top, rgba(0, 0, 0, 0) 5%, rgba(0, 0, 0, 0.47) 58%, rgba(0, 0, 0, 0.85) 100%);
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 5%, rgba(0, 0, 0, 0.47) 58%, rgba(0, 0, 0, 0.85) 100%);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 5%, rgba(0, 0, 0, 0.47) 58%, rgba(0, 0, 0, 0.85) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#d9000000', GradientType=0);
  z-index: 5;
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap .box .overlay {
    display: none;
  }
}
.dashboard .newsWrap .box .caption {
  background: transparent;
  width: auto;
  position: absolute;
  z-index: 10;
  width: 100%;
  left: 0;
  bottom: 0;
  right: 0;
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap .box .caption {
    width: 70%;
    float: right;
    position: relative;
    top: 0;
    padding-left: 10px;
  }
}
.dashboard .newsWrap .box .date {
  line-height: 18px;
  margin-bottom: 2px;
  font-size: 12px;
  font-size: 0.9230769230769231rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .newsWrap .box .date i {
  margin-right: 3px;
}
.dashboard .newsWrap ul {
  margin: 31px 0;
  text-align: center;
  float: right;
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap ul {
    clear: both;
    margin: 30px auto;
    float: none;
  }
}
.dashboard .newsWrap ul li {
  display: inline-block;
  margin: 0 0 0 10px;
}
@media all and (max-width: 1000px) {
  .dashboard .newsWrap ul li {
    margin: 0 5px 10px 5px;
  }
}
.dashboard .newsWrap ul li a {
  padding: 5px 15px;
  background: #EEE;
  color: #666;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  display: block;
  -webkit-transition: all ease-out 300ms;
  -moz-transition: all ease-out 300ms;
  -ms-transition: all ease-out 300ms;
  -o-transition: all ease-out 300ms;
  transition: all ease-out 300ms;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .newsWrap ul li.active a,
.dashboard .newsWrap ul li:hover a {
  background: #038779;
  color: #FFF;
}
.dashboard .tags .tag {
  display: block;
  line-height: 1;
  vertical-align: middle;
  float: left;
  clear: none;
  margin: 0 10px 10px 0;
  border-radius: 5px;
  padding: 10px;
  font-size: 12px;
  font-size: 0.9230769230769231rem;
  border: 1px solid #EEE;
  background: #ffffff;
  background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  background: -webkit-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  background: linear-gradient(to bottom, #ffffff 0%, #e5e5e5 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e5e5e5', GradientType=0);
}
.dashboard .new {
  margin-bottom: 20px;
  width: 20%;
  float: left;
  padding-bottom: 20px;
  border-bottom: 1px solid #EEE;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .new {
    width: 49%;
    margin-right: 2%;
    margin-top: 20px;
    border-bottom: 0;
  }
}
@media all and (max-width: 1000px) {
  .dashboard .new {
    width: 100%;
    margin-right: 0;
  }
}
.dashboard .new ul {
  position: relative;
}
.dashboard .new li {
  position: relative;
  *zoom: 1;
  background: #F1F1F1;
  margin-bottom: 2px;
  padding: 10px;
}
.dashboard .new li:before,
.dashboard .new li:after {
  content: "";
  display: table;
}
.dashboard .new li:after {
  clear: both;
}
.dashboard .new li h4 {
  display: block;
  width: 100%;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .new li a {
  display: block;
  float: left;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  width: 50%;
}
.dashboard .new li a i {
  color: #038779;
  margin-right: 5px;
}
.dashboard .new small {
  text-align: left;
  display: block;
  padding: 0 0 15px 0;
}
.dashboard .table {
  display: none;
}
@media all and (max-width: 1000px) {
  .dashboard .table {
    display: block;
  }
  .dashboard .table h4 {
    float: left;
    line-height: 37px;
  }
  .dashboard .table .location {
    float: right;
    background: #038779;
    color: #FFF;
    text-align: center;
    font-size: 14px;
    font-size: 1.0769230769230769rem;
    width: auto;
  }
  .dashboard .table table {
    width: 100%;
  }
  .dashboard .table table:first-child {
    margin-bottom: 20px;
  }
  .dashboard .table table tr {
    background: #E7F2E7;
  }
  .dashboard .table table tr:nth-child(odd) {
    background: #A9C4A9;
  }
  .dashboard .table table tr:first-child {
    background: #415141;
    color: #FFF;
  }
  .dashboard .table table tr td:first-child {
    background: rgba(0, 0, 0, 0.05);
    font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
    color: #232323;
    width: 120px;
  }
  .dashboard .table table tr th {
    font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  }
}
.dashboard .events {
  width: 20%;
  float: left;
}
@media all and (min-width: 1001px) and (max-width: 1179px) {
  .dashboard .events {
    width: 49%;
    margin-top: 20px;
  }
}
@media all and (max-width: 1000px) {
  .dashboard .events {
    width: 100%;
    float: none;
  }
}
.dashboard .events h1 {
  margin-bottom: 15px;
}
.dashboard .events h2 span {
  display: none;
}
@media all and (max-width: 640px) {
  .dashboard .events h2 span {
    display: inline-block;
    margin-right: 5px;
  }
}
.dashboard .events h3 {
  display: none;
  padding: 10px;
  background: #038779;
  color: #FFF;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  position: relative;
  margin-bottom: 0px;
}
.dashboard .events h3:after {
  top: 100%;
  left: 16%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  margin: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(136, 183, 213, 0);
  border-top-color: #038779;
  border-width: 10px;
  margin-left: -10px;
  background: transparent;
  border-radius: 0;
}
.dashboard .events li {
  display: block;
  margin: 0;
  float: none;
  background: #F1F1F1;
  padding: 20px;
  *zoom: 1;
  border-top: 1px solid #DDD;
}
.dashboard .events li:before,
.dashboard .events li:after {
  content: "";
  display: table;
}
.dashboard .events li:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .dashboard .events li {
    padding: 10px;
  }
}
.dashboard .events li:nth-child(odd) {
  background: #F9F9F9;
}
.dashboard .events li i {
  width: 17px;
  text-align: center;
  position: absolute;
  left: 0;
  top: 0;
  height: 20px;
  line-height: 19px;
}
@media all and (max-width: 1000px) {
  .dashboard .events li i {
    width: 20px;
  }
}
.dashboard .events li:first-child {
  border-top: 0;
}
.dashboard .events li div,
.dashboard .events li p,
.dashboard .events li a {
  position: relative;
  padding: 0 0 0 22px;
  line-height: 20px;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
}
@media all and (max-width: 1000px) {
  .dashboard .events li div,
  .dashboard .events li p,
  .dashboard .events li a {
    margin: 3px 0;
  }
}
.dashboard .events li h4 {
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin: 0 0 10px 0;
  line-height: 22px;
}
.dashboard .events li p {
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  margin: 0;
}
.dashboard .events li p i {
  color: #038779;
}
.dashboard .events li .date {
  display: block;
}
.dashboard .events li .date i {
  color: #038779;
}
.dashboard .events li a {
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  display: block;
}
.dashboard .events li a i {
  color: #038779;
}
.dashboard .events .buttonAlt {
  margin-top: 20px;
  width: 100%;
  padding: 10px;
}
.dashboard .help {
  /*
        .faq {

            .clearfix();
            width: 80%;
            margin: 0 auto;
            margin-bottom: 40px;

            h4 {
                .rems(27);
                margin-bottom: 20px;
                cursor: pointer;
            }

            li {

                padding: 5px 10px;
                width: 50%;
                float: left;

                a {
                    .rems(18);
                }
            }
        }
*/
}
.dashboard .help .sidebar h4,
.dashboard .help .related h4 {
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .help .sidebar {
  float: left;
  width: 18%;
  margin-right: 2%;
  padding: 0;
  border-right: 1px solid #EEE;
}
.dashboard .help .sidebar h4 {
  padding: 0 10px;
}
@media all and (max-width: 1000px) {
  .dashboard .help .sidebar {
    width: 100%;
    margin: 0 0 20px 0;
    float: none;
    border: 1px solid #EEE;
    border-top: 0;
  }
  .dashboard .help .sidebar ul {
    display: none;
    background: #FFF;
    padding: 5px;
  }
  .dashboard .help .sidebar ul li {
    padding: 0;
  }
  .dashboard .help .sidebar ul a {
    padding: 8px 0 8px 30px;
    display: block;
    width: 100%;
  }
  .dashboard .help .sidebar h4 {
    background: #038779;
    color: #FFF;
    padding: 10px;
    position: relative;
    cursor: pointer;
    margin: 0;
  }
  .dashboard .help .sidebar h4:after {
    display: block;
    content: '\f0d7';
    font-family: 'FontAwesome';
    position: absolute;
    right: 10px;
    top: 10px;
  }
  .dashboard .help .sidebar h4.open:after {
    content: '\f0d8';
  }
}
.dashboard .help .sidebar li {
  padding: 5px 0 5px 30px;
  position: relative;
}
.dashboard .help .sidebar li i {
  width: 30px;
  position: absolute;
  top: 10px;
  left: 0;
  text-align: center;
}
.dashboard .help #helpVideo {
  margin-top: 10px;
  width: 100%;
  max-width: 710px;
  height: auto;
}
.dashboard .help .related {
  float: left;
  width: 18%;
  margin-left: 2%;
}
@media all and (max-width: 1000px) {
  .dashboard .help .related {
    width: 100%;
    margin: 0 0 20px 0;
    float: none;
  }
}
.dashboard .help .related h4 {
  border-bottom: 1px solid #EEE;
  padding-bottom: 10px;
}
.dashboard .help .related li {
  padding: 5px 0;
}
.dashboard .help .related li a {
  color: #677F67;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .help .related li a:hover {
  color: #038779;
}
.dashboard .help .article {
  float: left;
  width: 58%;
  padding: 20px;
  background: #F9F9F9;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
  line-height: 1.8;
}
.dashboard .help .article.full {
  width: 80%;
}
@media all and (max-width: 1000px) {
  .dashboard .help .article {
    width: 100%;
    margin: 0 0 20px 0;
    float: none;
    border: 0;
    padding: 20px;
  }
  .dashboard .help .article.full {
    width: 100%;
  }
}
.dashboard .help .article .buttonAlt {
  padding: 6px 25px;
}
.dashboard .help .article h2 {
  font-size: 29.999999999999996px;
  font-size: 2.3076923076923075rem;
  line-height: 44px;
  margin-bottom: 20px;
}
@media all and (max-width: 1000px) {
  .dashboard .help .article h2 {
    display: none;
  }
}
.dashboard .help .article h4 {
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  line-height: 1.3;
  margin-bottom: 20px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.dashboard .help .article .left.padded {
  padding-right: 20px;
}
.dashboard .help .article .right.padded {
  padding-left: 20px;
}
.dashboard .help .article .helpSection {
  margin: 0 0 20px 0;
  background: #FFF;
  padding: 20px;
}
.dashboard .help .article .helpSection h2 {
  margin: 0 0 5px 0;
}
.dashboard .help .article .helpSection h3 {
  text-align: left;
}
.dashboard .help .article .helpSection h3:after {
  margin: 10px 0;
}
.dashboard .help .article .helpSection > h4 {
  position: relative;
  margin-bottom: 0;
  cursor: pointer;
  font-size: 20px;
  font-size: 1.5384615384615385rem;
  padding-right: 25px;
}
.dashboard .help .article .helpSection > h4:after {
  display: block;
  font-family: 'FontAwesome';
  content: '\f067';
  position: absolute;
  top: 5px;
  right: 10px;
  color: #038779;
  font-size: 16px;
  font-size: 1.2307692307692308rem;
}
.dashboard .help .article .helpSection > h4.open:after {
  content: '\f068';
}
.dashboard .help .article .helpSection h5 {
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  color: #038779;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin: 20px 0;
}
.dashboard .help .article .helpSection .helpSection {
  padding: 0;
}
.dashboard .help .article .helpSection .helpSection > h4 {
  background: #EEE;
  padding: 10px;
  -webkit-transition: background 300ms ease-in-out;
  -moz-transition: background 300ms ease-in-out;
  -ms-transition: background 300ms ease-in-out;
  -o-transition: background 300ms ease-in-out;
  transition: background 300ms ease-in-out;
}
.dashboard .help .article .helpSection .helpSection > h4:after {
  top: 13px;
  -webkit-transition: background 300ms ease-in-out;
  -moz-transition: background 300ms ease-in-out;
  -ms-transition: background 300ms ease-in-out;
  -o-transition: background 300ms ease-in-out;
  transition: background 300ms ease-in-out;
}
.dashboard .help .article .helpSection .helpSection > h4.open {
  background: #038779;
  color: #FFF;
}
.dashboard .help .article .helpSection .helpSection > h4.open:after {
  color: #FFF;
}
.dashboard .help .article .helpSection .expand {
  display: none;
  margin-top: 20px;
}
.dashboard .help .article .helpSection.ignore > h4:after {
  display: none;
}
.dashboard .help .article .helpSection.ignore ul {
  display: block;
}
.dashboard .help .article .helpSection table {
  margin: 20px 0;
}
.dashboard .help .article .helpSection table td {
  border: 1px solid #EEE;
  padding: 5px;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
}
@media all and (max-width: 640px) {
  .dashboard .help .article .helpSection table td {
    display: block;
    width: 100%;
    border-bottom: 0;
  }
}
.dashboard .help .article .helpSection table td:first-child {
  vertical-align: middle;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  padding: 5px 20px;
}
@media all and (max-width: 640px) {
  .dashboard .help .article .helpSection table td:first-child {
    padding: 5px;
    border-bottom: 0;
  }
}
.dashboard .help .article .helpSection table td:first-child img {
  max-width: 80px;
}
@media all and (max-width: 640px) {
  .dashboard .help .article .helpSection table {
    border-bottom: 1px solid #eee;
  }
}
.dashboard .help .article ol {
  margin: 0;
  padding: 0 0 0 20px;
}
.dashboard .help .videoSection {
  float: left;
  width: 50%;
  padding-right: 2%;
  position: relative;
  border-right: 1px solid #EEE;
}
.dashboard .help .videoSection .video {
  height: 400px !important;
  border: 5px solid #EEE;
  width: 100% !important;
  overflow: hidden;
  position: relative;
}
.dashboard .help h1 {
  margin-top: 40px;
  text-align: center;
  line-height: 1;
}
@media all and (max-width: 1000px) {
  .dashboard .help h1 {
    font-size: 25px;
    font-size: 1.9230769230769231rem;
  }
}
.dashboard .help h3 {
  margin-bottom: 40px;
  text-align: center;
  line-height: 1;
}
.dashboard .help h3:after {
  margin: 10px auto;
}
@media all and (max-width: 640px) {
  .dashboard .help h3 {
    margin-bottom: 10px;
  }
}
.dashboard .help .faq h4 {
  cursor: pointer;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  margin: 15px 0;
  padding: 10px 40px 10px 0px;
  border-bottom: 1px solid #EEE;
  position: relative;
  -webkit-transition: all ease-in-out 300ms;
  -moz-transition: all ease-in-out 300ms;
  -ms-transition: all ease-in-out 300ms;
  -o-transition: all ease-in-out 300ms;
  transition: all ease-in-out 300ms;
  letter-spacing: 0;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  color: #038779;
}
.dashboard .help .faq h4:after {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  right: 10px;
  font-family: 'FontAwesome';
  content: '\f067';
  font-size: 10px;
  font-size: 0.7692307692307693rem;
}
.dashboard .help .faq h4.open:after {
  content: '\f068';
}
.dashboard .help .faq .answer {
  display: none;
  font-size: 14.999999999999998px;
  font-size: 1.1538461538461537rem;
  padding: 10px 0;
}
.dashboard .help .articleList li {
  background: #FFF;
  margin-bottom: 10px;
  position: relative;
}
.dashboard .help .articleList li a {
  padding: 10px;
  display: block;
}
.dashboard .help .articleList li:after {
  display: block;
  content: '\f0da';
  font-family: 'FontAwesome';
  position: absolute;
  top: 10px;
  right: 10px;
  vertical-align: middle;
}
.dashboard .admin {
  float: right;
  width: 49%;
}
@media all and (max-width: 1000px) {
  .dashboard .admin {
    width: 100%;
    margin-right: 0;
  }
}
.dashboard .access {
  width: 49%;
  float: left;
  margin-right: 2%;
  *zoom: 1;
}
.dashboard .access:before,
.dashboard .access:after {
  content: "";
  display: table;
}
.dashboard .access:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .dashboard .access {
    width: 100%;
    margin-right: 0;
  }
}
.dashboard .access form {
  *zoom: 1;
  margin-bottom: 20px;
}
.dashboard .access form:before,
.dashboard .access form:after {
  content: "";
  display: table;
}
.dashboard .access form:after {
  clear: both;
}
.dashboard .access h3:after {
  display: none;
}
.dashboard .access .products {
  width: 100%;
  background: #FFF;
  padding: 0;
}
.dashboard .access .expiryDate {
  padding: 10px 20px;
  border-radius: 5px;
  background: #F1F1F1;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  margin: 20px 0;
  *zoom: 1;
}
.dashboard .access .expiryDate:before,
.dashboard .access .expiryDate:after {
  content: "";
  display: table;
}
.dashboard .access .expiryDate:after {
  clear: both;
}
.dashboard .access .expiryDate strong {
  color: #038779;
}
.dashboard .access .expiryDate strong.orange {
  color: #e3a42a;
}
.dashboard .access .expiryDate strong.red {
  color: #b94a48;
}
.dashboard .access .expiryDate i {
  margin-right: 10px;
}
.dashboard .access .expiryDate a {
  display: block;
  float: right;
  color: #FFF;
  background: #038779;
  border: 0;
}
.dashboard .access .expiryDate a.orange {
  background: #e3a42a;
}
.dashboard .access .expiryDate a.red {
  background: #b94a48;
}
.dashboard .forms {
  width: 49%;
  float: left;
  *zoom: 1;
}
.dashboard .forms:before,
.dashboard .forms:after {
  content: "";
  display: table;
}
.dashboard .forms:after {
  clear: both;
}
@media all and (max-width: 1000px) {
  .dashboard .forms {
    width: 100%;
    margin-right: 0;
    margin-top: 20px;
  }
}
.dashboard .forms.right {
  float: right;
}
.dashboard .forms form {
  width: 100%;
  *zoom: 1;
}
.dashboard .forms form:before,
.dashboard .forms form:after {
  content: "";
  display: table;
}
.dashboard .forms form:after {
  clear: both;
}
.dashboard .forms form:first-child {
  margin-bottom: 20px;
}
.dashboard .forms form fieldset {
  width: 100%;
}
#calendar {
  width: 100%;
  float: left;
  clear: right;
}
#calendar td.fc-other-month.fc-day-number {
  color: #ffffff;
  font-size: 0;
}
.messageList img {
  margin: 20px auto;
  display: block;
}
.messageList .image {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #415141;
  display: block;
  float: left;
  line-height: 50px;
  text-align: center;
  margin-right: 20px;
  margin-top: 10px;
}
.messageList .image i {
  font-size: 25px;
  font-size: 1.9230769230769231rem;
  color: #FFF;
}
.messageList h1 {
  margin-bottom: 20px;
}
.messageList .delete {
  position: absolute;
  top: -10px;
  right: -10px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #c62f00;
  text-align: center;
  line-height: 25px;
  cursor: pointer;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
}
.messageList .delete i {
  color: #FFF;
}
.messageList .read {
  text-align: right;
  color: #999;
  padding: 10px 10px 0 0;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
  clear: both;
}
.messageList h3:after {
  display: none;
}
.messageList li {
  padding: 0 0 20px 0;
  margin-bottom: 20px;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  *zoom: 1;
  position: relative;
  border-bottom: 1px solid #EEE;
}
.messageList li:before,
.messageList li:after {
  content: "";
  display: table;
}
.messageList li:after {
  clear: both;
}
.messageList li .user {
  padding: 5px 0;
  margin-bottom: 5px;
  color: #999;
}
.messageList li .user strong {
  color: #666;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.messageList li .message {
  width: 100%;
  background: #F9F9F9;
  color: #333;
  position: relative;
  padding: 20px;
  border-radius: 2px;
}
.messageList li .message:after {
  left: 20px;
  bottom: 100%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(103, 127, 100, 0);
  border-bottom-color: #F9F9F9;
  border-width: 6px;
  margin-top: -6px;
}
.messageList li small {
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-size: 1.0769230769230769rem;
}
.messageList li small i {
  margin-right: 5px;
}
.manageCharts h1 {
  margin-bottom: 20px;
}
.manageCharts label {
  padding-left: 0;
  line-height: 35px;
}
.manageCharts .buttonAlt {
  float: right;
  margin: 10px 8px 10px 10px;
}
.manageCharts .row {
  padding: 5px;
}
.manageCharts .row:nth-child(odd) {
  background: #F1F1F1;
}
.lostPage {
  text-align: center;
  padding: 50px 40px;
}
.lostPage img {
  margin: 40px auto;
}
.lostPage h1 {
  font-size: 22px;
  font-size: 1.6923076923076923rem;
  margin-bottom: 20px;
}
.downloads.right {
  width: 50%;
}
@media all and (max-width: 1000px) {
  .downloads.right {
    width: 100%;
  }
}
.downloads .area {
  margin-bottom: 20px;
}
@media all and (max-width: 1000px) {
  .downloads .area {
    margin-top: 20px;
  }
}
.downloads .wrap {
  display: none;
  padding: 10px 0;
}
.downloads h4 {
  color: #038779;
  padding: 5px 0;
  border-bottom: 1px solid #EEE;
  font-size: 18px;
  font-size: 1.3846153846153846rem;
  position: relative;
  cursor: pointer;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.downloads h4:after {
  display: block;
  float: right;
  content: '\f067';
  font-family: 'FontAwesome';
  font-size: 13px;
  font-size: 1rem;
  background: transparent;
  position: absolute;
  top: 10px;
  right: 10px;
  color: #038779;
}
.downloads h4.open:after {
  content: '\f068';
}
.downloads table {
  margin-bottom: 20px;
}
.downloads table th {
  background: #038779;
  color: #FFF;
  border: 1px solid #038779;
  font-family: 'TradeGothicNextW01-Cond', Helvetica, Arial, sans-serif;
}
.downloads table td {
  border: 1px solid #038779;
}
.downloads table tr:first-child th {
  background: #038779;
  border: 1px solid #038779;
}
.downloads table tr:nth-child(odd) {
  background: #E7F2E7;
}
.dashboard .statistics {
  display: none !important;
}
.marketDropdown .chosen-container-single,
.marketDropdown .chosen-container-single.chosen-with-drop {
  border: 1px solid #DDD;
  border-radius: 5px;
}
.marketDropdown .chosen-container-single#database_market_locations_chosen,
.marketDropdown .chosen-container-single.chosen-with-drop#database_market_locations_chosen {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.marketDropdown .chosen-container-single#database_market_locations_2_chosen,
.marketDropdown .chosen-container-single.chosen-with-drop#database_market_locations_2_chosen {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.marketDropdown .chosen-container-single .chosen-results li.grouping_option,
.marketDropdown .chosen-container-single.chosen-with-drop .chosen-results li.grouping_option {
  background-color: #038779;
  color: #ffffff;
}
.marketDropdown .chosen-container-multi .chosen-results li.grouping_option {
  background-color: #038779;
}
.marketDropdown .chosen-container-multi .chosen-results li.grouping_option:not(.result-selected) {
  color: #ffffff;
}
.marketDropdown .chosen-container-multi .chosen-results li.grouping_option:not(.result-selected):hover {
  background-color: #04a08f;
}
.marketDropdown .chosen-container-multi .chosen-results li.grouping_option.result-selected {
  background-color: #1f6b63;
}
.marketDropdown .chosen-container-multi .chosen-results li.group-result {
  display: list-item;
  font-weight: bold;
  cursor: default;
  border-bottom: none;
  color: #333;
  padding: 0;
  height: auto;
  margin: 12px 7px;
}
.marketDropdown .chosen-container-multi .chosen-results li.group-option {
  padding-left: 20px;
}
.marketDropdown .chosen-container-multi .chosen-results li.active-result,
.marketDropdown .chosen-container-multi .chosen-results li.result-selected {
  font-weight: bold;
}
.marketDropdown .chosen-container-multi .chosen-results li.group-option.active-result,
.marketDropdown .chosen-container-multi .chosen-results li.group-option.result-selected {
  font-weight: normal;
}
.marketDropdown .selectionsFiltersWrap label {
  width: 30%;
  font-size: 1.4rem;
  padding-top: 8px;
}
.marketDropdown .selectionsFiltersWrap .chosen-container {
  width: 60%;
}
.marketDropdown .selectionsFiltersWrap .remove-button {
  margin-left: 10px;
  padding: 10px;
  cursor: pointer;
}
.marketDropdown .inputWrap {
  margin-bottom: 5px;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvbnQubGVzcyIsIm10Y19zdHlsZS5sZXNzIiwiem9vbS5sZXNzIiwidmlkZW8ubGVzcyIsInNsaWNrLmxlc3MiLCJyZXNwb25zaXZlX3RhYmxlcy5sZXNzIiwicmVzZXQubGVzcyIsIm1peGlucy5sZXNzIiwicGVyZmVjdHNjcm9sbC5sZXNzIiwib3ZlcmxheS5sZXNzIiwibW9kYWwubGVzcyIsIm1lbnUuc3R5bGUubGVzcyIsIm1lbnUubGVzcyIsImZvcm0ubGVzcyIsImRhdGVwaWNrZXIubGVzcyIsImNob3Nlbi5sZXNzIiwiY2FsZW5kYXIubGVzcyIsImFuaW1hdGlvbi5sZXNzIiwiaWU4Lmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O1lBSVk7QUNZWjtFQUNJLGFBQWEsK0JBQWI7RUFDQSxhQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNWSjtFQUVJLGtCQUFBO0VBQ0EsY0FBQTs7QUFISixjQUtJO0VBRUksY0FBQTtFQUNBLDJCQUFBO0VBQ0EseUJBQUE7RUFDQSx3QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsY0FBQTs7QUFuQlIsY0FLSSxNQWdCSTtFQUNJLGNBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTs7QUF4QlosY0FLSSxNQXNCSSxRQUVJO0VBQ0ksZUFBQTs7QUE5QmhCLGNBcUNJO0VBRUksV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxvQ0FBQTs7QUE5Q1IsY0FxQ0ksUUFXSTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQXhEWixjQTZESTtFQUNJLGNBQUE7RUFD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YVYwQzlCOztFVXpDSTtJVnFDSixtQlVyQ29CLGlCVnFDcEI7SUFDQSxnQlV0Q29CLGlCVnNDcEI7SUFDQSxlVXZDb0IsaUJWdUNwQjtJQUNBLGNVeENvQixpQlZ3Q3BCO0lBQ0EsV1V6Q29CLGlCVnlDcEI7O0VVeENJO0lWb0NKLG1CVXBDb0IsaUJWb0NwQjtJQUNBLGdCVXJDb0IsaUJWcUNwQjtJQUNBLGVVdENvQixpQlZzQ3BCO0lBQ0EsY1V2Q29CLGlCVnVDcEI7SUFDQSxXVXhDb0IsaUJWd0NwQjs7O0FBc0hIO0VVaktDO0lWdUNFLG1CVXZDYSxpQlZ1Q2I7SUFDQSxnQlV4Q2EsaUJWd0NiO0lBQ0EsZVV6Q2EsaUJWeUNiO0lBQ0EsY1UxQ2EsaUJWMENiO0lBQ0EsV1UzQ2EsaUJWMkNiOztFVTFDRjtFQUFLO0VBQUs7RUFBSztJVnNDYixtQlV0QzhCLGFWc0M5QjtJQUNBLGdCVXZDOEIsYVZ1QzlCO0lBQ0EsZVV4QzhCLGFWd0M5QjtJQUNBLGNVekM4QixhVnlDOUI7SUFDQSxXVTFDOEIsYVYwQzlCOztFVXpDSTtJVnFDSixtQlVyQ29CLGlCVnFDcEI7SUFDQSxnQlV0Q29CLGlCVnNDcEI7SUFDQSxlVXZDb0IsaUJWdUNwQjtJQUNBLGNVeENvQixpQlZ3Q3BCO0lBQ0EsV1V6Q29CLGlCVnlDcEI7O0VVeENJO0lWb0NKLG1CVXBDb0IsaUJWb0NwQjtJQUNBLGdCVXJDb0IsaUJWcUNwQjtJQUNBLGVVdENvQixpQlZzQ3BCO0lBQ0EsY1V2Q29CLGlCVnVDcEI7SUFDQSxXVXhDb0IsaUJWd0NwQjs7O0FBdUhIO0VVbEtDO0lWdUNFLG1CVXZDYSxpQlZ1Q2I7SUFDQSxnQlV4Q2EsaUJWd0NiO0lBQ0EsZVV6Q2EsaUJWeUNiO0lBQ0EsY1UxQ2EsaUJWMENiO0lBQ0EsV1UzQ2EsaUJWMkNiOztFVTFDRjtFQUFLO0VBQUs7RUFBSztJVnNDYixtQlV0QzhCLGFWc0M5QjtJQUNBLGdCVXZDOEIsYVZ1QzlCO0lBQ0EsZVV4QzhCLGFWd0M5QjtJQUNBLGNVekM4QixhVnlDOUI7SUFDQSxXVTFDOEIsYVYwQzlCOztFVXpDSTtJVnFDSixtQlVyQ29CLGlCVnFDcEI7SUFDQSxnQlV0Q29CLGlCVnNDcEI7SUFDQSxlVXZDb0IsaUJWdUNwQjtJQUNBLGNVeENvQixpQlZ3Q3BCO0lBQ0EsV1V6Q29CLGlCVnlDcEI7O0VVeENJO0lWb0NKLG1CVXBDb0IsaUJWb0NwQjtJQUNBLGdCVXJDb0IsaUJWcUNwQjtJQUNBLGVVdENvQixpQlZzQ3BCO0lBQ0EsY1V2Q29CLGlCVnVDcEI7SUFDQSxXVXhDb0IsaUJWd0NwQjs7O0FBcUhIO0VVekpDO0lWZ0NFLG1CVWhDYSxRVmdDYjtJQUNBLGdCVWpDYSxRVmlDYjtJQUNBLGVVbENhLFFWa0NiO0lBQ0EsY1VuQ2EsUVZtQ2I7SUFDQSxXVXBDYSxRVm9DYjs7RVVuQ0k7SVYrQkosbUJVL0JxQixRVitCckI7SUFDQSxnQlVoQ3FCLFFWZ0NyQjtJQUNBLGVVakNxQixRVmlDckI7SUFDQSxjVWxDcUIsUVZrQ3JCO0lBQ0EsV1VuQ3FCLFFWbUNyQjs7O0FBc0hIO0VVMUpDO0lWZ0NFLG1CVWhDYSxRVmdDYjtJQUNBLGdCVWpDYSxRVmlDYjtJQUNBLGVVbENhLFFWa0NiO0lBQ0EsY1VuQ2EsUVZtQ2I7SUFDQSxXVXBDYSxRVm9DYjs7RVVuQ0k7SVYrQkosbUJVL0JxQixRVitCckI7SUFDQSxnQlVoQ3FCLFFWZ0NyQjtJQUNBLGVVakNxQixRVmlDckI7SUFDQSxjVWxDcUIsUVZrQ3JCO0lBQ0EsV1VuQ3FCLFFWbUNyQjs7O0FBdUhIO0VVM0pDO0lWZ0NFLG1CVWhDYSxRVmdDYjtJQUNBLGdCVWpDYSxRVmlDYjtJQUNBLGVVbENhLFFWa0NiO0lBQ0EsY1VuQ2EsUVZtQ2I7SUFDQSxXVXBDYSxRVm9DYjs7RVVuQ0k7SVYrQkosbUJVL0JxQixRVitCckI7SUFDQSxnQlVoQ3FCLFFWZ0NyQjtJQUNBLGVVakNxQixRVmlDckI7SUFDQSxjVWxDcUIsUVZrQ3JCO0lBQ0EsV1VuQ3FCLFFWbUNyQjs7O0FVekRKLGdCQXlCSTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VW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eUJWakw5QjtJQUNBLGNVZ0w4Qix5QlZoTDlCO0lBQ0EsV1UrSzhCLHlCVi9LOUI7OztBQXNISDtFVXVERztJVmpMQSxtQlVpTGdCLGVWakxoQjtJQUNBLGdCVWdMZ0IsZVZoTGhCO0lBQ0EsZVUrS2dCLGVWL0toQjtJQUNBLGNVOEtnQixlVjlLaEI7SUFDQSxXVTZLZ0IsZVY3S2hCOztFVThLQTtJVmxMQSxtQlVrTGlCLHlCVmxMakI7SUFDQSxnQlVpTGlCLHlCVmpMakI7SUFDQSxlVWdMaUIseUJWaExqQjtJQUNBLGNVK0tpQix5QlYvS2pCO0lBQ0EsV1U4S2lCLHlCVjlLakI7O0VVK0tZO0lWbkxaLG1CVW1MOEIseUJWbkw5QjtJQUNBLGdCVWtMOEIseUJWbEw5QjtJQUNBLGVVaUw4Qix5QlZqTDlCO0lBQ0EsY1VnTDhCLHlCVmhMOUI7SUFDQSxXVStLOEIseUJWL0s5Qjs7O0FBdUhIO0VVc0RHO0lWakxBLG1CVWlMZ0IsZVZqTGhCO0lBQ0EsZ0JVZ0xnQixlVmhMaEI7SUFDQSxlVStLZ0IsZVYvS2hCO0lBQ0EsY1U4S2dCLGVWOUtoQjtJQUNBLFdVNktnQixlVjdLaEI7O0VVOEtBO0lWbExBLG1CVWtMaUIseUJWbExqQjtJQUNBLGdCVWlMaUIseUJWakxqQjtJQUNBLGVVZ0xpQix5QlZoTGpCO0lBQ0EsY1UrS2lCLHlCVi9LakI7SUFDQSxXVThLaUIseUJWOUtqQjs7RVUrS1k7SVZuTFosbUJVbUw4Qix5QlZuTDlCO0lBQ0EsZ0JVa0w4Qix5QlZsTDlCO0lBQ0EsZVVpTDhCLHlCVmpMOUI7SUFDQSxjVWdMOEIseUJWaEw5QjtJQUNBLFdVK0s4Qix5QlYvSzlCOzs7QVV6REosZ0JBZ05JLFVBNEJJO0VBQ0ksVUFBQTtFQUNBLFdBQUE7O0FWaEVYO0VVbUVHO0lWNUxBLG1CVTRMZ0IsZVY1TGhCO0lBQ0EsZ0JVMkxnQixlVjNMaEI7SUFDQSxlVTBMZ0IsZVYxTGhCO0lBQ0EsY1V5TGdCLGVWekxoQjtJQUNBLFdVd0xnQixlVnhMaEI7O0VVeUxBO0lWN0xBLG1CVTZMaUIseUJWN0xqQjtJQUNBLGdCVTRMaUIseUJWNUxqQjtJQUNBLGVVMkxpQix5QlYzTGpCO0lBQ0EsY1UwTGlCLHlCVjFMakI7SUFDQSxXVXlMaUIseUJWekxqQjs7RVUwTFk7SVY5TFosbUJVOEw4Qix5QlY5TDlCO0lBQ0EsZ0JVNkw4Qix5QlY3TDlCO0lBQ0EsZVU0TDhCLHlCVjVMOUI7SUFDQSxjVTJMOEIseUJWM0w5QjtJQUNBLFdVMEw4Qix5QlYxTDlCOzs7QUFzSEg7RVVrRUc7SVY1TEEsbUJVNExnQixlVjVMaEI7SUFDQSxnQlUyTGdCLGVWM0xoQjtJQUNBLGVVMExnQixlVjFMaEI7SUFDQSxjVXlMZ0IsZVZ6TGhCO0lBQ0EsV1V3TGdCLGVWeExoQjs7RVV5TEE7SVY3TEEsbUJVNkxpQix5QlY3TGpCO0lBQ0EsZ0JVNExpQix5QlY1TGpCO0lBQ0EsZVUyTGlCLHlCVjNMakI7SUFDQSxjVTBMaUIseUJWMUxqQjtJQUNBLFdVeUxpQix5QlZ6TGpCOztFVTBMWTtJVjlMWixtQlU4TDhCLHlCVjlMOUI7SUFDQSxnQlU2TDhCLHlCVjdMOUI7SUFDQSxlVTRMOEIseUJWNUw5QjtJQUNBLGNVMkw4Qix5QlYzTDlCO0lBQ0EsV1UwTDhCLHlCVjFMOUI7OztBQXVISDtFVWlFRztJVjVMQSxtQlU0TGdCLGVWNUxoQjtJQUNBLGdCVTJMZ0IsZVYzTGhCO0lBQ0EsZVUwTGdCLGVWMUxoQjtJQUNBLGNVeUxnQixlVnpMaEI7SUFDQSxXVXdMZ0IsZVZ4TGhCOztFVXlMQTtJVjdMQSxtQlU2TGlCLHlCVjdMakI7SUFDQSxnQlU0TGlCLHlCVjVMakI7SUFDQSxlVTJMaUIseUJWM0xqQjtJQUNBLGNVMExpQix5QlYxTGpCO0lBQ0EsV1V5TGlCLHlCVnpMakI7O0VVMExZO0lWOUxaLG1CVThMOEIseUJWOUw5QjtJQUNBLGdCVTZMOEIseUJWN0w5QjtJQUNBLGVVNEw4Qix5QlY1TDlCO0lBQ0EsY1UyTDhCLHlCVjNMOUI7SUFDQSxXVTBMOEIseUJWMUw5Qjs7O0FVekRKLGdCQWdOSSxVQXVDSTtFQUNJLFVBQUE7RUFDQSxXQUFBOztBVjNFWDtFVThFRztJVnZNQSxtQlV1TWdCLGVWdk1oQjtJQUNBLGdCVXNNZ0IsZVZ0TWhCO0lBQ0EsZVVxTWdCLGVWck1oQjtJQUNBLGNVb01nQixlVnBNaEI7SUFDQSxXVW1NZ0IsZVZuTWhCOztFVW9NQTtJVnhNQSxtQlV3TWlCLHVCVnhNakI7SUFDQSxnQlV1TWlCLHVCVnZNakI7SUFDQSxlVXNNaUIsdUJWdE1qQjtJQUNBLGNVcU1pQix1QlZyTWpCO0lBQ0EsV1VvTWlCLHVCVnBNakI7O0VVcU1ZO0lWek1aLG1CVXlNOEIsdUJWek05QjtJQUNBLGdCVXdNOEIsdUJWeE05QjtJQUNBLGVVdU04Qix1QlZ2TTlCO0lBQ0EsY1VzTThCLHVCVnRNOUI7SUFDQSxXVXFNOEIsdUJWck05Qjs7O0FBc0hIO0VVNkVHO0lWdk1BLG1CVXVNZ0IsZVZ2TWhCO0lBQ0EsZ0JVc01nQixlVnRNaEI7SUFDQSxlVXFNZ0IsZVZyTWhCO0lBQ0EsY1VvTWdCLGVWcE1oQjtJQUNBLFdVbU1nQixlVm5NaEI7O0VVb01BO0lWeE1BLG1CVXdNaUIsdUJWeE1qQjtJQUNBLGdCVXVNaUIsdUJWdk1qQjtJQUNBLGVVc01pQix1QlZ0TWpCO0lBQ0EsY1VxTWlCLHVCVnJNakI7SUFDQSxXVW9NaUIsdUJWcE1qQjs7RVVxTVk7SVZ6TVosbUJVeU04Qix1QlZ6TTlCO0lBQ0EsZ0JVd004Qix1QlZ4TTlCO0lBQ0EsZVV1TThCLHVCVnZNOUI7SUFDQSxjVXNNOEIsdUJWdE05QjtJQUNBLFdVcU04Qix1QlZyTTlCOzs7QUF1SEg7RVU0RUc7SVZ2TUEsbUJVdU1nQixlVnZNaEI7SUFDQSxnQlVzTWdCLGVWdE1oQjtJQUNBLGVVcU1nQixlVnJNaEI7SUFDQSxjVW9NZ0IsZVZwTWhCO0lBQ0EsV1VtTWdCLGVWbk1oQjs7RVVvTUE7SVZ4TUEsbUJVd01pQix1QlZ4TWpCO0lBQ0EsZ0JVdU1pQix1QlZ2TWpCO0lBQ0EsZVVzTWlCLHVCVnRNakI7SUFDQSxjVXFNaUIsdUJWck1qQjtJQUNBLFdVb01pQix1QlZwTWpCOztFVXFNWTtJVnpNWixtQlV5TThCLHVCVnpNOUI7SUFDQSxnQlV3TThCLHVCVnhNOUI7SUFDQSxlVXVNOEIsdUJWdk05QjtJQUNBLGNVc004Qix1QlZ0TTlCO0lBQ0EsV1VxTThCLHVCVnJNOUI7OztBVXpESixnQkFnTkksVUFrREk7RUFFSSxVQUFBO0VBQ0EsV0FBQTs7QVZ2Rlg7RVUwRkc7SVZuTkEsbUJVbU5nQixlVm5OaEI7SUFDQSxnQlVrTmdCLGVWbE5oQjtJQUNBLGVVaU5nQixlVmpOaEI7SUFDQSxjVWdOZ0IsZVZoTmhCO0lBQ0EsV1UrTWdCLGVWL01oQjs7RVVnTkE7SVZwTkEsbUJVb05pQix1QlZwTmpCO0lBQ0EsZ0JVbU5pQix1QlZuTmpCO0lBQ0EsZVVrTmlCLHVCVmxOakI7SUFDQSxjVWlOaUIsdUJWak5qQjtJQUNBLFdVZ05pQix1QlZoTmpCOztFVWlOWTtJVnJOWixtQlVxTjhCLHVCVnJOOUI7SUFDQSxnQlVvTjhCLHVCVnBOOUI7SUFDQSxlVW1OOEIsdUJWbk45QjtJQUNBLGNVa044Qix1QlZsTjlCO0lBQ0EsV1VpTjhCLHVCVmpOOUI7OztBQXNISDtFVXlGRztJVm5OQSxtQlVtTmdCLGVWbk5oQjtJQUNBLGdCVWtOZ0IsZVZsTmhCO0lBQ0EsZVVpTmdCLGVWak5oQjtJQUNBLGNVZ05nQixlVmhOaEI7SUFDQSxXVStNZ0IsZVYvTWhCOztFVWdOQTtJVnBOQSxtQlVvTmlCLHVCVnBOakI7SUFDQSxnQlVtTmlCLHVCVm5OakI7SUFDQSxlVWtOaUIsdUJWbE5qQjtJQUNBLGNVaU5pQix1QlZqTmpCO0lBQ0EsV1VnTmlCLHVCVmhOakI7O0VVaU5ZO0lWck5aLG1CVXFOOEIsdUJWck45QjtJQUNBLGdCVW9OOEIsdUJWcE45QjtJQUNBLGVVbU44Qix1QlZuTjlCO0lBQ0EsY1VrTjhCLHVCVmxOOUI7SUFDQSxXVWlOOEIsdUJWak45Qjs7O0FBdUhIO0VVd0ZHO0lWbk5BLG1CVW1OZ0IsZVZuTmhCO0lBQ0EsZ0JVa05nQixlVmxOaEI7SUFDQSxlVWlOZ0IsZVZqTmhCO0lBQ0EsY1VnTmdCLGVWaE5oQjtJQUNBLFdVK01nQixlVi9NaEI7O0VVZ05BO0lWcE5BLG1CVW9OaUIsdUJWcE5qQjtJQUNBLGdCVW1OaUIsdUJWbk5qQjtJQUNBLGVVa05pQix1QlZsTmpCO0lBQ0EsY1VpTmlCLHVCVmpOakI7SUFDQSxXVWdOaUIsdUJWaE5qQjs7RVVpTlk7SVZyTlosbUJVcU44Qix1QlZyTjlCO0lBQ0EsZ0JVb044Qix1QlZwTjlCO0lBQ0EsZVVtTjhCLHVCVm5OOUI7SUFDQSxjVWtOOEIsdUJWbE45QjtJQUNBLFdVaU44Qix1QlZqTjlCOzs7QVV6REosZ0JBZ05JLFVBOERJO0VBRUksVUFBQTtFQUNBLFdBQUE7O0FWbkdYO0VVc0dHO0lWL05BLG1CVStOZ0IsZVYvTmhCO0lBQ0EsZ0JVOE5nQixlVjlOaEI7SUFDQSxlVTZOZ0IsZVY3TmhCO0lBQ0EsY1U0TmdCLGVWNU5oQjtJQUNBLFdVMk5nQixlVjNOaEI7O0VVNE5BO0lWaE9BLG1CVWdPaUIsdUJWaE9qQjtJQUNBLGdCVStOaUIsdUJWL05qQjtJQUNBLGVVOE5pQix1QlY5TmpCO0lBQ0EsY1U2TmlCLHVCVjdOakI7SUFDQSxXVTROaUIsdUJWNU5qQjs7RVU2Tlk7SVZqT1osbUJVaU84Qix1QlZqTzlCO0lBQ0EsZ0JVZ084Qix1QlZoTzlCO0lBQ0EsZVUrTjhCLHVCVi9OOUI7SUFDQSxjVThOOEIsdUJWOU45QjtJQUNBLFdVNk44Qix1QlY3TjlCOzs7QUFzSEg7RVVxR0c7SVYvTkEsbUJVK05nQixlVi9OaEI7SUFDQSxnQlU4TmdCLGVWOU5oQjtJQUNBLGVVNk5nQixlVjdOaEI7SUFDQSxjVTROZ0IsZVY1TmhCO0lBQ0EsV1UyTmdCLGVWM05oQjs7RVU0TkE7SVZoT0EsbUJVZ09pQix1QlZoT2pCO0lBQ0EsZ0JVK05pQix1QlYvTmpCO0lBQ0EsZVU4TmlCLHVCVjlOakI7SUFDQSxjVTZOaUIsdUJWN05qQjtJQUNBLFdVNE5pQix1QlY1TmpCOztFVTZOWTtJVmpPWixtQlVpTzhCLHVCVmpPOUI7SUFDQSxnQlVnTzhCLHVCVmhPOUI7SUFDQSxlVStOOEIsdUJWL045QjtJQUNBLGNVOE44Qix1QlY5TjlCO0lBQ0EsV1U2TjhCLHVCVjdOOUI7OztBQXVISDtFVW9HRztJVi9OQSxtQlUrTmdCLGVWL05oQjtJQUNBLGdCVThOZ0IsZVY5TmhCO0lBQ0EsZVU2TmdCLGVWN05oQjtJQUNBLGNVNE5nQixlVjVOaEI7SUFDQSxXVTJOZ0IsZVYzTmhCOztFVTROQTtJVmhPQSxtQlVnT2lCLHVCVmhPakI7SUFDQSxnQlUrTmlCLHVCVi9OakI7SUFDQSxlVThOaUIsdUJWOU5qQjtJQUNBLGNVNk5pQix1QlY3TmpCO0lBQ0EsV1U0TmlCLHVCVjVOakI7O0VVNk5ZO0lWak9aLG1CVWlPOEIsdUJWak85QjtJQUNBLGdCVWdPOEIsdUJWaE85QjtJQUNBLGVVK044Qix1QlYvTjlCO0lBQ0EsY1U4TjhCLHVCVjlOOUI7SUFDQSxXVTZOOEIsdUJWN045Qjs7O0FVekRKLGdCQWdOSSxVQTBFSTtFQUNJLFVBQUE7RUFDQSxXQUFBOztBVjlHWDtFVWlIRztJVjFPQSxtQlUwT2dCLGVWMU9oQjtJQUNBLGdCVXlPZ0IsZVZ6T2hCO0lBQ0EsZVV3T2dCLGVWeE9oQjtJQUNBLGNVdU9nQixlVnZPaEI7SUFDQSxXVXNPZ0IsZVZ0T2hCOztFVXVPQTtJVjNPQSxtQlUyT2lCLHlCVjNPakI7SUFDQSxnQlUwT2lCLHlCVjFPakI7SUFDQSxlVXlPaUIseUJWek9qQjtJQUNBLGNVd09pQix5QlZ4T2pCO0lBQ0EsV1V1T2lCLHlCVnZPakI7O0VVd09ZO0lWNU9aLG1CVTRPOEIseUJWNU85QjtJQUNBLGdCVTJPOEIseUJWM085QjtJQUNBLGVVME84Qix5QlYxTzlCO0lBQ0EsY1V5TzhCLHlCVnpPOUI7SUFDQSxXVXdPOEIseUJWeE85Qjs7O0FBc0hIO0VVZ0hHO0lWMU9BLG1CVTBPZ0IsZVYxT2hCO0lBQ0EsZ0JVeU9nQixlVnpPaEI7SUFDQSxlVXdPZ0IsZVZ4T2hCO0lBQ0EsY1V1T2dCLGVWdk9oQjtJQUNBLFdVc09nQixlVnRPaEI7O0VVdU9BO0lWM09BLG1CVTJPaUIseUJWM09qQjtJQUNBLGdCVTBPaUIseUJWMU9qQjtJQUNBLGVVeU9pQix5QlZ6T2pCO0lBQ0EsY1V3T2lCLHlCVnhPakI7SUFDQSxXVXVPaUIseUJWdk9qQjs7RVV3T1k7SVY1T1osbUJVNE84Qix5QlY1TzlCO0lBQ0EsZ0JVMk84Qix5QlYzTzlCO0lBQ0EsZVUwTzhCLHlCVjFPOUI7SUFDQSxjVXlPOEIseUJWek85QjtJQUNBLFdVd084Qix5QlZ4TzlCOzs7QUF1SEg7RVUrR0c7SVYxT0EsbUJVME9nQixlVjFPaEI7SUFDQSxnQlV5T2dCLGVWek9oQjtJQUNBLGVVd09nQixlVnhPaEI7SUFDQSxjVXVPZ0IsZVZ2T2hCO0lBQ0EsV1VzT2dCLGVWdE9oQjs7RVV1T0E7SVYzT0EsbUJVMk9pQix5QlYzT2pCO0lBQ0EsZ0JVME9pQix5QlYxT2pCO0lBQ0EsZVV5T2lCLHlCVnpPakI7SUFDQSxjVXdPaUIseUJWeE9qQjtJQUNBLFdVdU9pQix5QlZ2T2pCOztFVXdPWTtJVjVPWixtQlU0TzhCLHlCVjVPOUI7SUFDQSxnQlUyTzhCLHlCVjNPOUI7SUFDQSxlVTBPOEIseUJWMU85QjtJQUNBLGNVeU84Qix5QlZ6TzlCO0lBQ0EsV1V3TzhCLHlCVnhPOUI7OztBVXpESixnQkFnTkksVUFxRkk7RUFDSSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RVZuUFIsbUJVb1BtQixRVnBQbkI7RUFDQSxnQlVtUG1CLFFWblBuQjtFQUNBLGVVa1BtQixRVmxQbkI7RUFDQSxjVWlQbUIsUVZqUG5CO0VBQ0EsV1VnUG1CLFFWaFBuQjtFVWlQUSx5QkFBQTs7QUFLWjtFQUNJLFlBQUE7RUFDQSxrQkFBQTs7QUFGSixVQVFJO0VBQ0ksUUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSwyQkFBQTtFQUNBLG1DQUFBOztBVmpKUDtFVW9KRTtJQUFLLFFBQUE7O0VBQ0k7SUFBTyxZQUFBOzs7QVZwSmxCO0VVbUpFO0lBQUssUUFBQTs7RUFDSTtJQUFPLFlBQUE7OztBVm5KbEI7RVVrSkU7SUFBSyxRQUFBOztFQUNJO0lBQU8sWUFBQTs7O0FBR1gsVUFmSixPQWVLO0VBQ0csY0FBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSxtQ0FBQTs7QUFqQ1osVUFzQ0ksYUFFSTtFQUNJLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RVZyU1IsbUJVc1NtQixRVnRTbkI7RUFDQSxnQlVxU21CLFFWclNuQjtFQUNBLGVVb1NtQixRVnBTbkI7RUFDQSxjVW1TbUIsUVZuU25CO0VBQ0EsV1VrU21CLFFWbFNuQjtFVW1TUSx5QkFBQTs7QVY5S1g7RVVpTGU7SVYxU1osbUJVMFMyQixRVjFTM0I7SUFDQSxnQlV5UzJCLFFWelMzQjtJQUNBLGVVd1MyQixRVnhTM0I7SUFDQSxjVXVTMkIsUVZ2UzNCO0lBQ0EsV1VzUzJCLFFWdFMzQjs7RVV1U1k7SVYzU1osbUJVMlM2QixRVjNTN0I7SUFDQSxnQlUwUzZCLFFWMVM3QjtJQUNBLGVVeVM2QixRVnpTN0I7SUFDQSxjVXdTNkIsUVZ4UzdCO0lBQ0EsV1V1UzZCLFFWdlM3Qjs7O0FBc0hIO0VVZ0xlO0lWMVNaLG1CVTBTMkIsUVYxUzNCO0lBQ0EsZ0JVeVMyQixRVnpTM0I7SUFDQSxlVXdTMkIsUVZ4UzNCO0lBQ0EsY1V1UzJCLFFWdlMzQjtJQUNBLFdVc1MyQixRVnRTM0I7O0VVdVNZO0lWM1NaLG1CVTJTNkIsUVYzUzdCO0lBQ0EsZ0JVMFM2QixRVjFTN0I7SUFDQSxlVXlTNkIsUVZ6UzdCO0lBQ0EsY1V3UzZCLFFWeFM3QjtJQUNBLFdVdVM2QixRVnZTN0I7OztBQXVISDtFVStLZTtJVjFTWixtQlUwUzJCLFFWMVMzQjtJQUNBLGdCVXlTMkIsUVZ6UzNCO0lBQ0EsZVV3UzJCLFFWeFMzQjtJQUNBLGNVdVMyQixRVnZTM0I7SUFDQSxXVXNTMkIsUVZ0UzNCOztFVXVTWTtJVjNTWixtQlUyUzZCLFFWM1M3QjtJQUNBLGdCVTBTNkIsUVYxUzdCO0lBQ0EsZVV5UzZCLFFWelM3QjtJQUNBLGNV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QTtFQUNBLHlCQUFBO0VBQ0EsMEJBQUE7O0FBS0ksZUFqQloseUJBZUksZ0JBQ0ksR0FDSztBQUFELGVBakJjLHlCQUF3QixpQkFlOUMsZ0JBQ0ksR0FDSztFQUNHLHlCQUFBO0VBQ0EsY0FBQTs7QUFPUixlQUZSLHdCQUF3QixnQkFDcEIsR0FDSztFQUNHLHlCQUFBOztBQUNBLGVBSlosd0JBQXdCLGdCQUNwQixHQUNLLGdCQUVJLElBQUk7RUFDRCxjQUFBOztBQUVBLGVBUGhCLHdCQUF3QixnQkFDcEIsR0FDSyxnQkFFSSxJQUFJLGtCQUdBO0VBQ0cseUJBQUE7O0FBSVIsZUFaWix3QkFBd0IsZ0JBQ3BCLEdBQ0ssZ0JBVUk7RUFDRyx5QkFBQTs7QUFHUixlQWhCUix3QkFBd0IsZ0JBQ3BCLEdBZUs7RUFDRyxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7O0FBR0osZUEzQlIsd0JBQXdCLGdCQUNwQixHQTBCSztFQUNHLGtCQUFBOztBQUdKLGVBL0JSLHdCQUF3QixnQkFDcEIsR0E4Qks7QUFBZ0IsZUEvQnpCLHdCQUF3QixnQkFDcEIsR0E4QnNCO0VBQ2QsaUJBQUE7O0FBSUEsZUFwQ1osd0JBQXdCLGdCQUNwQixHQWtDSyxhQUNJO0FBQWdCLGVBcEM3Qix3QkFBd0IsZ0JBQ3BCLEdBa0NLLGFBQ3FCO0VBQ2QsbUJBQUE7O0FBOURwQixlQW9FSSx1QkFDSTtFQUNJLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBOztBQXhFWixlQW9FSSx1QkFPSTtFQUNJLFVBQUE7O0FBNUVaLGVBb0VJLHVCQVdJO0VBQ0ksaUJBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTs7QUFsRlosZUFzRkk7RUFDSSxrQkFBQSIsImZpbGUiOiIvc3RvcmFnZS9ob21lL2FtcG0vZGVwbG95L3JlbGVhc2VzLzIwMjYwMzIzMTIyMDA0L3NpdGVzL2FtcG0vY3NzL210Y19zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCB1cmwoXCJodHRwczovL2Zhc3QuZm9udHMubmV0L2x0LzEuY3NzP2FwaVR5cGU9Y3NzJmM9YzFmMDQ3N2UtZWY0Yy00M2ZjLTg0NTgtZGYxZmM5NjQ4YmMzJmZvbnRpZHM9NjkzMjM4XCIpO1xuICAgIEBmb250LWZhY2V7XG4gICAgICAgIGZvbnQtZmFtaWx5OlwiVHJhZGVHb3RoaWNOZXh0VzAxLUNvbmRcIjtcbiAgICAgICAgc3JjOnVybChcIi4uL2ZvbnQvNWJlNGE4MTUtNWEyMi00YThiLThhMzgtMTA0NjdiZTM5ZDJlLmVvdD8jaWVmaXhcIik7XG4gICAgICAgIHNyYzp1cmwoXCIuLi9mb250LzViZTRhODE1LTVhMjItNGE4Yi04YTM4LTEwNDY3YmUzOWQyZS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSx1cmwoXCIuLi9mb250L2E4ODE2MzQwLTAyOTQtNDI0My04NTE5LWIyY2NmMDhjYTE3NC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCIuLi9mb250L2ViMjBiZjNlLTdhNWMtNGM5OC04YmM1LWYzOGMxYjNkZDlmMi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udC9iYmQ5ZWQ0Yi0yMWQ2LTRhMzUtYTNlYi0xNzZjMzEyNThlMDMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICAgIH1cblxuQGhlYWRlckZvbnQgOiB+XCInVHJhZGVHb3RoaWNOZXh0VzAxLUNvbmQnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCI7XG5AYm9sZCA6IH5cIidUcmFkZUdvdGhpY05leHRXMDEtQ29uZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIjtcbkBzZW1pQm9sZCA6IH5cIidUcmFkZUdvdGhpY05leHRXMDEtQ29uZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIjtcbkBsaWdodCA6IH5cIidUcmFkZUdvdGhpY05leHRXMDEtQ29uZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIjtcbkBwcmltYXJ5Rm9udCA6IH5cIidUcmFkZUdvdGhpY05leHRXMDEtQ29uZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIjtcbkBib2R5Rm9udCA6IH5cIidUcmFkZUdvdGhpY05leHRXMDEtQ29uZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIjtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVmFyaWFibGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHdyYXBwZXJXaWR0aDogMTE4MHB4O1xuQG1vYmlsZVdpZHRoOiA2NDBweDtcbkBiYXNlRm9udFNpemU6IDEzO1xuQG10Y0JsdWU6ICMwZjU1YzQ7XG5cbkBkYXJrQmFja2dyb3VuZDogIzBmNTVjNDtcbkBwcmltYXJ5Q29sb3I6ICMzMzM7XG5AbGluZUNvbG9yOiAjNDE1MTQxO1xuXG5Ac3RhdGljRmx5b3V0Qmc6ICNmMWYxZjE7XG5AYWN0aXZlRmx5b3V0Qmc6ICNmMWYxZjE7XG5cbi5sZXNzVmFycyB7XG4gICAgZm9udC1mYW1pbHk6ICd0YWJsZXQ6IDEwMDBweCwgbW9iaWxlOiBAe21vYmlsZVdpZHRofSc7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQHByaW1hcnlHcmVlbjogIzAzODc3OTtcbkBjdGFHcmVlbjogIzAzODc3OTtcbkBjdGFPcmFuZ2U6ICNlM2E0MmE7XG5AY3RhUmVkOiAjYjk0YTQ4O1xuXG4vKlxuXG4gICAgTW9ub2Nocm9tYXRpYywgbWFuXG5cbiAgICBAcHJpbWFyeUdyZWVuXG4gICAgI0NERkZDRFxuICAgICM4MUZGODFcbiAgICAjNjc3RjY3XG4gICAgQGN0YUdyZWVuXG5cbiovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTWVkaWEgUXVlcnkgQnJlYWtwb2ludHMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVza3RvcDogflwiYWxsIGFuZCAobWluLXdpZHRoOiAxMDYxcHgpXCI7XG5Aamlnc2F3OiB+XCJhbGwgYW5kIChtYXgtd2lkdGg6IDE0MjVweClcIjtcbkBmdWxsRG93bjogflwiYWxsIGFuZCAobWF4LXdpZHRoOiAxMTgwcHgpXCI7XG5AZnVsbFRvVGFibGV0OiB+XCJhbGwgYW5kIChtaW4td2lkdGg6IDEwMDFweCkgYW5kIChtYXgtd2lkdGg6IDExNzlweClcIjtcbkB0YWJsZXQ6IH5cImFsbCBhbmQgKG1pbi13aWR0aDogNjQxcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpXCI7XG5AdGFibGV0RG93bjogflwiYWxsIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpXCI7XG5AbW9iaWxlOiB+XCJhbGwgYW5kIChtYXgtd2lkdGg6IEB7bW9iaWxlV2lkdGh9KVwiO1xuQHNtYWxsTW9iaWxlOiB+XCJhbGwgYW5kIChtYXgtd2lkdGg6IDQyMHB4KVwiO1xuXG4vKipcbiAqIEBpbXBvcnQgb2YgZHluYW1pYyB2YXJpYWJsZXNcbiAqL1xuXG5AaW1wb3J0ICdkeW5hbWljLmxlc3MnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNpdGUgU3R5bGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLndyYXBwZXIoKSB7XG4gICAgbWF4LXdpZHRoOiAxNDgwcHg7XG4gICAgLy9taW4td2lkdGg6IEB3cmFwcGVyV2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCA0MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICAuY2xlYXJmaXgoKTtcblxuICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgIH1cbn1cblxuLndyYXBwZXIge1xuICAgIC53cmFwcGVyKCk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQm9keSBUYWcgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5odG1sIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKyAwcHg7XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAtIDJweDtcbiAgICB9XG59XG5cbmJvZHkge1xuICAgIC5yZW1zKDE1KTtcbiAgICBsaW5lLWhlaWdodDogMS42NjI7XG4gICAgZm9udC1mYW1pbHk6IEBib2R5Rm9udDtcbiAgICBtaW4td2lkdGg6IDMyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBjb2xvcjogIzMzMztcbn1cblxuI2NvbnRlbnQge1xuXG4gICAgQG1lZGlhIEBkZXNrdG9wIHtcbiAgICAgICAgbWluLWhlaWdodDogNjUwcHg7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5hIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IEBwcmltYXJ5R3JlZW47XG4gICAgLnRyYW5zaXRpb24oY29sb3IgZWFzZS1pbi1vdXQgMzAwbXMpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgfVxufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICBjb2xvcjogQHByaW1hcnlDb2xvcjtcbiAgICBmb250LWZhbWlseTogQGxpZ2h0O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbn1cblxuXG5oMSB7XG4gICAgY29sb3I6IEBwcmltYXJ5R3JlZW47XG4gICAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBmb250LWZhbWlseTogQGxpZ2h0O1xuICAgIC5yZW1zKDMyKTtcbn1cblxuaDIge1xuICAgIC5yZW1zKDI1KTtcbn1cblxuaDMge1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGZvbnQtZmFtaWx5OiBAbGlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgLnJlbXMoMjApO1xuXG4gICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMTlweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgfVxufVxuXG5oNCwgaDUsIGg2IHtcbiAgICAucmVtcygxNCk7XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTaXRlIExvZ28gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDEwcHggMDtcblxuICAgICYucmVwbGFjZWQtc3ZnIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICB9XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG5cbiAgICBtYXJnaW46IDEwcHggMDtcblxuICAgICAgICAmLnJlcGxhY2VkLXN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDE2NXB4O1xuICAgICAgICAgIGhlaWdodDogNDVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBNYWluIE1lbnUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uaGlkZGVuIHtcbiAgICBkaXNwbGF5Om5vbmU7XG59XG5cbi5mbHlvdXRXcmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcblxuICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuIC5tYWluTWVudSB7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIC5yZW1zKDE0KTtcbiAgICBtYXJnaW46IDM1cHggMTBweCAwIDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgQHByaW1hcnlHcmVlbjtcblxuICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG5cdFx0Y29sb3I6ICMwMDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgIC50cmFuc2l0aW9uKGNvbG9yIGVhc2UtaW4gMjAwbXMpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgLnJlbXMoMTgpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IEBjdGFHcmVlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICA+IHVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubW9iaWxlU2hvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgICAgICBjb2xvcjogIzAzODc3OTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAgbGkjcHJpbWFyeV9tZW51XzE5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgfVxuXG4gICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMCAwIDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICBcdHRvcDogMDtcbiAgICAgICAgXHRsZWZ0OiA1MCU7XG4gICAgICAgIFx0Ym9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgXHRjb250ZW50OiBcIiBcIjtcbiAgICAgICAgXHRoZWlnaHQ6IDA7XG4gICAgICAgIFx0d2lkdGg6IDA7XG4gICAgICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBcdGJvcmRlci1jb2xvcjogcmdiYSgyMzEsIDI0MiwgMjMxLCAwKTtcbiAgICAgICAgXHRib3JkZXItYm90dG9tLWNvbG9yOiAjRTdGMkU3O1xuICAgICAgICBcdGJvcmRlci13aWR0aDogMTBweDtcbiAgICAgICAgXHRtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRTdGMkU3O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjA1KTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAuY2xlYXJmaXgoKTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMTNweCAwIDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgJi5tb2JpbGVTaG93IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5tb2JpbGVIaWRlIHtcbiAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgID4gdWwge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5oYXNDaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgPiBhOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjBkYVwiO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZS1pbi1vdXQgMHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5oYXNDaGlsZHJlbi5vcGVuID4gYTphZnRlciB7XG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShyb3RhdGUoOTBkZWcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgIC8qIDJuZCBMZXZlbCAqL1xuICAgICAgICBsaSBsaSBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAvKiAzcmQgTGV2ZWwgKi9cbiAgICAgICAgbGkgbGkgbGkgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLyogNHRoIExldmVsICovXG4gICAgICAgIGxpIGxpIGxpIGxpIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBIZWFkZXIgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4jaGVhZGVyIHtcbiAgICB6LWluZGV4OiA1MDAwO1xuICAgIC5jbGVhcmZpeCgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUU7XG4gICAgaGVpZ2h0OiA3NnB4ICFpbXBvcnRhbnQ7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAdGFibGV0KSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cblxuICAgIC53cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5oZWFkZXJEZXRhaWxzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDU1cHg7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLmNyZWRpdHMsIC5hZGRyZXNzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBib2R5Rm9udDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAyMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNEREQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5hZGRyZXNzIHtcbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubG9naW4ge1xuXHQgICAgZGlzcGxheTogYmxvY2s7XG5cdCAgICBmbG9hdDogcmlnaHQ7XG5cdCAgICBjb2xvcjogQHByaW1hcnlHcmVlbjtcblx0ICAgIHBhZGRpbmc6IDEwcHg7XG5cdCAgICBtYXJnaW46IDI1cHggMCAwIDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0LnJlbXMoMTgpO1xuICAgICAgICAudHJhbnNpdGlvbihjb2xvciBlYXNlLWluIDIwMG1zKTtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHggMCAxNXB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIEBwcmltYXJ5R3JlZW47XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5R3JlZW47XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcblxuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBob25lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICBcdCAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgIFx0ICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IEBwcmltYXJ5R3JlZW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbkFsdCB7XG4gICAgICAgIC5yZW1zKDE2KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IDI2cHggMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRm9ybXMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucm93IHtcblxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuXHQudGV4dCB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjREREO1xuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHQudHJhbnNpdGlvbihib3JkZXIgZWFzZS1vdXQgMzAwbXMpO1xuXG5cdFx0Ji5sYXJnZSB7XG5cdFx0XHRwYWRkaW5nOiAxNXB4O1xuXHRcdH1cblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBAY3RhR3JlZW47XG5cdFx0fVxuXHR9XG5cblx0bGFiZWwge1xuXHRcdGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG5cdFx0LnJlbXMoMTQpO1xuXHRcdGNvbG9yOiAjNzc3O1xuXHRcdHBhZGRpbmc6IDExcHggMDtcblxuXHRcdGVtIHtcblx0XHRcdGNvbG9yOiBAY3RhR3JlZW47XG5cdFx0fVxuXHR9XG5cblx0Ji5oYWxmIHtcblx0XHR3aWR0aDogNDglO1xuXHRcdG1hcmdpbi1yaWdodDogNCU7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Y2xlYXI6IGxlZnQ7XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHdpZHRoOiAxMDAlO1xuICAgIFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXG5cdFx0Ji5sYXN0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdGNsZWFyOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uY2hlY2tib3hSb3csIC5jdXN0b21SYWRpbywgLnN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMXB4IDAgMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkIGxhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBkYXJrQmFja2dyb3VuZDtcbiAgICB9XG5cblxuICAgICYuc21hbGwge1xuXG4gICAgICAgIGxhYmVsIHtcblxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKlxuLmVycm9yTGlzdCB7XG5cbiAgICBoMyB7XG4gICAgICAgIGNvbG9yOiAjQjk0QTQ4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxufVxuKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTZWFyY2ggKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubW9iaWxlU2VhcmNoV3JhcCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uc2VhcmNoRm9ybSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgLnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogM3B4O1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRm9vdGVyICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZvb3RlcldyYXAge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIC5jbGVhcmZpeCgpO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIC5yZW1zKDE0KTtcbiAgICBmb250LWZhbWlseTogQHByaW1hcnlGb250O1xuXHRwYWRkaW5nOiAyMHB4IDQwcHg7XG5cdGJhY2tncm91bmQ6IEBwcmltYXJ5R3JlZW47XG5cblx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0cGFkZGluZzogMTBweCAyMHB4O1xuXHR9XG5cbiAgICAubG9nbyB7XG5cdCAgICB3aWR0aDogYXV0bztcblx0ICAgIG1hcmdpbjogMCAwIDI4cHggMDtcblxuXHQgICAgLnN0MCB7XG4gICAgXHQgICAgZmlsbDogI2ZmZjtcblx0ICAgIH1cblxuXHQgICAgLnN0MSB7XG4gICAgXHQgICAgZmlsbDogQHByaW1hcnlHcmVlbjtcblx0ICAgIH1cbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcblxuICAgICAgICBpIHtcblx0ICAgICAgICB3aWR0aDogMTJweDtcblx0ICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjRkZGO1xuICAgIH1cblxuICAgIC5jb250YWN0RGV0YWlscyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNDUlO1xuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRldGFpbHMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgcGFkZGluZzogMjBweCAwIDAgMDtcblxuICAgICAgICBwIHtcblx0ICAgICAgICBjbGVhcjogYm90aDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwsIHVsIGxpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpdGVtYXAge1xuXHQgICAgZmxvYXQ6IHJpZ2h0O1xuXHQgICAgd2lkdGg6IDQ1JTtcbiAgICAgICAgcGFkZGluZzogMjBweCAwO1xuXHQgICAgLmNsZWFyZml4KCk7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuXG5cdCAgICAuY29sdW1uIHtcblx0XHQgICAgZmxvYXQ6IGxlZnQ7XG5cdFx0ICAgIHdpZHRoOiAzMiU7XG5cdFx0ICAgIG1hcmdpbi1yaWdodDogMiU7XG5cdFx0ICAgIGNsZWFyOiBub25lO1xuXG5cdFx0ICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICBcdFx0ICAgIHdpZHRoOiA0OSU7XG5cbiAgICBcdFx0ICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIFx0XHQgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIFx0XHQgICAgfVxuXHRcdCAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAmLm1vYmlsZUhpZGUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZGFzaEJhY2tncm91bmQgJiB7XG5cbiAgICAgICAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGg0IHtcblx0XHQgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblx0XHQgICAgLnJlbXMoMTYpO1xuXHRcdCAgICBjb2xvcjogI0ZGRjtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwNjcnO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICAgICAgICAgICAgLnJlbXMoMTMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjA2OCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIC5hY3Rpb24ge1xuXHRcdCAgICBmbG9hdDogbGVmdDtcblx0XHQgICAgd2lkdGg6IDMyJTtcblx0XHQgICAgbWFyZ2luOiAyNXB4IDA7XG5cblxuXHRcdCAgICBhIHtcblx0XHRcdCAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXHRcdFx0ICAgIGNsZWFyOiBsZWZ0O1xuXHRcdFx0ICAgIG1heC13aWR0aDogMjMwcHg7XG5cdFx0ICAgIH1cblxuXHRcdCAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFx0XHQgICAgd2lkdGg6IDEwMCU7XG5cdFx0XHQgICAgbWF4LXdpZHRoOiAyMzBweDtcblx0XHQgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDAgMCAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIC5idXR0b25BbHQge1xuXHRcdCAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdCAgICBjb2xvcjogI0ZGRjtcblx0XHQgICAgZGlzcGxheTogYmxvY2s7XG5cdFx0ICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLnJlbXMoMTYpO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4O1xuXHQgICAgfVxuXG5cdCAgICBzcGFuIHtcblx0XHQgICAgZGlzcGxheTogYmxvY2s7XG5cdFx0ICAgIHBhZGRpbmc6IDVweCAwIDAgMDtcblx0XHQgICAgd2lkdGg6IDEwMCU7XG5cdFx0ICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblx0ICAgIH1cbiAgICB9XG5cbiAgICAubGVnYWwge1xuXHQgICAgY2xlYXI6IGJvdGg7XG5cdCAgICAuY2xlYXJmaXgoKTtcblx0ICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG5cdCAgICBwYWRkaW5nOiAxNXB4IDA7XG5cblx0ICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICBwYWRkaW5nLWJvdHRvbTogMDtcblx0ICAgIH1cbiAgICB9XG5cbiAgICAjdGVybXNfcG9saWN5IHtcblx0ICAgIGZsb2F0OiByaWdodDtcblx0ICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXHQgICAgd2lkdGg6IDQ4JTtcblxuXHQgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgIFx0ICAgIHdpZHRoOiA2MCU7XG5cdCAgICB9XG4gICAgfVxuXG4gICAgI2NyZWRpdHMge1xuXHQgICAgZmxvYXQ6IHJpZ2h0O1xuXHQgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cdCAgICB3aWR0aDogNDglO1xuXG5cdCAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgXHQgICAgd2lkdGg6IDYwJTtcblx0ICAgIH1cblxuICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2NvcHlyaWdodCB7XG5cdCAgICBmbG9hdDogbGVmdDtcblx0ICAgIHdpZHRoOiA0OCU7XG5cblx0ICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICBcdCAgICB3aWR0aDogNDAlO1xuXHQgICAgfVxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9vdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgLndyYXBwZXIoKTtcbiAgICBwYWRkaW5nOiAwIDQwcHg7XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogU2xpZGUgV3JhcHBlciAoYm90aCBzbGlkZXNob3dzKSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zbGlkZVdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgLndyYXBwZXIoKTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExhcmdlIFNsaWRlciAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5sYXJnZVNsaWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmNvbnRyb2xzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5wcmV2LCAubmV4dCB7XG4gICAgICAgICAgICAuZW1zKDI2KTtcbiAgICAgICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTbWFsbCBTbGlkZXIgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc21hbGxTbGlkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5pbWFnZVdyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogR29vZ2xlIE1hcCAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDM2MHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIENTUzMgU29jaWFsIGljb25zKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc29jaWFsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAuY2xlYXJmaXgoKTtcblxuICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIC5lbXMoMTgpO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQnJlYWRjcnVtYiBTdHlsaW5nICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJyZWFkY3J1bWJXcmFwIHtcbiAgICAuY2xlYXJmaXgoKTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuXG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggMTBweDtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUGFnaW5hdGlvbiAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5wYWdpbmF0aW9uLCAucGFnaW5hdGlvblVsIHtcbiAgICAuY2xlYXJmaXgoKTtcblxuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucGFnaW51bWJlcm9yZGVyIGZvcm0ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcblxuICAgICYuYm90dG9tIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNpdGUgTWFwIFN0eWxpbmcgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2l0ZU1hcFdyYXAge1xuICAgIC53cmFwcGVyKCk7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgcGFkZGluZzogNTBweCA0MHB4O1xuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuXG4gICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgLnNpdGVNYXBDb2x1bW4ge1xuICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBDb250YWN0IFBhZ2UgU3R5bGluZyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jb250YWN0V3JhcCB7XG4gICAgLndyYXBwZXIoKTtcbiAgICAuY2xlYXJmaXgoKTtcbiAgICBwYWRkaW5nOiAxMDBweCA0MHB4O1xuXG4gICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICBwYWRkaW5nOiA0MHB4O1xuICAgIH1cbn1cblxuLmNvbnRhY3REZXRhaWxzIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHdpZHRoOiA0NSU7XG5cbiAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgfVxuXG5cdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdHdpZHRoOiAxMDAlO1xuICAgIFx0cGFkZGluZzogMjBweCAwO1xuICAgIFx0ZmxvYXQ6IG5vbmU7XG4gICAgXHQuY2xlYXJmaXgoKTtcblx0fVxuXG5cdGxpIHtcblx0XHQucmVtcygyMCk7XG5cdFx0cGFkZGluZzogNXB4IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiA2MHB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHQucmVtcygxNyk7XG5cdFx0fVxuXG5cdFx0aSB7XG5cdFx0XHR3aWR0aDogMzVweDtcblx0XHRcdGNvbG9yOiAjNjY2O1xuXG5cdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogIzY2NjtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBAY3RhR3JlZW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jb250YWN0Rm9ybVdyYXAge1xuXHR3aWR0aDogNDUlO1xuXHRmbG9hdDogcmlnaHQ7XG5cdHBhZGRpbmc6IDIwcHg7XG5cdGJhY2tncm91bmQ6ICNFRUU7XG5cbiAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgIHdpZHRoOiA1NSU7XG4gICAgfVxuXG5cdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdHdpZHRoOiAxMDAlO1xuICAgIFx0ZmxvYXQ6IG5vbmU7XG4gICAgXHQuY2xlYXJmaXgoKTtcbiAgICBcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICBcdC5idXR0b25BbHQge1xuICAgIFx0XHR3aWR0aDogMTAwJTtcbiAgICBcdFx0bWFyZ2luLXRvcDogMjBweDtcbiAgICBcdFx0ZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOjEwcHggMjBweDtcbiAgICBcdH1cblx0fVxufVxuXG4uY29udGFjdEZvcm0ge1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQnV0dG9uIFN0eWxpbmcgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnV0dG9uIHtcbiAgICAuYnV0dG9uKCk7XG4gICAgcGFkZGluZzogMTBweCAyNXB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIEBjdGFHcmVlbjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY29sb3I6IEBjdGFHcmVlbjtcbiAgICAudHJhbnNpdGlvbihhbGwgZWFzZS1pbi1vdXQgMzAwbXMpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgfVxuXG4gICAgJi5sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzVweDtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgICYuYm9sZCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgfVxuXG5cblx0Ji5sYXJnZSB7XG5cdFx0LnJlbXMoMjUpO1xuXHRcdHBhZGRpbmc6IDE1cHggMzBweDtcblx0XHR3aWR0aDogMzAwcHg7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0aSB7XG4gICAgXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdH1cblxuXHQmLnNtYWxsIHtcbiAgICBcdHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIFx0Ym9yZGVyOiAwO1xuXHR9XG59XG5cbi5idXR0b25BbHQge1xuICAgIC5idXR0b24oKTtcbiAgICBiYWNrZ3JvdW5kOiAjMDJCMEFFO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDJCMEFFO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigjMDJCMEFFLCAyMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigjMDJCMEFFLCAyMCUpO1xuICAgIH1cblxuICAgIEBtZWRpYSBAamlnc2F3IHtcbiAgICAgICAgLnJlbXMoMTYpO1xuICAgIH1cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBIb21lIHBhZ2UgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZnJhbWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGltZyB7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuXHQgICAgICAgIHdpZHRoOiA0MDBweDtcblx0ICAgICAgICBoZWlnaHQ6IDMxM3B4O1xuXHQgICAgfVxuICAgIH1cblxuICAgIC5zY3JlZW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHRvcDogOTRweDtcblxuICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG5cdCAgICAgICAgd2lkdGg6IDMyNHB4O1xuXHQgICAgICAgIGhlaWdodDogMTgycHg7XG5cdCAgICAgICAgdG9wOiAzM3B4O1xuXHQgICAgfVxuICAgIH1cblxuICAgIC5tYXBzIHtcbiAgICAgICAgd2lkdGg6IDk3MnB4O1xuICAgICAgICBoZWlnaHQ6IDUyM3B4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDUyM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuXHQgICAgICAgIHdpZHRoOiAzMjRweDtcblx0ICAgICAgICBoZWlnaHQ6IDE4MnB4O1xuXHQgICAgICAgIHRvcDogMDtcblxuXHQgICAgICAgIGltZyB7XG4gICAgXHQgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIFx0ICAgICAgICBoZWlnaHQ6IGF1dG87XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG4gICAgICAgIC5zY3JlZW4ge1xuICAgICAgICAgICAgd2lkdGg6IDk3MnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA1MjNweDtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgIFx0ICAgICAgICB3aWR0aDogNjQ3cHg7XG4gICAgXHQgICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgXHQgICAgICAgIHRvcDogNjJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sZWZ0ICYge1xuXG4gICAgICAgIC5zY3JlZW4ge1xuICAgICAgICAgICAgcmlnaHQ6IDExNXB4O1xuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDM4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmlnaHQgJiB7XG5cbiAgICAgICAgLnNjcmVlbiB7XG4gICAgICAgICAgICBsZWZ0OiAxMTVweDtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDM4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5waG9uZSB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLnNjcmVlbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgd2lkdGg6IDE2NnB4O1xuICAgICAgICAgICAgdG9wOiA5OHB4O1xuICAgICAgICAgICAgcmlnaHQ6IDQ0cHg7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICAgICAgd2lkdGg6IDQ3cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4NHB4O1xuICAgICAgICAgICAgICAgIHRvcDogMjdweDtcbiAgICAgICAgICAgICAgICByaWdodDogMTJweDtcbiAgICBcdCAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGVmdCAmIHtcbiAgICAgICAgcmlnaHQ6IC0yMHB4O1xuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNjcmVlbiB7XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yaWdodCAmIHtcbiAgICAgICAgbGVmdDogLTIwcHg7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zY3JlZW4ge1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGFibGV0IHtcbiAgICB3aWR0aDogNTIwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTIwcHg7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICBAbWVkaWEgQGZ1bGxEb3duIHtcbiAgICAgICAgd2lkdGg6IDQzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLnNjcmVlbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgd2lkdGg6IDM5M3B4O1xuICAgICAgICAgICAgdG9wOiAyMXB4O1xuICAgICAgICAgICAgcmlnaHQ6IDYycHg7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAZnVsbERvd24ge1xuICAgICAgICAgICAgICAgIHRvcDogMThweDtcbiAgICAgICAgICAgICAgICByaWdodDogNTRweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzIzcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICAgICAgd2lkdGg6IDE1MXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTEzcHg7XG4gICAgXHQgICAgICAgIHRvcDogOHB4O1xuICAgIFx0ICAgICAgICByaWdodDogMjVweDtcbiAgICBcdCAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGVmdCAmIHtcbiAgICAgICAgcmlnaHQ6IC02NXB4O1xuXG4gICAgICAgIEBtZWRpYSBAZnVsbERvd24ge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICByaWdodDogLTIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmlnaHQgJiB7XG4gICAgICAgIGxlZnQ6IC02NXB4O1xuXG4gICAgICAgIEBtZWRpYSBAZnVsbERvd24ge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VjdGlvbiB7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFRUU7XG5cbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuXG4gICAgICAgIHdpZHRoOiA0NyU7XG4gICAgICAgIC5yZW1zKDE4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgY29sb3I6ICM4ODg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBAcHJpbWFyeUZvbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgICAgICB3aWR0aDogNDYlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY2VudGVyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRUVFO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMyB7XG5cdCAgICAgICAgICAgICY6YWZ0ZXIge1xuXHRcdCAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvO1xuXHQgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b24ge1xuXHQgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblx0ICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmZ1bGxXaWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLmJ1dHRvbkFsdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTUlO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODUwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ob3RzcG90TWFwIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA3MDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTcwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDU5MHB4KSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDU1MHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMjUwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA4NTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDU5MHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDUzMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAucmVnaW9uLmZvY3VzIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODUwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDU5MHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0NDBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC40KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoMW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICMwMEIyQUU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYXRoOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogIzAzYjM5ZjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6bnRoLWNoaWxkKDNuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjMDA5MDhkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoNG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICMxODhmODI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYXRoOm50aC1jaGlsZCg1bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogIzUxOWM5NDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6bnRoLWNoaWxkKDZuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjMDBkMmNkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoN24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICMxNmJjYjk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYXRoOm50aC1jaGlsZCg4bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogIzM2Nzc3MDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6bnRoLWNoaWxkKDluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjMzg5NjhiO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoMTBuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjN2VlMWRmO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoMTFuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjMzA4YTg4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoMTJuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjMDA3OTc2O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoMTNuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjNGRhYmE5O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0aDpudGgtY2hpbGQoMTRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAjMDBCMkFFO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5hYm91dCB7XG5cdCAgICBwYWRkaW5nOiAxMjBweCAwO1xuXG5cdCAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgXHQgICAgcGFkZGluZzogNzBweCAwO1xuXG4gICAgXHQgICAgLmNvbnRlbnQge1xuICAgICAgICBcdCAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBcdCAgICAmLnJpZ2h0IHtcbiAgICAgICAgXHQgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgICAgIFx0ICAgIH1cbiAgICBcdCAgICB9XG5cdCAgICB9XG5cblx0ICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICBwYWRkaW5nOiAzMHB4IDA7XG5cbiAgICBcdCAgICAuY29udGVudC5yaWdodCB7XG4gICAgICAgIFx0ICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgXHQgICAgfVxuXHQgICAgfVxuXG4gICAgICAgIC5ncmFwaHMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gICAgICAgICAgICB3aWR0aDogNTgwcHg7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgICAgICAgICBAbWVkaWEgQGZ1bGxEb3duIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblx0ICAgIC5zdGF0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAzMHB4IDAgMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgQG1lZGlhIEBmdWxsRG93bntcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuXG4gICAgICAgICAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlubmVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA3MHB4IDE1cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBAcHJpbWFyeUdyZWVuO1xuICAgICAgICAgICAgICAgIC5yZW1zKDEyKTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAZnVsbERvd24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblx0Ji50cmVuZHMsICYuZGV2aWNlcywgJi5pbnNpZ2h0ICB7XG5cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cblxuICAgICAgICAuY29udGVudC5sZWZ0IHtcblx0ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICAgICAgdG9wOiA1MCU7XG5cdCAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblxuXHQgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFx0ICAgICAgICB0b3A6IDA7XG4gICAgXHQgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG4gICAgXHQgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcblx0ICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZnJhbWUgaW1nIHtcblx0ICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnByb2R1Y3RJbnNpZ2h0IHtcblxuICAgICAgICAud3JhcHBlciB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA3ODBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LmNlbnRlciB7XG4gICAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC5kYXRhYmFzZSB7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yaWdodCB7XG4gICAgXHQgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdCAgICAgICAgdG9wOiA1MCU7XG4gICAgXHQgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgXHQgICAgICAgIHJpZ2h0OiA0MHB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBmdWxsRG93biB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgIFx0ICAgICAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgIFx0ICAgICAgICByaWdodDogMjBweDtcbiAgICBcdCAgICAgICAgfVxuXG4gICAgXHQgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgXHQgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgXHQgICAgICAgIHRvcDogMDtcbiAgICAgICAgXHQgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICAgIFx0ICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLmZyYW1lIHtcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTIwJSkpO1xuICAgICAgICAgICAgICAgIC50cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAxMDAwbXMpO1xuXG4gICAgICAgICAgICAgICAgJi5mb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWCgwJSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4vKlxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWCgtMjAlKSk7XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDEwMDBtcyk7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA2MDBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5mb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWCgwJSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiovXG4gICAgICAgIH1cblxuICAgICAgICAubWFwIHtcblxuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgNDBweCAwO1xuXG4gICAgICAgICAgICAubGVmdCB7XG4gICAgXHQgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdCAgICAgICAgdG9wOiA1MCU7XG4gICAgXHQgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cbiAgICBcdCAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBcdCAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBcdCAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICAgIFx0ICAgICAgICB9XG5cdCAgICAgICAgfVxuXG4gICAgICAgICAgICAuZnJhbWUge1xuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWCgyMCUpKTtcbiAgICAgICAgICAgICAgICAudHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMTAwMG1zKTtcblxuICAgICAgICAgICAgICAgICYuZm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVgoMCUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZWZ0IGltZyB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHRcbiAgICAgICAgfVxuXG4gICAgICAgIC5yaWdodCBpbWcge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZnJhbWUgaW1nIHtcblx0ICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnVsbE1hcmtldHMsIC5mdWxsUmVwb3J0cyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDQwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgIGJveC1zaGFkb3c6IDNweCA1cHggMTBweCByZ2JhKDAsMCwwLDAuMik7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbG9zZSB7XG4gICAgXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIFx0ICAgIHRvcDogNXB4O1xuICAgIFx0ICAgIHJpZ2h0OiA1cHg7XG4gICAgXHQgICAgZGlzcGxheTogYmxvY2s7XG4gICAgXHQgICAgd2lkdGg6IDMwcHg7XG4gICAgXHQgICAgaGVpZ2h0OiAzMHB4O1xuICAgIFx0ICAgIC5yZW1zKDI1KTtcbiAgICBcdCAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgXHQgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgXHQgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBcdCAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9keSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2x1bW4ge1xuICAgIFx0ICAgIHdpZHRoOiA0OCU7XG4gICAgXHQgICAgbWFyZ2luOiAwIDIlIDIwcHggMDtcbiAgICBcdCAgICBmbG9hdDogbGVmdDtcblxuICAgIFx0ICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIFx0ICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICBcdCAgICB9XG5cbiAgICBcdCAgICBAbWVkaWEgQGZ1bGxUb1RhYmxldCB7XG4gICAgICAgIFx0ICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBcdCAgICBtYXJnaW46IDA7XG4gICAgXHQgICAgfVxuXG4gICAgXHQgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBcdCAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgXHQgICAgbWFyZ2luOiAwO1xuICAgIFx0ICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubWFya2V0cyB7XG5cbiAgICAgICAgcGFkZGluZzogNTBweCAwO1xuXG4gICAgICAgIC5jb250ZW50LmxlZnQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vKlxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiovXG5cbiAgICAgICAgICAgIEBtZWRpYSBAamlnc2F3IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgXHQgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcdCAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG5cdCAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgIFx0ICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHQgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuXHQgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LnJpZ2h0IHtcbiAgICAgICAgICAgIHdpZHRoOiA0NyU7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAamlnc2F3IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTglO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgLmNvbnRlbnQubGVmdCxcbiAgICAgICAgICAgIC5jb250ZW50LnJpZ2h0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXHQgICAgLnJlZ2lvbiB7XG5cdFx0ICAgIHN0cm9rZTogI0U3RjJFNztcblx0XHQgICAgc3Ryb2tlLXdpZHRoOiAycHg7XG5cdFx0ICAgIGZpbGw6ICNGRjk5MDA7XG5cdFx0ICAgIC50cmFuc2l0aW9uKGFsbCBlYXNlLWluLW91dCAzMDBtcyk7XG5cdFx0ICAgIG9wYWNpdHk6IDA7XG5cdFx0ICAgIC50cmFuc2Zvcm0oc2NhbGUoMC41KSk7XG5cdFx0ICAgIC50cmFuc2Zvcm1PcmlnaW4oNTAlIDUwJSk7XG5cblx0XHQgICAgJi5mb2N1cyB7XG4gICAgXHRcdCAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShzY2FsZSgxKSk7XG5cdFx0ICAgIH1cblxuXHRcdCAgICAmOmhvdmVyIHtcblx0XHRcdCAgICBvcGFjaXR5OiAxO1xuXHRcdCAgICB9XG5cblx0XHQgICAgJi5ob3ZlciB7XG5cdFx0XHQgICAgb3BhY2l0eTogMTtcblx0XHRcdCAgICBmaWxsOiBAY3RhR3JlZW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuXHQgICAgfVxuXG4gICAgICAgIC5wb2ludHMge1xuXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgLnRyYW5zaXRpb24ob3BhY2l0eSBlYXNlLW91dCAzMDBtcyk7XG5cbiAgICAgICAgICAgIC5jaXJjbGUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuXHRcdFx0ICAgIC5jaXJjbGUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgXHRcdFx0ICAgICYuYWN0aXZlIHtcbiAgICAgICAgXHRcdFx0XHQua2V5ZnJhbWVzKHB1bHNlO3tcbiAgICAgICAgXHRcdFx0XHQwJSB7IG9wYWNpdHk6IDAuNTsgIH1cbiAgICAgICAgXHRcdFx0XHQ1MCUgeyBvcGFjaXR5OiAxOyB9XG4gICAgICAgIFx0XHRcdFx0MTAwJSB7IG9wYWNpdHk6IDAuNTsgfVxuICAgICAgICBcdFx0XHRcdH0pO1xuICAgICAgICBcdFx0XHRcdC5hbmltYXRpb24ocHVsc2UgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUpO1xuICAgIFx0XHRcdFx0fVxuICAgIFx0XHRcdH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cdCAgICAuaGlnaGxpZ2h0ZWQge1xuICAgIFx0ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdCAgICB0b3A6IDA7XG4gICAgXHQgICAgbGVmdDogMDtcbiAgICBcdCAgICByaWdodDogLTUwcHg7XG5cbiAgICBcdCAgICAucG9pbnRLZXkge1xuICAgICAgICBcdCAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBcdCAgICB3aWR0aDogMjUwcHg7XG4gICAgICAgIFx0ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgXHQgICAgbGVmdDogLTgwcHg7XG4gICAgICAgIFx0ICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIFx0ICAgIC50cmFuc2l0aW9uKG9wYWNpdHkgMzAwbXMgZWFzZS1vdXQgMTAwbXMpO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgXHQgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICAgICAgICBcdCAgICB3aWR0aDogMjIwcHg7XG5cbiAgICAgICAgICAgIFx0ICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgXHQgICAgLnJlbXMoMTUpO1xuICAgICAgICAgICAgICAgIFx0ICAgIHBhZGRpbmc6IDAgMCAwIDIwcHg7XG5cbiAgICAgICAgICAgICAgICBcdCAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIFx0ICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICAgICAgICAgICAgICBcdCAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgICAgICAgICAgIFx0ICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIFx0ICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgICAgIFx0ICAgIH1cbiAgICAgICAgICAgIFx0ICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgXHQgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgXHQgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgXHQgICAgfVxuXG4gICAgICAgIFx0ICAgICYuaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIFx0ICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgIFx0ICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBcdCAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgXHQgICAgfVxuICAgICAgICBcdCAgICB9XG5cbiAgICAgICAgXHQgICAgZGl2IHtcbiAgICAgICAgICAgIFx0ICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgXHQgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIFx0ICAgIH1cbiAgICBcdCAgICB9XG5cbiAgICBcdCAgICAubWFya2V0IHtcbiAgICAgICAgXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBcdCAgICB0b3A6IDA7XG4gICAgICAgIFx0ICAgIHJpZ2h0OiAwO1xuICAgICAgICBcdCAgICBvcGFjaXR5OiAwO1xuICAgICAgICBcdCAgICAudHJhbnNpdGlvbihvcGFjaXR5IDMwMG1zIGVhc2UtaW4tb3V0KTtcbiAgICAgICAgXHQgICAgd2lkdGg6IDIxMHB4O1xuICAgICAgICBcdCAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBcdCAgICBwYWRkaW5nOiA1MHB4IDAgMCAwO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBmdWxsRG93biB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMiU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICBcdCAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjIlOyAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgXHQgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgXHQgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgXHQgICAgfVxuXG4gICAgICAgIFx0ICAgIGg0IHtcbiAgICAgICAgICAgIFx0ICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIFx0ICAgIH1cblxuICAgICAgICBcdCAgICAmLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICBcdCAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICBcdCAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgXHQgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIFx0ICAgIH1cbiAgICAgICAgXHQgICAgfVxuXG4gICAgICAgIFx0ICAgICY6aG92ZXIge1xuICAgICAgICAgICAgXHQgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIFx0ICAgIH1cbiAgICBcdCAgICB9XG5cdCAgICB9XG5cblx0ICAgIC5wb2ludEtleSB7XG4gICAgXHQgICAgd2lkdGg6IDk1JTtcbiAgICBcdCAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgXHQgICAgbWFyZ2luOiAyMHB4O1xuICAgIFx0ICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xuICAgIFx0ICAgIC5jbGVhcmZpeCgpO1xuXG4gICAgXHQgICAgZGl2IHtcbiAgICAgICAgXHQgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIFx0ICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgIFx0ICAgIC5yZW1zKDE2KTtcbiAgICAgICAgXHQgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIFx0ICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIFx0ICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIFx0ICAgIHBhZGRpbmc6IDAgMCAwIDIycHg7XG4gICAgICAgIFx0ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBmdWxsVG9UYWJsZXQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgXHQgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgXHQgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgXHQgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICBcdCAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBcdCAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBcdCAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBcdCAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIFx0ICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBcdCAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgICAgICAgICAgXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgXHQgICAgbGVmdDogMDtcbiAgICAgICAgICAgIFx0ICAgIHRvcDogN3B4O1xuICAgICAgICBcdCAgICB9XG5cbiAgICAgICAgXHQgICAgJi5ob3RzdGF0cyB7XG4gICAgICAgICAgICBcdCAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZENTAwO1xuICAgICAgICAgICAgXHQgICAgfVxuICAgICAgICBcdCAgICB9XG5cbiAgICAgICAgXHQgICAgJi5zdXBwbHkge1xuICAgICAgICAgICAgXHQgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzM4NDQyMDtcbiAgICAgICAgICAgIFx0ICAgIH1cbiAgICAgICAgXHQgICAgfVxuICAgICAgICAgICAgfVxuXHQgICAgfVxuXG4gICAgICAgIC5tYXJrZXQge1xuXG4gICAgXHQgICAgcGFkZGluZzogMTBweCAyMHB4O1xuXG4gICAgXHQgICAgJjpob3ZlcntcbiAgICAgICAgXHQgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgICBcdCAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgXHQgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGg0IHtcbiAgICBcdCAgICAucmVtcygyMCk7XG4gICAgXHQgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICBcdCAgICAucmVtcygxNik7XG5cbiAgICBcdCAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgXHR9XG5cbiAgICAgICAgICAgIC5zdXBwbHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzODQ0MjA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ob3RzdGF0cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRDUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudmlkZW8ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjREREIHVybCguLi9pbWFnZXMvbGF5b3V0L3ZpZGVvUG9zdGVyLmF2aWYpIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgaGVpZ2h0OiA4NjBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblx0XHRib3JkZXItdG9wOiAwO1xuXG5cdFx0LmJpZy1pbWFnZSB7XG4gICAgXHRcdGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2xheW91dC92aWRlb1Bvc3Rlci5hdmlmKSBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogNDtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cdFx0fVxuXG4gICAgICAgIC52aWRlb1dyYXAge1xuXG4gICAgXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdFx0dG9wOiA1MCU7XG4gICAgXHRcdGxlZnQ6IDUwJTtcbiAgICBcdFx0LnRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuXG4gICAgXHRcdHZpZGVvIHtcbiAgICAgICAgXHRcdHdpZHRoOiAxMDAlO1xuICAgICAgICBcdFx0aGVpZ2h0OiAxMDAlO1xuICAgICAgICBcdFx0b3BhY2l0eTogMDtcbiAgICBcdFx0fVxuXG4gICAgXHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgXHRcdGRpc3BsYXk6IG5vbmU7XG4gICAgXHRcdH1cblx0XHR9XG5cblx0XHQudmlkZW8tanMge1xuICAgIFx0XHRoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cblx0XHQuYmlnLWltYWdlIHtcblx0XHQgICAgbWluLXdpZHRoOiAxMDAlO1xuXHRcdCAgICBtaW4taGVpZ2h0OiAxMDAlO1xuXHRcdCAgICBoZWlnaHQ6IGF1dG87XG5cdFx0ICAgIHdpZHRoOiBhdXRvO1xuXHRcdCAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ICAgIHotaW5kZXg6IDM7XG5cdFx0fVxuXG4gICAgICAgIC5vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcbiAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FwdGlvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDU1JTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiA4NzBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDY7XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucGxheUJ0biB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgLnJlbXMoNjApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgLnJlbXMoODApO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDQwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAucmVtcygzMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b25BbHQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNzBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDI1cHggYXV0bztcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kb3duIHtcblx0ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICAgICAgYm90dG9tOiA1JTtcblx0ICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbiAgICAgICAgICAgIC5yZW1zKDI1KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hcmtldFNuYXBzaG90LCAmLnN0YXRpc3RpY3MsICYucHJvZHVjdFRyZW5kcyB7XG5cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgLmNvbnRlbnQucmlnaHQge1xuXHQgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICAgICAgICB0b3A6IDUwJTtcblx0ICAgICAgICByaWdodDogMDtcblx0ICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuXG4gICAgICAgICAgICBAbWVkaWEgQGZ1bGxEb3duIHtcbiAgICAgICAgICAgICAgICByaWdodDogNDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuXHQgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFx0ICAgICAgICB0b3A6IDA7XG4gICAgXHQgICAgICAgIHJpZ2h0OiAwO1xuICAgIFx0ICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcblx0ICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZnJhbWUgaW1nIHtcblx0ICAgICAgICBmbG9hdDogcmlnaHQ7XG5cdCAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLyouY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMDBweCAwO1xuICAgICAgICB9Ki9cbiAgICB9XG5cbiAgICAmLm1hcmtldFNuYXBzaG90IHtcbiAgICAgICAgbWluLWhlaWdodDogNzAwcHg7XG5cbiAgICAgICAgLmNvbnRlbnQubGVmdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudC5yaWdodCB7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YXRpc3RpY3Mge1xuXG5cdCAgICAud3JhcHBlciB7XG5cdFx0ICAgIGhlaWdodDogOTAwcHg7XG5cdFx0fVxuXG5cdCAgICAuc3RhdEdyYXBoIHtcblx0ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICAgICAgcmlnaHQ6IDgwcHg7XG5cdCAgICAgICAgYm90dG9tOlx0MTAwcHg7XG5cdCAgICAgICAgei1pbmRleDogMjtcblx0ICAgIH1cblxuXHQgICAgLmVtcHR5RnJhbWUge1xuXHQgICAgICAgIGltZyB7XG5cdFx0ICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cdFx0ICAgICAgICBmbG9hdDogcmlnaHQ7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICAuZ3JhcGhzIHtcblx0ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICAgICAgcmlnaHQ6IDgwcHg7XG5cdCAgICAgICAgdG9wOlx0MTUwcHg7XG5cdCAgICAgICAgei1pbmRleDogMjtcblx0ICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERDtcblx0ICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHQgICAgfVxuICAgIH1cblxuXG4gICAgJi5zZWFyY2gge1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgLndyYXBwZXIge1xuXHQgICAgICAgIGhlaWdodDogOTAwcHg7XG5cblx0ICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIFx0ICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICBcdCAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICBcdCAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgXHQgICAgICAgIH1cblx0ICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudC5yaWdodCB7XG5cdCAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgICAgIHRvcDogNTAlO1xuXHQgICAgICAgIHJpZ2h0OiAwO1xuXHQgICAgICAgIHBhZGRpbmc6IDYwcHggNDBweDtcblx0ICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuXG5cdCAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcblx0ICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFx0ICAgICAgICB0b3A6IDA7XG4gICAgXHQgICAgICAgIGxlZnQ6IDA7XG4gICAgXHQgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBcdCAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcblx0ICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAub3ZlcmxheSB7XG5cbi8qXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwxKSA3MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDEpIDcwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDEpIDcwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xuICAgICAgICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nIzAwZmZmZmZmJyxHcmFkaWVudFR5cGU9MSApO1xuKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG5cdFx0XHRiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSwgcmdiYSgyNTMsMjUzLDI1MywxKSAyNSUsIHJnYmEoMjQ5LDI0OSwyNDksMSkgMTAwJSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSxyZ2JhKDI1MywyNTMsMjUzLDEpIDI1JSxyZ2JhKDI0OSwyNDksMjQ5LDEpIDEwMCUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSxyZ2JhKDI1MywyNTMsMjUzLDEpIDI1JSxyZ2JhKDI0OSwyNDksMjQ5LDEpIDEwMCUpO1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDMzJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgLmllOSAmIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICNwbGF5YWJsZU1hcFdyYXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAvL2Rpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyOjA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC50ZXN0aW1vbmlhbHMge1xuXG5cdFx0cGFkZGluZzogMTAwcHggMDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2xheW91dC9sb2JieS5hdmlmKSBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHBhZGRpbmc6IDIwcHggMDtcblx0XHR9XG5cblx0ICAgIC5jYXJvdXNlbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXHQgICAgfVxuXG4gICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDgwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgIC5yZW1zKDIyKTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAcHJpbWFyeUZvbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0MHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnRBd2Vzb21lXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMjBweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTQwcHg7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDMwKTtcbiAgICBcdFx0XHRcdGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMTBkJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udEF3ZXNvbWVcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogLTQwcHg7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDMwKTtcbiAgICBcdFx0XHRcdGNvbG9yOiAjRkZGO1xuICAgIFx0XHRcdFx0Y29udGVudDogJ1xcZjEwZSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCA1cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIC5yZW1zKDE4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5NSU7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC00MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByZXZUZXN0LCAubmV4dFRlc3Qge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMTBweDtcbiAgICAgICAgICAgIC5yZW1zKDMwKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAjREREO1xuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmV2VGVzdCB7XG4gICAgICAgICAgICBsZWZ0OiAtMjBweDtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubmV4dFRlc3Qge1xuICAgICAgICAgICAgcmlnaHQ6IC0yMHB4O1xuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5jaGFydHMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAudmlkZW8yIHtcbiAgICAgICAgd2lkdGg6IDU2M3B4O1xuICAgICAgICBoZWlnaHQ6IDM2OHB4O1xuICAgIH1cblxuICAgIC5kYXRhIHtcblxuICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICBoNCB7XG4gICAgICAgICAgICAucmVtcygzMik7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIGNvbG9yOiBAcHJpbWFyeUdyZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICAucmVtcygyMCk7XG4gICAgICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpcnN0LCAuc2Vjb25kIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2xpZW50cyB7XG5cbiAgICBwYWRkaW5nOiA0MHB4IDA7XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICB9XG5cbiAgICAuY2Fyb3VzZWwge1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDQwcHggMCA0MHB4O1xuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICAgICAgfVxuXG5cdCAgICAuc2xpY2stZG90cyB7XG5cdCAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcblxuXHQgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdCAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblx0ICAgICAgICB9XG5cdCAgICB9XG5cbiAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxN3B4O1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAucmVtcygyOCk7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgIC5yZW1zKDIwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmV2LCAubmV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA3OHB4O1xuICAgICAgICAucmVtcygzMCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6ICNEREQ7XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmV2IHtcbiAgICAgICAgbGVmdDogLTIwcHg7XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmV4dCB7XG4gICAgICAgIHJpZ2h0OiAtMjBweDtcblxuICAgICAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEppZ3NhdyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tYWluV3JhcHBlciB7XG4gICAgLy9iYWNrZ3JvdW5kOiAjQTlDNEE5IHVybCguLi9pbWFnZXMvY2xpZW50cy9vcGVyYXRpb25zQmcucG5nKTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jb250ZW50IHtcblx0ICAgIHBhZGRpbmc6IDUwcHggMDtcblx0ICAgIGZsb2F0OiByaWdodDtcblx0ICAgIC5jbGVhcmZpeCgpO1xuXHQgICAgd2lkdGg6IDYwJTtcblxuXHRcdC5pZTkgJiB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0ICAgIC5uZXh0LCAucHJldiB7XG4gICAgXHQgICAgZGlzcGxheTogbm9uZTtcblx0ICAgIH1cblxuICAgICAgICBAbWVkaWEgQGppZ3NhdyB7XG4gICAgICAgICAgICB3aWR0aDogNTIlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEBmdWxsVG9UYWJsZXQge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuXG5cdCAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIFx0ICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgXHQgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5uZXh0LCAucHJldiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogLTEwcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIC5yZW1zKDIwKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogQGN0YUdyZWVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0zMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0zMHB4O1xuICAgICAgICAgICAgfVxuXG5cdCAgICB9XG5cblx0ICAgIGgyIHtcblx0XHQgICAgLnJlbXMoMzApO1xuXHRcdCAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgY29sb3I6ICNGRkY7XG5cblx0ICAgICAgICAmOmFmdGVyIHtcblx0XHQgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdCAgICAgICAgd2lkdGg6IDE1cHg7XG5cdFx0ICAgICAgICBoZWlnaHQ6IDJweDtcblx0XHQgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0ICAgICAgICBtYXJnaW46IDVweCAwIDIwcHggMDtcblx0XHQgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG5cdFx0ICAgICAgICBjb250ZW50OiAnJztcblx0ICAgICAgICB9XG5cblx0XHQgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHQgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFx0XHQgICAgd2lkdGg6IDEwMCU7XG4gICAgXHRcdCAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gICAgXHRcdCAgICAmOmFmdGVyIHtcbiAgICAgICAgXHRcdCAgICBtYXJnaW46IDAgYXV0bztcbiAgICBcdFx0ICAgIH1cblx0XHQgICAgfVxuXHQgICAgfVxuXG5cdCAgICBoMyB7XG5cdFx0ICAgIC5yZW1zKDIwKTtcblx0XHRcdGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblxuXHRcdCAgICAmOmFmdGVyIHtcbiAgICBcdFx0ICAgIG1hcmdpbjogNXB4IDA7XG5cdFx0ICAgIH1cblxuXHQgICAgfVxuXG5cdCAgICAuc2xpY2stc2xpZGUge1xuICAgIFx0ICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgXHQgICAgcGFkZGluZzogMCAycHg7XG5cdCAgICB9XG5cblx0ICAgIC5zZWN0b3Ige1xuXHRcdCAgICB3aWR0aDogNDglO1xuXHRcdCAgICBmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbjogMCA0JSAyMHB4IDA7XG5cdFx0XHRwYWRkaW5nOiAzMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogZGFya2VuKEBwcmltYXJ5R3JlZW4sMTUlKTtcblx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0aGVpZ2h0OiAzMjBweDtcblxuXHRcdFx0LmllOSAmIHtcbiAgICBcdFx0XHR3aWR0aDogNDklO1xuICAgIFx0XHRcdG1hcmdpbjogMCAxJSAyMHB4IDA7XG4gICAgXHRcdFx0ZmxvYXQ6IGxlZnQ7XG4gICAgXHRcdFx0aGVpZ2h0OiAyNTBweDtcblx0XHRcdH1cblxuXG4gICAgICAgICAgICBAbWVkaWEgQGppZ3NhdyB7XG4gICAgXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHRcdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuICAgIFx0XHRcdGZsb2F0OiBub25lO1xuICAgIFx0XHRcdGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgIFx0XHQgICAgd2lkdGg6IDQ4JTtcbiAgICBcdFx0ICAgIGZsb2F0OiBsZWZ0O1xuICAgIFx0XHRcdG1hcmdpbjogMCA0JSAyMHB4IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MHB4O1xuICAgICAgICAgICAgfVxuXG5cdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHRcdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuICAgIFx0XHRcdGZsb2F0OiBub25lO1xuICAgIFx0XHRcdGhlaWdodDogYXV0bztcbiAgICBcdFx0XHRwYWRkaW5nOiAxNXB4O1xuXHRcdFx0fVxuXG5cdFx0ICAgICY6bnRoLWNoaWxkKDJuKSB7XG5cdFx0XHQgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdCAgICB9XG5cblx0XHQgICAgJjpudGgtY2hpbGQoM24pIHtcblx0XHRcdCAgICBjbGVhcjogYm90aDtcblx0XHRcdH1cblxuICAgICAgICBcdGxpIHtcblxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuXG4gICAgICAgICAgICBcdCY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBcdGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgXHRmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICAgICAgICBcdHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgICAgIFx0Y29sb3I6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICBcdGNvbnRlbnQ6ICdcXGYwMGMnO1xuICAgICAgICAgICAgICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIFx0bGVmdDogMDtcbiAgICAgICAgICAgICAgICBcdHRvcDogMDtcbiAgICAgICAgICAgIFx0fVxuICAgIFx0ICAgIH1cblx0ICAgIH1cbiAgICB9XG59XG5cblx0LmtleXMge1xuICAgIFx0ZmxvYXQ6IGxlZnQ7XG4gICAgXHR3aWR0aDogNjAwcHg7XG4gICAgXHRjbGVhcjogbGVmdDtcbiAgICBcdG1hcmdpbi10b3A6IDUwcHg7XG4gICAgXHRkaXNwbGF5OiBub25lO1xuXG4gICAgXHRsaSB7XG4gICAgICAgIFx0ZmxvYXQ6IGxlZnQ7XG4gICAgICAgIFx0d2lkdGg6IDQ5JTtcbiAgICAgICAgXHRtYXJnaW4tcmlnaHQ6ICAyJTtcbiAgICAgICAgXHRwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIFx0LnJlbXMoMjUpO1xuICAgICAgICBcdGNvbG9yOiAjRkZGO1xuICAgICAgICBcdGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgICBcdGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgIFx0dGV4dC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLDAsMCwwLjMpO1xuXG4gICAgICAgIFx0JjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgIFx0bWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBcdH1cbiAgICBcdH1cblxuICAgIFx0LmtleSB7XG4gICAgICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgIFx0ZmxvYXQ6IGxlZnQ7XG4gICAgICAgIFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICBcdHdpZHRoOiAyNXB4O1xuICAgICAgICBcdGhlaWdodDogMjVweDtcblxuICAgICAgICBcdCYub3BlcmF0aW9ucyB7XG4gICAgICAgIFx0XHRiYWNrZ3JvdW5kOiBAcHJpbWFyeUdyZWVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlYWxFc3RhdGUge1xuICAgICAgICBcdFx0YmFja2dyb3VuZDogIzgxRkY4MTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5maW5hbmNlSW52ZXN0bWVudCB7XG4gICAgICAgIFx0XHRiYWNrZ3JvdW5kOiAjNjc3RjY3O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnNlcnZpY2VTdXBwb3J0IHtcbiAgICAgICAgXHRcdGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgIH1cbiAgICBcdH1cblx0fVxuXG4uamlnc2F3V3JhcCB7XG5cdHdpZHRoOiA1MDBweDtcblx0aGVpZ2h0OiA1MDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW46IDIxNXB4IDAgMCAwO1xuXHRmbG9hdDogbGVmdDtcblxuXHQuaWU5ICYge1xuICAgIFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdEBtZWRpYSBAamlnc2F3IHtcbiAgICBcdG1hcmdpbjogNTBweCAwIDAgMDtcblx0fVxuXG5cdEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgXHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LmNlbnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHQudHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLC01MCUpKTtcblx0XHR3aWR0aDogNDAwcHg7XG5cdFx0ei1pbmRleDogNjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdGgyIHtcblx0XHRcdC5yZW1zKDM1KTtcblx0XHRcdHBhZGRpbmc6IDQwcHggMjBweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRjb2xvcjogQHByaW1hcnlHcmVlbjtcblx0XHRcdGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG5cdFx0fVxuXHR9XG5cblx0LmNlbnRlckxvd2VyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdC50cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsLTUwJSkpO1xuXHRcdHdpZHRoOiA0MDBweDtcblx0XHRoZWlnaHQ6IDQwMHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHQvL2JhY2tncm91bmQ6ICNGRkYgO1xuXHRcdHotaW5kZXg6IDU7XG5cdFx0Ly9wb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdH1cblxuXHQuYXJyb3cge1xuXHRcdHJpZ2h0OiAtMDtcblx0XHR0b3A6IDUwJTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHR3aWR0aDogNDBweDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0LnRyYW5zZm9ybShyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVkoLTUwJSkpO1xuXHR9XG5cblx0Ji5vcGVyYXRpb25zIHtcblx0XHQuYXJyb3cge1xuXHRcdFx0YmFja2dyb3VuZDogQHByaW1hcnlHcmVlbjtcblx0XHR9XG5cbiAgICAgICAgLm9wZXJhdGlvbnMge1xuICAgIFx0XHRoMywgcCB7XG4gICAgICAgIFx0XHRvcGFjaXR5OiAxO1xuICAgIFx0XHR9XG4gICAgXHRcdGl7XG4gICAgICAgIFx0XHRkaXNwbGF5OiBub25lO1xuICAgIFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5yZWFsRXN0YXRlIHtcblx0XHQuYXJyb3cge1xuXHRcdFx0YmFja2dyb3VuZDogIzAxN0E2RDtcblx0XHR9XG5cbiAgICAgICAgLnJlYWxFc3RhdGUge1xuICAgIFx0XHRoMywgcCB7XG4gICAgICAgIFx0XHRvcGFjaXR5OiAxO1xuICAgIFx0XHR9XG4gICAgXHRcdGl7XG4gICAgICAgIFx0XHRkaXNwbGF5OiBub25lO1xuICAgIFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5maW5hbmNlSW52ZXN0bWVudCB7XG5cdFx0LmFycm93IHtcblx0XHRcdGJhY2tncm91bmQ6IEBwcmltYXJ5R3JlZW47XG5cdFx0fVxuXG4gICAgICAgIC5maW5hbmNlSW52ZXN0bWVudCB7XG4gICAgXHRcdGgzLCBwIHtcbiAgICAgICAgXHRcdG9wYWNpdHk6IDE7XG4gICAgXHRcdH1cbiAgICBcdFx0aXtcbiAgICAgICAgXHRcdGRpc3BsYXk6IG5vbmU7XG4gICAgXHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLnNlcnZpY2VTdXBwb3J0IHtcblx0XHQuYXJyb3cge1xuXHRcdFx0YmFja2dyb3VuZDogIzAxN0E2RDtcblx0XHR9XG5cbiAgICAgICAgLnNlcnZpY2VTdXBwb3J0IHtcbiAgICBcdFx0aDMsIHAge1xuICAgICAgICBcdFx0b3BhY2l0eTogMTtcbiAgICBcdFx0fVxuXG4gICAgXHRcdGl7XG4gICAgICAgIFx0XHRkaXNwbGF5OiBub25lO1xuICAgIFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5qaWdzYXcge1xuXG5cdHdpZHRoOiA1MDBweDtcblx0aGVpZ2h0OiA1MDBweDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQvL2JhY2tncm91bmQ6ICNGRkYgO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC50cmFuc2Zvcm0odHJhbnNsYXRlWigycHgpKTtcblx0LnRyYW5zZm9ybShyb3RhdGUoMCkpO1xuXHQudHJhbnNpdGlvbih0cmFuc2Zvcm0gbGluZWFyIDUwMG1zKTtcblx0ei1pbmRleDogMTtcblxuXHQmOmhvdmVyIHtcblxuXHR9XG5cblx0aDMsIGkge1xuICAgIFx0b3BhY2l0eTogMC41O1xuXHR9XG5cblx0aSB7XG4gICAgXHRvcGFjaXR5OiAwLjMxO1xuICAgIFx0ZGlzcGxheTogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0LnJlbXMoMzApO1xuXHRcdGNvbG9yOiAjRkZGO1xuICAgICAgICB0b3A6IDIyJTtcbiAgICAgICAgcmlnaHQ6IDE1NnB4O1xuXHRcdC50cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdFx0LnRyYW5zaXRpb24ob3BhY2l0eSBsaW5lYXIgMzAwbXMpO1xuXHR9XG5cblx0aDMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAxMDtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHR3aWR0aDogMjUwcHg7XG5cdFx0LnRyYW5zaXRpb24ob3BhY2l0eSBsaW5lYXIgMzAwbXMpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXHRcdHRvcDogMTBweDtcblx0XHQucmVtcygyMSk7XG5cblx0XHQmOmFmdGVyIHtcbiAgICBcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHRwIHtcbiAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdHdpZHRoOiAyMjBweDtcbiAgICBcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdHRvcDogNDBweDtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHRmb250LWZhbWlseTogQHByaW1hcnlGb250O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHQucmVtcygxMyk7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQudHJhbnNpdGlvbihvcGFjaXR5IGxpbmVhciAzMDBtcyk7XG5cdH1cblxuXHQucXVhZHJhbnQge1xuXHRcdHdpZHRoOiAzMDBweDtcblx0XHRoZWlnaHQ6IDMwMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3JkZXI6IDA7XG5cdFx0LnRyYW5zaXRpb24oYWxsIGxpbmVhciAzMDBtcyk7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdG9wYWNpdHk6IDE7XG5cbiAgICBcdFx0aSB7XG4gICAgXHRcdCAgICBvcGFjaXR5OiAwLjg7XG4gICAgXHRcdH1cblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdG1heC13aWR0aDogbm9uZTtcblx0fVxuXG5cdC53cmFwIHtcblxuXHRcdCY6aG92ZXIge1xuXG5cdFx0XHRoMyB7XG4gICAgXHRcdFx0b3BhY2l0eTogMC44O1xuXHRcdFx0fVxuICAgICAgICB9XG5cbiAgICAgICAgJi5mbGlwIHtcbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHNjYWxlWCgtMSkgc2NhbGVZKC0xKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxuXG5cdC5vcGVyYXRpb25zIHtcblxuXHRcdC5xdWFkcmFudCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAcHJpbWFyeUdyZWVuO1xuXHRcdFx0dG9wOiAxMDBweDtcblx0XHRcdGxlZnQ6IDUyM3B4O1xuXHRcdFx0LnRyYW5zZm9ybShyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlWigxcHgpKTtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAyN3B4O1xuICAgICAgICAgICAgbGVmdDogMzFweDtcblx0XHR9XG5cblx0XHRoMyB7XG4gICAgIFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cblxuXHR9XG5cblx0LnJlYWxFc3RhdGUge1xuXG5cdFx0LnF1YWRyYW50IHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBwcmltYXJ5R3JlZW47XG4gICAgICAgICAgICB0b3A6IC0zMjNweDtcbiAgICAgICAgICAgIHJpZ2h0OiAxMDBweDtcblx0XHRcdC50cmFuc2Zvcm0ocm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGVaKDFweCkpO1xuICAgICAgICAgICAgei1pbmRleDogNDtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtNzlweDtcbiAgICAgICAgICAgIGxlZnQ6IDBweDtcblx0XHR9XG5cblx0XHRoMyxwIHtcbiAgICAgXHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblxuXHR9XG5cblx0LmZpbmFuY2VJbnZlc3RtZW50IHtcblxuXHRcdC5xdWFkcmFudCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAcHJpbWFyeUdyZWVuO1xuICAgICAgICAgICAgYm90dG9tOiAxMDBweDtcbiAgICAgICAgICAgIGxlZnQ6IC0zMjNweDtcblx0XHRcdC50cmFuc2Zvcm0ocm90YXRlKC0yMjVkZWcpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGVaKDFweCkpO1xuXHRcdH1cblxuXHRcdGltZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IC03OXB4O1xuXHRcdFx0bGVmdDogMDtcblx0XHR9XG5cblx0XHRoMyB7XG4gICAgXHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblxuXHR9XG5cblx0LnNlcnZpY2VTdXBwb3J0IHtcblxuXHRcdC5xdWFkcmFudCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgICAgICB0b3A6IDUyNHB4O1xuICAgICAgICAgICAgbGVmdDogOThweDtcblx0XHRcdC50cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlWigxcHgpKTtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtNzlweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG5cdFx0fVxuXG5cblx0XHRoMyxwIHtcbiAgICAgXHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQ2Fyb3VzZWxzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNhcm91c2VsIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAzcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0RERDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGljay1hY3RpdmUge1xuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRhdGFDYXJvdXNlbCB7XG4gICAgICAgICYgPiAuZGF0YTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIC5jbGVhcmZpeCgpO1xuXG4gICAgICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTdWIgUGFnZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jb3ZlckltYWdlIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogODBweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9sYXlvdXQvY292ZXJJbWFnZS5qcGcpIGNlbnRlciBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHJvZHVjdHMgUGFnZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5kZXZpY2VzIHtcblxuXHRiYWNrZ3JvdW5kOiAjRkZGO1xuXHRwYWRkaW5nOiAxMDBweCAwO1xuXHRib3JkZXItdG9wOiAwO1xuXG5cdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdHBhZGRpbmc6IDQwcHggMDtcblx0fVxuXG5cdC5jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDQ0JTtcblxuICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaGVsZiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtNyU7XG4gICAgICAgIGxlZnQ6IC0xMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wcm9kdWN0cy9zaGVsZi5wbmcpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAxNDAwcHg7XG4gICAgICAgIGhlaWdodDogMjg5cHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgyMCUpKTtcbiAgICAgICAgLnRyYW5zaXRpb24oYWxsIDgwMG1zIGVhc2UtaW4tb3V0IDQwMG1zKTtcblxuXHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0ZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYudmlzaWJsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcbiAgICAgICAgfVxuICAgIH1cblxuXHQuZGV2aWNlV3JhcCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDEwMDBweDtcblx0XHRoZWlnaHQ6IDYwMHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0aGVpZ2h0OiA0NTBweDtcbiAgICBcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0LmRldmljZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LnRyYW5zZm9ybSh0cmFuc2xhdGVYKDUwJSkpO1xuXHRcdHotaW5kZXg6IDI7XG5cblx0XHQmLnZpc2libGUge1xuXHRcdFx0LmtleWZyYW1lcyhmYWRlVXA7IHtcblx0XHRcdFx0MCUge29wYWNpdHk6IDA7IC50cmFuc2Zvcm0odHJhbnNsYXRlWCg1MCUpKTt9XG5cdFx0XHRcdDEwMCUge29wYWNpdHk6IDE7IC50cmFuc2Zvcm0odHJhbnNsYXRlWCgwKSk7fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Lm1hY2Jvb2sge1xuXHRcdHdpZHRoOiA4MDBweDtcblx0XHRoZWlnaHQ6IDQ1MHB4O1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXG5cdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHR3aWR0aDogNjAwcHg7XG4gICAgXHRcdGhlaWdodDogMzM4cHg7XG4gICAgXHRcdGxlZnQ6IDE1JTtcblx0XHR9XG5cblx0XHQmLnZpc2libGUge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihmYWRlVXAgODAwbXMgZWFzZS1vdXQgODAwbXMgMSBmb3J3YXJkcyk7XG5cdFx0fVxuXHR9XG5cblx0LmlwYWQge1xuXHRcdHdpZHRoOiA0MjBweDtcblx0XHRoZWlnaHQ6IDMwMHB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMjAwcHg7XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHdpZHRoOiAyODBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgXHRcdC50cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG5cdFx0fVxuXG5cdFx0Ji52aXNpYmxlIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24oZmFkZVVwIDgwMG1zIGVhc2Utb3V0IDE0MDBtcyAxIGZvcndhcmRzKTtcblx0XHR9XG5cdH1cblxuXHQuaXBob25lIHtcblx0XHR3aWR0aDogMTQwcHg7XG4gICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICAgIGxlZnQ6IDQ3JTtcbiAgICAgICAgYm90dG9tOiAwJTtcblxuXHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0d2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogLTEwJTtcblx0XHR9XG5cblx0XHQmLnZpc2libGUge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihmYWRlVXAgODAwbXMgZWFzZS1vdXQgMTkwMG1zIDEgZm9yd2FyZHMpO1xuXHRcdH1cblx0fVxuXG5cdC5hcnJvdyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3BhY2l0eTogMDsvKlxuXG5cdFx0LnRyYW5zZm9ybSh0cmFuc2xhdGVZKDIwJSkpO1xuXG5cdFx0Ji52aXNpYmxlIHtcblx0XHRcdC5rZXlmcmFtZXMoZmFkZVVwOyB7XG5cdFx0XHRcdDAlIHtvcGFjaXR5OiAwOyAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMjAlKSk7fVxuXHRcdFx0XHQxMDAlIHtvcGFjaXR5OiAxOyAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO31cblx0XHRcdH0pO1xuXHRcdH1cbiovXG5cblx0XHRoMiB7XG5cdFx0XHRmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXHRcdFx0Y29sb3I6IEBwcmltYXJ5R3JlZW47XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdCYubGVmdCB7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAtMTAwcHg7XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0Ym90dG9tOiAtMTVweDtcblx0XHRcdH1cblxuXHRcdFx0Ji52aXNpYmxlIHtcblx0ICAgICAgICAgICAgLmFuaW1hdGlvbihmYWRlVXAgNDAwbXMgZWFzZS1pbiAyMDAwbXMgMSBmb3J3YXJkcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5yaWdodCB7XG5cdFx0XHR0b3A6IDMyMHB4O1xuXHRcdFx0cmlnaHQ6IC0yMTVweDtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHRib3R0b206IC0xNXB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0Ji52aXNpYmxlIHtcblx0ICAgICAgICAgICAgLmFuaW1hdGlvbihmYWRlVXAgNDAwbXMgZWFzZS1pbiAyMzUwbXMgMSBmb3J3YXJkcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5taWRkbGUge1xuXHRcdFx0Ym90dG9tOiAtODBweDtcblx0XHRcdGxlZnQ6IDU4JTtcblx0XHRcdG1hcmdpbi1yaWdodDogLTgwcHg7XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0Ym90dG9tOiAtMTVweDtcblx0XHRcdH1cblxuXHRcdFx0Ji52aXNpYmxlIHtcblx0ICAgICAgICAgICAgLmFuaW1hdGlvbihmYWRlVXAgNDAwbXMgZWFzZS1pbiAyNzAwbXMgMSBmb3J3YXJkcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5pbnNpZ2h0c1Byb2R1Y3Qge1xuXG5cdHBhZGRpbmc6IDEwMHB4IDA7XG5cblx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0cGFkZGluZzogMjBweCAwO1xuXHR9XG5cblx0aDEsIGgzIHtcbiAgICBcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdGgzIHtcbiAgICBcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgICBcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIFx0fVxuXG4gICAgXHQmOmFmdGVye1xuICAgICAgICBcdG1hcmdpbjogMTBweCBhdXRvO1xuICAgIFx0fVxuXHR9XG5cblx0LmhpZ2hsaWdodHMge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdC5jbGVhcmZpeCgpO1xuXG5cdFx0QG1lZGlhIEBtb2JpbGUge1xuXG4gICAgXHQgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjREREO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cdFx0fVxuXG5cdFx0LmhpZ2hsaWdodCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiAzMiU7XG5cdFx0XHRtYXJnaW46IDAgMiUgMjBweCAwO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdC5yZW1zKDIwKTtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG5cblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgICAgICB9XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6IEBsaWdodDtcblxuXHRcdFx0XHQmOmFmdGVyIHtcbiAgICBcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDM4Nzc5O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcblx0XHRcdFx0fVxuXG4gICAgXHRcdFx0QG1lZGlhIEBmdWxsRG93biB7XG4gICAgXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuICAgIFx0XHRcdFx0JjphZnRlciB7XG4gICAgICAgIFx0XHRcdFx0bWFyZ2luOiAxMHB4IGF1dG87XG4gICAgXHRcdFx0XHR9XG4gICAgICAgICAgICAgICAgfVxuXG5cdFx0XHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG4gICAgXHRcdFx0XHQmOmFmdGVyIHtcbiAgICAgICAgXHRcdFx0XHRtYXJnaW46IDEwcHggYXV0bztcbiAgICBcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOm50aC1jaGlsZCgzbikge1xuXHRcdFx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cblx0XHRcdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGRpdiB7XG4gICAgXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuICAgIFx0XHRcdHdpZHRoOiA2NSU7XG4gICAgXHRcdFx0dG9wOiAwJTtcbiAgICBcdFx0XHRyaWdodDogMDtcbiAgICBcdFx0XHRtaW4taGVpZ2h0OiAxNjVweDtcblxuICAgIFx0XHRcdEBtZWRpYSBAZnVsbERvd24ge1xuICAgICAgICBcdFx0XHR3aWR0aDogMTAwJTtcbiAgICAgICAgXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFx0XHRcdH1cblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICAgICAgICAgICAgICAgICAgLnJlbXMoMTcpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgXHRcdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBcdFx0XHR3aWR0aDogMTAwJTtcbiAgICAgICAgXHRcdFx0ZmxvYXQ6IG5vbmU7XG4gICAgICAgIFx0XHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuICAgICAgICBcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIFx0XHRcdHBhZGRpbmc6IDVweCAwIDAgMDtcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICBcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGkge1xuICAgIFx0XHRcdGJvcmRlci1yYWRpdXM6ICg1MCUpO1xuICAgIFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNFRUU7XG4gICAgXHRcdFx0YmFja2dyb3VuZDogI0ZGRjtcblx0XHRcdFx0LnJlbXMoNjApO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDMzJTtcblx0XHRcdFx0bWF4LXdpZHRoOiAxMzBweDtcblx0XHRcdFx0bWF4LWhlaWdodDogMTMwcHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Y29sb3I6IEBjdGFHcmVlbjtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogNDBweDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0LnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblx0XHRcdFx0cGFkZGluZzogMzNweCAwO1xuXG5cdFx0XHRcdEBtZWRpYSBAZnVsbERvd24ge1xuICAgIFx0XHRcdFx0d2lkdGg6IDEzMHB4O1xuICAgIFx0XHRcdFx0aGVpZ2h0OiAxMzBweDtcbiAgICBcdFx0XHRcdG1heC1oZWlnaHQ6IDEzMHB4O1xuICAgIFx0XHRcdFx0cG9zaXRpb246IHN0YXRpYztcbiAgICBcdFx0XHRcdGZsb2F0OiBub25lO1xuICAgIFx0XHRcdFx0bWFyZ2luOiAxMHB4IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRcdFx0XHR0b3A6IDA7XG4gICAgXHRcdFx0XHRmbG9hdDogbm9uZTtcbiAgICBcdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICAucmVtcyg0NSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnByb2R1Y3RUcmVuZHMge1xuXG5cdC5saXN0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW46IDIwcHggODBweCA0MHB4IDA7XG5cblx0XHRAbWVkaWEgQGppZ3NhdyB7XG4gICAgXHRcdG1hcmdpbjogMjBweCA2MHB4IDQwcHggMDtcblx0XHR9XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdG1hcmdpbjogMTBweCAwO1xuICAgIFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0XHRoMiB7XG5cdFx0XHQucmVtcygyOCk7XG5cdFx0XHRmb250LWZhbWlseTogQGxpZ2h0O1xuICAgICAgICAgICAgY29sb3I6IEBwcmltYXJ5R3JlZW47XG5cblx0XHRcdCY6YWZ0ZXIge1xuICAgIFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICM3MEMwNkI7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jYWxsVG9BY3Rpb25CYXIge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogNzBweCAwO1xuXHRiYWNrZ3JvdW5kOiAjRjFGMUYxO1xuXG5cdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdHBhZGRpbmc6IDIwcHggMDtcblx0fVxuXG5cdC5idXR0b25zIHtcblx0XHR3aWR0aDogNDAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHdpZHRoOiAyMDBweDtcblx0XHR9XG5cblx0XHQuYnV0dG9uQWx0IHtcbiAgICBcdFx0d2lkdGg6IDE4MHB4O1xuICAgIFx0XHQucmVtcygxOCk7XG5cbiAgICBcdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBcdFx0d2lkdGg6IDIwMHB4O1xuICAgICAgICBcdFx0bWFyZ2luOiA1cHggMDtcbiAgICBcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ucmVnaW9uIHtcblxuICAgICYjaXJlbGFuZCxcbiAgICAmLmlyZWxhbmQge1xuXHQgICAgZmlsbDogIzAwNzk3NjtcbiAgICB9XG5cbiAgICAmI3Njb3RsYW5kLFxuICAgICYuc2NvdGxhbmQge1xuXHQgICAgZmlsbDogIzAwOTA4ZDtcbiAgICB9XG5cbiAgICAmI25vcnRoZXJuSXJlbGFuZCxcbiAgICAmLm5vcnRoZXJuSXJlbGFuZCB7XG5cdCAgICBmaWxsOiAjMDBCMkFFO1xuICAgIH1cblxuICAgICYjbm9ydGhFYXN0LFxuICAgICYubm9ydGhFYXN0IHtcblx0ICAgIGZpbGw6ICMwMGQyY2Q7XG4gICAgfVxuXG4gICAgJiNub3J0aFdlc3QsXG4gICAgJi5ub3J0aFdlc3Qge1xuXHQgICAgZmlsbDogIzE2YmNiOTtcbiAgICB9XG5cbiAgICAmI3lvcmtzaGlyZSxcbiAgICAmLnlvcmtzaGlyZSB7XG5cdCAgICBmaWxsOiAjMzA4YTg4O1xuICAgIH1cblxuICAgICYjd2VzdE1pZGxhbmRzLFxuICAgICYud2VzdE1pZGxhbmRzIHtcblx0ICAgIGZpbGw6ICM0ZGFiYTk7XG4gICAgfVxuXG4gICAgJiN3YWxlcyxcbiAgICAmLndhbGVzIHtcblx0ICAgIGZpbGw6ICM3ZWUxZGY7XG4gICAgfVxuXG4gICAgJiNlYXN0TWlkbGFuZHMsXG4gICAgJi5lYXN0TWlkbGFuZHMge1xuXHQgICAgZmlsbDogIzE4OGY4MjtcbiAgICB9XG5cbiAgICAmI2Vhc3RvZkVuZ2xhbmQsXG4gICAgJi5lYXN0b2ZFbmdsYW5kIHtcblx0ICAgIGZpbGw6ICMwM2IzOWY7XG4gICAgfVxuXG4gICAgJiNsb25kb24sXG4gICAgJi5sb25kb24ge1xuXHQgICAgZmlsbDogIzUxOWM5NDtcbiAgICB9XG5cbiAgICAmI3NvdXRoV2VzdCxcbiAgICAmLnNvdXRoV2VzdCB7XG5cdCAgICBmaWxsOiAjMzg5NjhiO1xuICAgIH1cblxuICAgICYjc291dGhFYXN0LFxuICAgICYuc291dGhFYXN0IHtcblx0ICAgIGZpbGw6ICMzNjc3NzA7XG4gICAgfVxufVxuXG4uaG90c3BvdE1hcCB7XG5cdHBhZGRpbmc6IDUwcHggMDtcblxuXHQuc3ZnQ29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcblxuICAgICAgICBAbWVkaWEgQHRhYmxldCB7XG4gICAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNzAlO1xuICAgIFx0fVxuXG4gICAgXHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICBcdH1cblx0fVxuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG5cdEBtZWRpYSBAdGFibGV0IHtcblxuICAgIFx0c3ZnIHtcbiAgICAgICAgXHR3aWR0aDogMTAwJTtcbiAgICAgICAgXHRtYXJnaW46IDAgYXV0bztcbiAgICAgICAgXHRoZWlnaHQ6IGF1dG87XG4gICAgICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICBcdH1cblx0fVxuXG5cdEBtZWRpYSBAbW9iaWxlIHtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgXHRzdmcge1xuICAgICAgICBcdHdpZHRoOiA4MCU7XG4gICAgICAgIFx0aGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgXHR9XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBOZXdzIFBhZ2UgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYm94IHtcblxuXHRmbG9hdDogbGVmdDtcblx0d2lkdGg6IDMyJTtcblx0bWFyZ2luOiAxMHB4IDA7XG5cdG1hcmdpbi1yaWdodDogMiU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0JjpudGgtY2hpbGQoM24pIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHQmOm50aC1jaGlsZCg0bikge1xuXHRcdC8vY2xlYXI6IGxlZnQ7XG5cdH1cblxuXHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIFx0d2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICAgICAgcGFkZGluZzogMTBweCAwIDAgMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFRUU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDo1MCU7XG4gICAgICAgICAgICAgICAgLy9taW4taGVpZ2h0OjEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICAvL2xlZnQ6NTAlO1xuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlKDAlLCAtNTAlKSk7XG4gICAgICAgICAgICAgICAgLy9taW4td2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICAvL21heC13aWR0aDogMTUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXHR9XG5cblx0Ji5uZXdzIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQuY2FwdGlvbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAxNXB4O1xuXHRcdFx0Ym90dG9tOiAxNXB4O1xuXHRcdFx0cGFkZGluZzogMTVweDtcblx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiBAcHJpbWFyeUNvbG9yO1xuXHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHQucmVtcygxNSk7XG5cblx0XHRcdEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgXHRcdFx0YmFja2dyb3VuZDogI0ZGRjtcbiAgICBcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRcdFx0bGVmdDogYXV0bztcbiAgICBcdFx0XHRib3R0b206IGF1dG87XG4gICAgXHRcdFx0cmlnaHQ6IDA7XG4gICAgXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHRcdFx0cGFkZGluZzogMDtcbiAgICBcdFx0XHRmbG9hdDogcmlnaHQ7XG4gICAgXHRcdFx0Y29sb3I6ICMzMzM7XG4gICAgXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdH1cblxuXHRcdFx0aDUge1xuXHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0Zm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblx0XHRcdFx0LnJlbXMoMTYpO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMThweDtcblxuXHRcdFx0XHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIFx0XHRcdFx0Y29sb3I6ICM2NjY7XG4gICAgXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMTVweDtcblxuXHRcdFx0ICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgXHRcdFx0ICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgXHRcdFx0ICAgIC5yZW1zKDE0KTtcbiAgICBcdFx0XHQgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXHRcdFx0fVxuXG5cdFx0XHQuZGF0ZSB7XG5cdFx0XHRcdC5yZW1zKDEzKTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE1cHg7XG5cblx0XHRcdFx0aSB7XG4gICAgXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICBcdFx0XHRcdGNvbG9yOiAjOTk5O1xuXG4gICAgXHRcdFx0XHRpIHtcbiAgICAgICAgXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgXHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdC50cmFuc2l0aW9uKGFsbCBsaW5lYXIgMzAwbXMpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICBcdFx0d2lkdGg6IDQwJTtcbiAgICBcdFx0ZmxvYXQ6IGxlZnQ7XG4gICAgXHRcdGhlaWdodDogYXV0bztcbiAgICBcdFx0LnRyYW5zaXRpb24obm9uZSk7XG5cdFx0fVxuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdC50cmFuc2Zvcm0oc2NhbGUoMS4xKSk7XG5cblx0XHRcdEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGUoMCwgLTUwJSkpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ubmV3c1BhZ2Uge1xuXG5cdC5zZWN0aW9uIHtcblx0XHRwYWRkaW5nOiA1MHB4IDA7XG5cblx0XHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIFx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdFx0fVxuXHR9XG5cblx0I2pzX25ld3NsZXR0ZXIge1xuICAgIFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5wdWJsaWNhdGlvbnMge1xuICAgIFx0cGFkZGluZzogNTBweCAwO1xuXHRcdC5jbGVhcmZpeCgpO1xuXG5cdFx0QG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICBcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxuXHQuc3Vic2NyaWJlIHtcblx0XHRiYWNrZ3JvdW5kOiBAcHJpbWFyeUdyZWVuIHVybCguLi9pbWFnZXMvbGF5b3V0L25ld3NsZXR0ZXIucG5nKSBjZW50ZXI7XG5cdFx0Y29sb3I6ICNGRkY7XG5cdFx0cGFkZGluZzogMTAwcHggMjBweDtcblx0XHQuY2xlYXJmaXgoKTtcblx0XHRtYXJnaW46MDtcblx0XHRsaW5lLWhlaWdodDogNDBweDtcblxuXHRcdEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbnRlbnQge1xuICAgIFx0XHR3aWR0aDogMTAwJTtcblx0XHQgICAgLmNsZWFyZml4KCk7XG5cdFx0fVxuXG5cdFx0aDIge1xuICAgIFx0XHQucmVtcygzNSk7XG4gICAgXHRcdGZvbnQtZmFtaWx5OiBAcHJpbWFyeUZvbnQ7XG4gICAgXHRcdG1hcmdpbjogMDtcbiAgICBcdFx0ZmxvYXQ6IGxlZnQ7XG4gICAgXHRcdGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgIFx0XHRjb2xvcjogI0ZGRjtcbiAgICBcdFx0dGV4dC1zaGFkb3c6IDFweCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTtcblxuICAgIFx0XHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICBcdFx0LnJlbXMoMjIpO1xuICAgICAgICBcdFx0bWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICBcdFx0fVxuXHRcdH1cblxuXHRcdC5idXR0b25BbHQge1xuICAgIFx0XHRmbG9hdDogcmlnaHQ7XG4gICAgXHRcdG1hcmdpbjogMDtcblxuICAgIFx0XHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICBcdFx0d2lkdGg6IDEzMHB4O1xuICAgICAgICBcdFx0bWFyZ2luOiAwIGF1dG87XG4gICAgICAgIFx0XHRjbGVhcjogYm90aDtcblxuICAgICAgICBcdFx0Ji5yaWdodCB7XG4gICAgICAgIFx0XHQgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIFx0XHQgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIFx0XHR9XG4gICAgXHRcdH1cblx0XHR9XG5cdH1cblxuXHQub3VySW5zaWdodHMge1xuXHRcdC5jbGVhcmZpeCgpO1xuXHRcdG1hcmdpbjogMjBweCAwO1xuXHRcdC5yZW1zKDE3KTtcblx0fVxuXG5cdC5hcmNoaXZlcyB7XG5cblx0XHQuY2xlYXJmaXgoKTtcblx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cblx0XHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIFx0XHQuYm94IHtcbiAgICAgICAgXHRcdGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgIFx0XHRib3JkZXI6IDFweCBzb2xpZCAjRUVFO1xuICAgICAgICBcdFx0cGFkZGluZzogMTBweDtcblxuICAgICAgICBcdFx0LmNhcHRpb24ge1xuICAgICAgICAgICAgXHRcdHBhZGRpbmc6IDA7XG4gICAgICAgIFx0XHR9XG4gICAgXHRcdH1cblx0XHR9XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0aDEge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHR9XG5cbiAgICAgICAgaDQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMGQ3JztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxpc3Qge1xuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFRUU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblx0XHR1bCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFRUU7XG5cbiAgICBcdFx0XHQmLm1vbnRocyB7XG4gICAgICAgIFx0XHRcdGRpc3BsYXk6IG5vbmU7XG4gICAgXHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luOiAwIDEwcHg7XG5cblx0XHRcdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0YSB7XG5cdFx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0LnJlbXMoMjApO1xuXHRcdFx0XHRmb250LWZhbWlseTogQHByaW1hcnlGb250O1xuXHRcdFx0XHRjb2xvcjogIzMzMztcblxuXHRcdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuICAgIFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYWxsIGVhc2UtaW4tb3V0IDMwMG1zKTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGNUY1RjU7XG4gICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc2VsZWN0ZWQge1xuXHRcdFx0XHRcdGNvbG9yOiBAY3RhR3JlZW47XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiBAY3RhR3JlZW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5tb250aHMge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0XHQucmVtcygxNSk7XG5cblx0XHRcdFx0XHQmLnNlbGVjdGVkIHtcblx0XHRcdFx0XHRcdGNvbG9yOiBAY3RhR3JlZW5cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiBAY3RhR3JlZW47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5hcnRpY2xlIHtcblxuICAgIHBhZGRpbmc6IDUwcHggNDBweDtcblxuICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgfVxuXG4gICAgb2wge1xuICAgICAgICBjb3VudGVyLXJlc2V0OiBpdGVtO1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3VudGVycyhpdGVtLCBcIi5cIikgXCIgLSBcIjtcbiAgICAgICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogaXRlbTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6IEBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIC5yZW1zKDE3KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggOHB4IDVweCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGViYXIge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyJTtcblxuICAgICAgICBoNCB7XG4gICAgICAgICAgICAucmVtcygyMCk7XG4gICAgICAgICAgICBjb2xvcjogQHByaW1hcnlHcmVlbjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRUVFO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQGN0YUdyZWVuO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwZDcnO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjBkOCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5uZXIge1xuICAgICAgICB3aWR0aDogNzglO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgLmNsZWFyZml4KCk7XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG5cbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAucmVtcygyNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAucmVtcygxNik7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgLnJlbXMoMTQpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDIwcHg7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBoNSB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgIGNvbG9yOiAjQUFBO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBib2xkO1xuICAgICAgICAgICAgLnJlbXMoMTMpO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuYXR0YWNoZW1lbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMzBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAmLnBkZiB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAucmVtcygyMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxYzEnO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5maWx0ZXItdGFibGUge1xuXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IEBib2xkO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRjFGMUYxO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERDtcbiAgICAgICAgLnJlbXMoMTUpO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgXHRcdHBhZGRpbmc6IDAgMTBweDtcbiAgICBcdFx0Ym9yZGVyOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogQGJvZHlGb250O1xuICAgICAgICAgICAgLnJlbXMoMTMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB7XG5cbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcblxuICAgICAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0YxRjFGMTtcbiAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgICAgICBmb250LWZhbWlseTogQGJvbGQ7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICAgICAgLnJlbXMoMTUpO1xuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMjBweDtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogODBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmZpbHRlclRhYmxlIHtcbiAgICAgICAgICAgIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBPcmRlciBQYWdlICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cbi5vcmRlciB7XG5cblx0LmNsZWFyZml4KCk7XG5cdHBhZGRpbmc6IDIwcHggMDtcblxuXG5cdC50ZXJtc1dyYXAge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdC8vYmFja2dyb3VuZDogI0YxRjFGMTtcblx0XHQuY2xlYXJmaXgoKTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdC50ZXJtc0FuZENvbmRpdGlvbnMge1xuICAgICAgICBcdG1heC1oZWlnaHQ6IDQ5NnB4O1xuICAgICAgICBcdG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBcdG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIFx0cGFkZGluZzogMjBweDtcbiAgICAgICAgXHRkaXNwbGF5OiBub25lO1xuICAgICAgICBcdHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgXHRvbCB7XG4gICAgICAgIFx0XHRtYXJnaW46ICAwO1xuICAgICAgICBcdFx0cGFkZGluZzogMCAwIDAgMjBweDtcbiAgICAgICAgXHR9XG4gICAgICAgIH1cblx0fVxuXG5cdC50ZXJtc2NvbmRpdGlvbnMge1xuXHRcdG1hcmdpbjowO1xuXG5cdFx0bGFiZWwge1xuICAgIFx0XHRwYWRkaW5nOiAwIDIwcHggMCAwO1xuICAgIFx0XHRsaW5lLWhlaWdodDogMzNweDtcblxuICAgIFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIFx0XHRwYWRkaW5nOiAwIDMwcHggMCAwO1xuICAgIFx0XHR9XG5cdFx0fVxuXHR9XG5cblxuXHQuYnV0dG9uQWx0IHtcblx0fVxufVxuXG5mb3JtLnN0eWxlZCB7XG5cbiAgICAudG90YWwge1xuXHRcdGJhY2tncm91bmQ6IEBwcmltYXJ5R3JlZW47XG5cdFx0Y29sb3I6ICNGRkY7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0LmNsZWFyZml4KCk7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cblx0XHRoNSB7XG5cdFx0XHRmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXHRcdFx0LnJlbXMoMjIpO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdHBhZGRpbmc6IDIwcHggMDtcblx0XHRcdG1hcmdpbjogMDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1BsZWFzZSBpbnF1aXJlJztcbiAgICAgICAgICAgIH1cblxuXHRcdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuICAgIFx0XHRcdHBhZGRpbmc6IDIwcHggMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdC5yZW1zKDIyKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cdFx0XHRmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXG5cdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0ZmxvYXQ6IG5vbmU7XG4gICAgXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHRcdFx0cGFkZGluZzogMTBweCAwO1xuICAgIFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgIFx0XHRcdGNsZWFyOiBsZWZ0O1xuICAgICAgICAgICAgfVxuXHRcdH1cblxuXHRcdHNtYWxsIHtcblx0XHRcdGNsZWFyOiByaWdodDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0LnJlbXMoMTEpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHR9XG5cdH1cblxuXG5cdC5icmVhayB7XG5cdFx0bWFyZ2luOiAyMHB4IDA7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXG5cdGg0IHtcblxuXHRcdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHRcdC5yZW1zKDE4KTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdG1hcmdpbjogMTBweCAwO1xuXHRcdGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXG5cdFx0c3BhbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdC5yZW1zKDE3KTtcblx0XHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0XHRpIHtcbiAgICBcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuICAgIFxuXG5cdC5oZWxwIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0YmFja2dyb3VuZDogI0VFRTtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdHdpZHRoOiAyOCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0fVxuXG5cdC5kZXRhaWxzLCAudGVybXMge1xuXHRcdGJhY2tncm91bmQ6ICNFRUU7XG5cdFx0cGFkZGluZzogMjBweDtcblx0XHRjbGVhcjogbGVmdDtcbiAgICB9XG5cbiAgICAuZm9ybVdyYXAge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiA1NiU7XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHdpZHRoOiAxMDAlO1xuICAgIFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIFx0XHQuY2xlYXJmaXgoKTtcbiAgICBcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0LnN1Ym1pdEJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogI0VFRTtcblx0XHRwYWRkaW5nOiAwIDIwcHggMjBweCAyMHB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiA1NiU7XG5cblx0XHQuYnV0dG9uQWx0IHtcbiAgICBcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHdpZHRoOiAxMDAlO1xuICAgIFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuICAgIFx0XHRmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAgICAgICAgIC5idXR0b25BbHQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXHRcdH1cblx0fVxuXG5cdC50ZXJtcyB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0fVxuXG5cdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdC53cmFwcGVyLXN0aWNreSB7XG4gICAgICAgIFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBcdH1cblx0fVxuXG5cdC5wcm9kdWN0cyB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0d2lkdGg6IDQwJTtcblx0XHRiYWNrZ3JvdW5kOiAjRUVFO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cbiAgICAgICAgLmlucHV0V3JhcCB7XG5cbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zZWxlY3RlZCB7XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdCB7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnUGxlYXNlIGlucXVpcmUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXHRcdC5yZW5ldyAmIHtcbiAgICBcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0QG1lZGlhIEBtb2JpbGUge1xuXG4gICAgXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cblx0XHR9XG5cblx0XHRoNCB7XG4gICAgXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0fVxuXG5cdFx0LnJvdyB7XG4gICAgXHRcdG1hcmdpbi1ib3R0b206ICAwO1xuICAgIFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblxuXHRcdC5pdGVtLCAuc3Vic2NyaXB0aW9uSXRlbSB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xuXHRcdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHQucmVtcygxOCk7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0LmNsZWFyZml4KCk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0cGFkZGluZzogMCAxNnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC50ZXh0IHtcbiAgICBcdFx0bWFyZ2luOiA1cHggMDtcblx0XHR9XG5cblx0XHQuc2VsZWN0ZWQgLml0ZW0sIC5zdWJzY3JpcHRpb25JdGVtLCAuc3Vic2NyaXB0aW9uSXRlbSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG5cdFx0XHRjb2xvcjogI2ZmZmZmZjtcblxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcblx0XHRcdFx0Y29udGVudDogJ1xcZjAwYyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdCAgICB0b3A6IDIwcHg7XG5cdFx0XHQgICAgcmlnaHQ6IDYwcHg7XG5cdFx0XHRcdC5yZW1zKDEzNSk7XG5cdFx0XHRcdGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpO1xuXG5cdFx0XHRcdEBtZWRpYSBAbW9iaWxlIHtcblx0XHRcdCAgICAgICAgdG9wOiAtMjBweDtcbiAgICBcdFx0XHRcdHJpZ2h0OiAtMTBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQucHJpY2Uge1xuXHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdH1cblx0XHR9XG5cbiAgICAgICAgLnN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0cGFkZGluZzogMjBweDtcblx0XHRcdGZvbnQtZmFtaWx5OiBAYm9sZDtcblxuXHRcdFx0JjphZnRlciB7XG4gICAgXHRcdFx0dG9wOiAtNzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cdFx0LnRleHQge1xuXHRcdFx0d2lkdGg6IDcwcHg7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW46IDlweCAwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHRcdFx0bWFyZ2luOiAwO1xuICAgIFx0XHRcdGZsb2F0OiBub25lO1xuICAgIFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnByb2R1Y3Qge1xuXHRcdFx0cGFkZGluZzogMjBweCAwO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogbGVmdDtcblxuXHRcdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5wcmljZSB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHQucmVtcygyMik7XG5cdFx0XHRmb250LWZhbWlseTogQHNlbWlCb2xkO1xuXHRcdFx0Y29sb3I6IEBjdGFHcmVlbjtcblx0XHRcdGxpbmUtaGVpZ2h0OiA2MXB4O1xuXG5cdFx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRcdFx0ZmxvYXQ6IG5vbmU7XG4gICAgXHRcdFx0Y2xlYXI6IGJvdGg7XG4gICAgXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzFweDtcbiAgICBcdFx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzbWFsbCB7XG5cdFx0XHRmb250LWZhbWlseTogQGxpZ2h0O1xuXHRcdFx0LnJlbXMoMTUpO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRjbGVhcjogcmlnaHQ7XG5cblx0XHRcdEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0XHR3aWR0aDogMTAwJTtcbiAgICBcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIFx0XHRcdC5yZW1zKDEyKTtcbiAgICBcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC50ZXJtcyB7XG4gICAgXHRcdC5yZW1zKDEzKTtcbiAgICBcdFx0cGFkZGluZzogMCA1cHg7XG5cbiAgICBcdFx0c3Ryb25nIHtcbiAgICAgICAgXHRcdC5yZW1zKDE2KTtcbiAgICBcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5idXR0b25BbHQge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLndoaXRlUm93IHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAucmVtcygxOCk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAuY2xlYXJmaXgoKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTFweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuXG4gICAgLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3Age1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNob3Nlbi1jb250YWluZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0RERDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTG9naW4gUGFnZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5sb2dpbiB7XG5cblx0cGFkZGluZzogMTAwcHggMDtcblx0LmNsZWFyZml4KCk7XG5cblx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0cGFkZGluZzogMzBweCAwO1xuICAgIFx0LmNsZWFyZml4KCk7XG5cdH1cblxuXHRmb3JtIHtcblx0XHQuY2xlYXJmaXgoKTtcblx0XHRiYWNrZ3JvdW5kOiAjRUVFO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHdpZHRoOiA0NSU7XG5cblx0XHRAbWVkaWEgQG1vYmlsZSB7XG4gICAgXHRcdHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIFx0LmJ1dHRvbkFsdCB7XG4gICAgICAgIFx0XHR3aWR0aDogMTAwJTtcbiAgICAgICAgXHRcdG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIFx0XHRmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgIFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jb250ZW50IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogNDUlO1xuXG5cdFx0QG1lZGlhIEBtb2JpbGUge1xuICAgIFx0XHR3aWR0aDogMTAwJTtcbiAgICBcdFx0cGFkZGluZzogMCAwIDIwcHggMDtcblx0XHR9XG5cdH1cblxuXHRsaSB7XG4gICAgXHQgbWFyZ2luOiAwIDQwcHggMCAwO1xuICAgIFx0IGZsb2F0OiBsZWZ0O1xuICAgIFx0IC5yZW1zKDIwKTtcblxuICAgIFx0IEBtZWRpYSBAbW9iaWxlIHtcbiAgICBcdFx0LnJlbXMoMTcpO1xuXHRcdCAgfVxuXG4gICAgXHQgaSB7XG4gICAgICAgIFx0IG1hcmdpbi1yaWdodDogNXB4O1xuICAgIFx0IH1cblx0fVxuXG5cdGEge1xuICAgIFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogQGN0YUdyZWVuO1xuICAgIFx0fVxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQ2xpZW50IERhc2hib2FyZCAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5kYXNoQmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogI0YxRjFGMTtcblxuICAgIC5sb2dvIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgfVxuXG4gICAgLndyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5mb290ZXIgLmxvZ28ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG59XG5cbi5kYXNoYm9hcmQge1xuXG4gICAgbWFyZ2luOiA0MHB4IDIwcHg7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuXG4gICAgICAgICYubGVmdCB7XG4gICAgICAgICAgICB3aWR0aDogNDUlO1xuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndlbGNvbWUge1xuXG4gICAgICAgIC5jbGVhcmZpeCgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuXG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDI0cHg7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgLnJlbXMoMTUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWVzc2FnZXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbihAcHJpbWFyeUdyZWVuLDclKTtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKEBwcmltYXJ5R3JlZW4sMTUlKTtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY291bnQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogLTVweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTVweDtcbiAgICAgICAgICAgICAgICAucmVtcygxMSk7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBib2xkO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgdG9wOiAxOXB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM2NzdGNjc7XG4gICAgICAgICAgICAgICAgei1pbmRleDo1MDAxO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgLnJlbXMoMjMpO1xuXG4gICAgICAgICAgICAgICAgc3Bhbi50ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWNjb3VudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbihAY3RhR3JlZW4sNSUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja3Mge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDIzLjUlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDIlIDIwcHggMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAudHJhbnNpdGlvbihiYWNrZ3JvdW5kIGVhc2UtaW4tb3V0IDMwMG1zKTtcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0OSU7XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgLnJlbXMoMjUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCAwIDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgLnJlbXMoNDApO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCAwIDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNG4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5R3JlZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5maWx0ZXIge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAbWVkaWEgQGZ1bGxUb1RhYmxldCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBoNCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwIDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucm93IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcGVuRmlsdGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFRUU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZmlsdGVyV3JhcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAgICAgJiNmaWx0ZXJzUmVnaW9uIHtcbiAgICAgICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjY2NjY2NjO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZmlsdGVycyA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZmlsdGVycyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUVFO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAzOXB4O1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgICAgIHdpZHRoOiAzMzNweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDYwMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMyU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ1dHRvbkFsdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgICAgICAucmVtcygxNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudXNlcnMge1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbi8qXG4gICAgICAgIC50YWJsZVdyYXAge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNBOUM0QTk7XG4gICAgICAgIH1cbiovXG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICB9XG5cbiAgICAgICAgdGgsIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0U3RjJFNztcblxuICAgICAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0VGRjRFRjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4vKlxuICAgIGgxIHtcbiAgICAgICAgLnJlbXMoMjUpO1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAucmVtcygxMik7XG4gICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgfVxuICAgIH1cbiovXG5cbiAgICAuYnV0dG9ucyB7XG5cbiAgICAgICAgcGFkZGluZzogMCAwIDIwcHggMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUU7XG4gICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgLmNsZWFyZml4KCk7XG5cbiAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDEwcHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuXG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0OSU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcblxuXG4gICAgICAgICAgICAmLmxvY2F0aW9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQGN0YUdyZWVuO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDklO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYmFja2dyb3VuZCBlYXNlLWluLW91ciAzMDBtcyk7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDEyKTtcblxuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjMyMzIzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1lbWJlcnNoaXAge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogQGN0YUdyZWVuO1xuICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIHdpZHRoOiAzODBweDtcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm9yYW5nZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQGN0YU9yYW5nZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFSZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAudGV4dC5zZWFyY2gge1xuICAgICAgICAgICAgLnJlbXMoMTQpO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCAwIDAgNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgICAgIHdpZHRoOiA5MiU7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvblNlYXJjaCB7XG4gICAgICAgICAgICB3aWR0aDogOCU7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggNXB4O1xuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdGF0aXN0aWNzIHtcbiAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0VFRTtcblxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIC5jYXJvdXNlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdGF0cyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMCAwO1xuICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRUVFO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvIDA7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAzcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0RERDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGljay1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stdHJhY2sge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuICAgICAgICAuc3RhdCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAzMyU7XG4gICAgICAgICAgICBtYXJnaW46IDAgMyUgMCAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0VFRTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAyM3B4IDIwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKEBjdGFHcmVlbiw1JSk7XG4gICAgICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIC5yZW1zKDIwKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDE4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgLnJlbXMoMTUpO1xuICAgICAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAcHJpbWFyeUZvbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5udW1iZXJzIHtcblxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICAucmVtcygyNSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1zKDI1KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAucmVtcygxNyk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hhcnRzIHtcblxuICAgICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMCAyMHB4O1xuICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLm1vYmlsZSB7XG5cbiAgICAgICAgICAgIC5jb2x1bW4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0OCU7XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG5cbiAgICAgICAgICAgICAgICAubWFwR3JhcGggLnBvaW50cyAucG9pbnQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY29sdW1uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNoYXJ0V3JhcCB7XG4gICAgICAgICAgICAgICAgICAgIC5jYW52YXNXcmFwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5mdWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jaGFydCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0xMDAlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFRUU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2xpY2stYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByZXZDaGFydHMsIC5uZXh0Q2hhcnRzIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgICAgIC5yZW1zKDMwKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgICAgICAgIC5yZW1zKDIyKTtcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJldkNoYXJ0cyB7XG4gICAgICAgICAgICBsZWZ0OiAtMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXh0Q2hhcnRzIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgIH1cblxuICAgICAgICBoNCB7XG4gICAgICAgICAgICAucmVtcygxOCk7XG4gICAgICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YxRjFGMTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0NDQztcbiAgICAgICAgICAgICAgICAucmVtcygxMyk7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBzZW1pQm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgLnJlbXMoMTIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0VFRTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJvdXNlbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgICB3aWR0aDogNTglO1xuXG4gICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDAlO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBmdWxsVG9UYWJsZXQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAZnVsbFRvVGFibGV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5sZWZ0IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wb2ludHNHcm91cCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcFdyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDA7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAZnVsbFRvVGFibGV0IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFwR3JhcGgge1xuXG4gICAgICAgICAgICBtYXJnaW46IDRweCBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAZnVsbFRvVGFibGV0IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ0MHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICBcdC5zdmdDb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAZnVsbFRvVGFibGV0IHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0NDBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgXHR9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJlZ2lvbiB7XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYWxsIGVhc2UtaW4tb3V0IDMwMG1zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvaW50cyB7XG4gICAgICAgICAgICAgICAgLnBvaW50IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgICAgICAucmVtcygxNCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubmVnYXRpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkY2ODVFO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zY290bGFuZCB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDU1JTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAyNSU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmlyZWxhbmQge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTglO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ub3J0aGVybklyZWxhbmQge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyOSU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDAlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ub3J0aFdlc3Qge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1NiU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDklO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ub3J0aEVhc3Qge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA2OCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMzglO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC55b3Jrc2hpcmUge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA3MSU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDklO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5lYXN0TWlkbGFuZHMge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA3NCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNjElO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53ZXN0TWlkbGFuZHMge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA2MyU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNjYlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53YWxlcyB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUyJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA2OCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmVhc3RPZkVuZ2xhbmQge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA4NyU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNjclO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zb3V0aEVhc3Qge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA3MyU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogODUlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sb25kb24ge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA3OSU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNzclO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zb3V0aFdlc3Qge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1NSU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogODQlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmNoYXJ0V3JhcCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICAgICAmLmZ1bGwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLmNoYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2FudmFzV3JhcCB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ5JTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNoYXJ0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50b2dnbGVSb29tcyxcbiAgICAgICAgICAgIC50b2dnbGVIb3RlbHMge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2hhcnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICB1bCB7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwO1xuICAgICAgICAgICAgICAgICAgICAucmVtcygxNCk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTFweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREQ7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcblxuICAgICAgICAgICAgICAgICAgICAmLnBlcmNlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5sZWZ0TGVnZW5kIHtcblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmZ1bGwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBmdWxsVG9UYWJsZXQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5sZWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6IDIyJTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5ndWlkZXMge1xuICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNDBweDtcblxuICAgICAgICAmLnJpZ2h0IHtcblxuICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDIlIDEwcHggMDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDglO1xuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAgMTBweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjREREO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDEwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIC5yZW1zKDI1KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjFGMUYxO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgICAgICAgICAgIC50cmFuc2l0aW9uKGFsbCBlYXNlLWluLW91dCAzMDBtcyk7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgQGZ1bGxEb3duIHtcbiAgICAgICAgICAgICAgICAgICAgLnJlbXMoMjApO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDQ1KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLm5ld3NXcmFwIHtcbiAgICAgICAgd2lkdGg6IDc4JTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQG1lZGlhIEBmdWxsVG9UYWJsZXQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjbmV3c0JveCB7XG4gICAgICAgICAgICAudHJhbnNpdGlvbihvcGFjaXR5IDMwMG1zIGVhc2UtaW4tb3V0KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuYXJ0aWNsZXNXcmFwIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvYWRpbmcge1xuICAgICAgICAgICAgcGFkZGluZzogNTBweCAwO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC5yZW1zKDE2KTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAYm9keUZvbnQ7XG4gICAgICAgICAgICBjb2xvcjogIzY2NjtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5lbXB0eSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAucmVtcygxOCk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFydGljbGVzIHtcbiAgICAgICAgICAgIC5jbGVhcmZpeCgpO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAbWVkaWEgQGZ1bGxUb1RhYmxldCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2x1bW4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICAgICAgICBtYXJnaW46IDAgMiUgMjBweCAwO1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAub3ZlcmxheSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICByZ2JhKDAsMCwwLDApIDUlLCByZ2JhKDAsMCwwLDAuNDcpIDU4JSwgcmdiYSgwLDAsMCwwLjg1KSAxMDAlKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICByZ2JhKDAsMCwwLDApIDUlLHJnYmEoMCwwLDAsMC40NykgNTglLHJnYmEoMCwwLDAsMC44NSkgMTAwJSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIHJnYmEoMCwwLDAsMCkgNSUscmdiYSgwLDAsMCwwLjQ3KSA1OCUscmdiYSgwLDAsMCwwLjg1KSAxMDAlKTtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyNkOTAwMDAwMCcsR3JhZGllbnRUeXBlPTAgKTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICBcdFx0XHRAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICBcdFx0XHR3aWR0aDogNzAlO1xuICAgICAgICBcdFx0XHRmbG9hdDogcmlnaHQ7XG4gICAgICAgIFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgXHRcdFx0dG9wOiAwO1xuICAgICAgICBcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHhcbiAgICBcdFx0XHR9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kYXRlIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgICAgICAgICAgLnJlbXMoMTIpO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luOiAzMXB4IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAxMHB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDVweCAxMHB4IDVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFRUU7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgICAgICAgICAgICAgICAucmVtcygxNCk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMzAwbXMpO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuYWN0aXZlLCAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWdzIHtcblxuICAgICAgICAudGFnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4IDEwcHggMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAucmVtcygxMik7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRUVFO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjI5LDIyOSwyMjksMSkgMTAwJSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLHJnYmEoMjI5LDIyOSwyMjksMSkgMTAwJSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDIyOSwyMjksMjI5LDEpIDEwMCUpO1xuICAgICAgICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2U1ZTVlNScsR3JhZGllbnRUeXBlPTAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xuXG4gICAgICAgIEBtZWRpYSBAZnVsbFRvVGFibGV0IHtcbiAgICAgICAgICAgIHdpZHRoOiA0OSU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGMUYxRjE7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgLnJlbXMoMTgpO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIC5yZW1zKDE0KTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNtYWxsIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxNXB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFibGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzN3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubG9jYXRpb24ge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIC5yZW1zKDE0KTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFibGUge1xuXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0ciB7XG5cbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0U3RjJFNztcblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNBOUM0QTk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0MTUxNDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzIzMjMyMztcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ldmVudHMge1xuXG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIEBtZWRpYSBAZnVsbFRvVGFibGV0IHtcbiAgICAgICAgICAgIHdpZHRoOiA0OSU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgLnJlbXMoMjApO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIFx0dG9wOiAxMDAlO1xuICAgICAgICAgICAgXHRsZWZ0OiAxNiU7XG4gICAgICAgICAgICBcdGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBcdGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgXHRoZWlnaHQ6IDA7XG4gICAgICAgICAgICBcdHdpZHRoOiAwO1xuICAgICAgICAgICAgXHRtYXJnaW46IDA7XG4gICAgICAgICAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBcdGJvcmRlci1jb2xvcjogcmdiYSgxMzYsIDE4MywgMjEzLCAwKTtcbiAgICAgICAgICAgIFx0Ym9yZGVyLXRvcC1jb2xvcjogQGN0YUdyZWVuO1xuICAgICAgICAgICAgXHRib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBcdG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgICAgIFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBcdGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0YxRjFGMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjREREO1xuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxN3B4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXYsIHAsIGEge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAyMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIC5yZW1zKDE0KTtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogM3B4IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgLnJlbXMoMTgpO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAc2VtaUJvbGQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAucmVtcygxNCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZGF0ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIC5yZW1zKDE0KTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogQGN0YUdyZWVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b25BbHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oZWxwIHtcblxuICAgICAgICAuc2lkZWJhciwgLnJlbGF0ZWQge1xuICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIC5yZW1zKDE4KTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNpZGViYXIge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMTglO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRUVFO1xuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRUVFO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcblxuICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMCA4cHggMzBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwZDcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMGQ4JztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwIDVweCAzMHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgI2hlbHBWaWRlbyB7XG4gICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICBtYXgtd2lkdGg6IDcxMHB4O1xuICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgfVxuXG4gICAgICAgIC5yZWxhdGVkIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDE4JTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyJTtcblxuICAgICAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNjc3RjY3O1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQHByaW1hcnlGb250O1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hcnRpY2xlIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDU4JTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICAgICAgICAgICAgLnJlbXMoMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcblxuICAgICAgICAgICAgJi5mdWxsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcblxuICAgICAgICAgICAgICAgICYuZnVsbCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ1dHRvbkFsdCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDI1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICAucmVtcygzMCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgLnJlbXMoMjUpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGVmdC5wYWRkZWQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yaWdodC5wYWRkZWQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlbHBTZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gaDQge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgLnJlbXMoMjApO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwNjcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAucmVtcygxNik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLm9wZW4ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMDY4JztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgICAgIC5yZW1zKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IEBjdGFHcmVlbjtcblxuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5oZWxwU2VjdGlvbiB7XG5cbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICAgICA+IGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFRUU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYmFja2dyb3VuZCAzMDBtcyBlYXNlLWluLW91dCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudHJhbnNpdGlvbihiYWNrZ3JvdW5kIDMwMG1zIGVhc2UtaW4tb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmV4cGFuZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5pZ25vcmUge1xuXG4gICAgICAgICAgICAgICAgICAgID4gaDQ6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGFibGUge1xuXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyIHtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1zKDE1KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBib2xkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvbCB7XG4gICAgICAgIFx0XHRtYXJnaW46ICAwO1xuICAgICAgICBcdFx0cGFkZGluZzogMCAwIDAgMjBweDtcbiAgICAgICAgXHR9XG4gICAgICAgIH1cblxuICAgICAgICAudmlkZW9TZWN0aW9uIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0VFRTtcblxuICAgICAgICAgICAgLnZpZGVvIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiA1cHggc29saWQgI0VFRTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgICAgIC5yZW1zKDI1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZhcSB7XG5cbiAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgLnJlbXMoMTgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYWxsIGVhc2UtaW4tb3V0IDMwMG1zKTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMDY3JztcbiAgICAgICAgICAgICAgICAgICAgLnJlbXMoMTApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjA2OCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hbnN3ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgLnJlbXMoMTUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmFydGljbGVMaXN0IHtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMGRhJztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuLypcbiAgICAgICAgLmZhcSB7XG5cbiAgICAgICAgICAgIC5jbGVhcmZpeCgpO1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIC5yZW1zKDI3KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGkge1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAucmVtcygxOCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4qL1xuICAgIH1cblxuICAgIC5hZG1pbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgd2lkdGg6IDQ5JTtcblxuICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNjZXNzIHtcblxuICAgICAgICB3aWR0aDogNDklO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgLmNsZWFyZml4KCk7XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICAuY2xlYXJmaXgoKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3RzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZXhwaXJ5RGF0ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjFGMUYxO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBwcmltYXJ5Rm9udDtcbiAgICAgICAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgICAgICAgLmNsZWFyZml4KCk7XG5cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IEBjdGFHcmVlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3Ryb25nLm9yYW5nZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IEBjdGFPcmFuZ2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0cm9uZy5yZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBAY3RhUmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhLm9yYW5nZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQGN0YU9yYW5nZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYS5yZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBjdGFSZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtcyB7XG4gICAgICAgIHdpZHRoOjQ5JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIC5jbGVhcmZpeCgpO1xuXG4gICAgICAgIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAuY2xlYXJmaXgoKTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmllbGRzZXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jY2FsZW5kYXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiByaWdodDtcblxuICAgIHRkLmZjLW90aGVyLW1vbnRoLmZjLWRheS1udW1iZXIge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgIH1cbn1cblxuLm1lc3NhZ2VMaXN0IHtcblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbjogMjBweCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MTUxNDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgLnJlbXMoMjUpO1xuICAgICAgICAgICAgY29sb3I6I0ZGRjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICAuZGVsZXRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICByaWdodDogLTEwcHg7XG4gICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogI2M2MmYwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAucmVtcygxNCk7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWFkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMCAwO1xuICAgICAgICAucmVtcygxNCk7XG4gICAgICAgIGNsZWFyOiBib3RoXG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAyMHB4IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBAcHJpbWFyeUZvbnQ7XG4gICAgICAgIC5jbGVhcmZpeCgpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgY29sb3I6ICM5OTk7XG5cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM2NjY7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEBwcmltYXJ5Rm9udDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZXNzYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBcdGxlZnQ6IDIwcHg7XG4gICAgICAgICAgICBcdGJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgIFx0Ym9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIFx0Y29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBcdGhlaWdodDogMDtcbiAgICAgICAgICAgIFx0d2lkdGg6IDA7XG4gICAgICAgICAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBcdGJvcmRlci1jb2xvcjogcmdiYSgxMDMsIDEyNywgMTAwLCAwKTtcbiAgICAgICAgICAgIFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI0Y5RjlGOTtcbiAgICAgICAgICAgIFx0Ym9yZGVyLXdpZHRoOiA2cHg7XG4gICAgICAgICAgICBcdG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogQHNlbWlCb2xkO1xuICAgICAgICAgICAgLnJlbXMoMTQpO1xuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1hbmFnZUNoYXJ0cyB7XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgIH1cblxuICAgIC5idXR0b25BbHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbjogMTBweCA4cHggMTBweCAxMHB4O1xuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgfVxuXG4gICAgLnJvdzpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGMUYxRjE7XG4gICAgfVxufVxuXG4ubG9zdFBhZ2Uge1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDUwcHggNDBweDtcblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbjogNDBweCBhdXRvO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgLnJlbXMoMjIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbn1cblxuLmRvd25sb2FkcyB7XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXJlYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgLnJlbXMoMTgpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1mYW1pbHk6IEBib2xkO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMDY3JztcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICAgICAgICAgICAgLnJlbXMoMTMpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgIGNvbG9yOiBAY3RhR3JlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmLm9wZW4ge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjA2OCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogQHByaW1hcnlHcmVlbjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgQHByaW1hcnlHcmVlbjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBwcmltYXJ5R3JlZW47XG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQHByaW1hcnlHcmVlbjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgQHByaW1hcnlHcmVlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRTdGMkU3O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5kYXNoYm9hcmQge1xuXG4gICAgLnN0YXRpc3RpY3Mge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubWFya2V0RHJvcGRvd24ge1xuICAgIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSwgLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi13aXRoLWRyb3Age1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjREREO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG5cbiAgICAgICAgJiNkYXRhYmFzZV9tYXJrZXRfbG9jYXRpb25zX2Nob3NlbiB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmI2RhdGFiYXNlX21hcmtldF9sb2NhdGlvbnNfMl9jaG9zZW4ge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaG9zZW4tcmVzdWx0cyB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgJi5ncm91cGluZ19vcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJpbWFyeUdyZWVuO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1yZXN1bHRzIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgJi5ncm91cGluZ19vcHRpb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwcmltYXJ5R3JlZW47XG4gICAgICAgICAgICAgICAgJjpub3QoLnJlc3VsdC1zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQHByaW1hcnlHcmVlbiwgNSUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5yZXN1bHQtc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkZXNhdHVyYXRlKEBwcmltYXJ5R3JlZW4sIDQwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5ncm91cC1yZXN1bHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEycHggN3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmdyb3VwLW9wdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZS1yZXN1bHQsICYucmVzdWx0LXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5ncm91cC1vcHRpb24ge1xuICAgICAgICAgICAgICAgICYuYWN0aXZlLXJlc3VsdCwgJi5yZXN1bHQtc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3Rpb25zRmlsdGVyc1dyYXAge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNob3Nlbi1jb250YWluZXIge1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZW1vdmUtYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbnB1dFdyYXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxufVxuIiwiLypcbiAqXG4gKlxuICogICAgWm9vbSBQbHVnaW5cbiAqICAgIENTUyBpbiBiZXRhLCBuZWVkcyBjbGVhbmluZ1xuICpcbiAqL1xuXG4uem9vbUNvbnRhaW5lciB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAuem9vbSB7XG5cbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvcnRhbCB7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5sb2FkZXIge1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kIDogcmdiYSgyNTUsMjU1LDI1NSwwLjUpO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jbGlja1RvTG9hZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi8qXHRCaWdWaWRlbyBTdHlsZXNcblx0WW91IG1heSBuZWVkIHRvIGFkanVzdCB0aGVzZSBzdHlsZXMgdG8gZ2V0IHRoaXMgd29ya2luZyByaWdodCBpbiB5b3VyIGRlc2lnbi5cbiovXG4jYmlnLXZpZGVvLXdyYXB7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowOyB6LWluZGV4OiAyfVxuI2JpZy12aWRlby12aWQsI2JpZy12aWRlby1pbWFnZXtwb3NpdGlvbjphYnNvbHV0ZTt9XG4jYmlnLXZpZGVvLWNvbnRyb2wtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3BhZGRpbmc6MTBweDt3aWR0aDoxMDAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjUpO1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246MC42czstbW96LXRyYW5zaXRpb24tZHVyYXRpb246MC42czstbXMtdHJhbnNpdGlvbi1kdXJhdGlvbjowLjZzOy1vLXRyYW5zaXRpb24tZHVyYXRpb246MC42czt0cmFuc2l0aW9uLWR1cmF0aW9uOjAuNnM7IGRpc3BsYXk6IG5vbmU7ZGlzcGxheTpub25lIWltcG9ydGFudDsgfVxuI2JpZy12aWRlby1jb250cm9se3dpZHRoOjEwMCU7aGVpZ2h0OjE2cHg7cG9zaXRpb246cmVsYXRpdmU7ICBkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyB9XG4jYmlnLXZpZGVvLWNvbnRyb2wtbWlkZGxle21hcmdpbjogMCA1NnB4IDAgMjRweDt9XG4jYmlnLXZpZGVvLWNvbnRyb2wtYmFye3dpZHRoOjEwMCU7aGVpZ2h0OjE2cHg7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7fVxuI2JpZy12aWRlby1jb250cm9sLXByb2dyZXNze3Bvc2l0aW9uOmFic29sdXRlO3RvcDo3cHg7aGVpZ2h0OjNweDt3aWR0aDowJTtiYWNrZ3JvdW5kOiNmZmY7fVxuI2JpZy12aWRlby1jb250cm9sLXRyYWNre3Bvc2l0aW9uOmFic29sdXRlO3RvcDo4cHg7aGVpZ2h0OjFweDt3aWR0aDoxMDAlO2JhY2tncm91bmQ6I2ZmZjt9XG4jYmlnLXZpZGVvLWNvbnRyb2wtYm91bmQtbGVmdHtsZWZ0OjA7fVxuI2JpZy12aWRlby1jb250cm9sLWJvdW5kLXJpZ2h0e3JpZ2h0Oi0xcHh9XG4jYmlnLXZpZGVvLWNvbnRyb2wtdHJhY2sgLnVpLXNsaWRlci1oYW5kbGUge29wYWNpdHk6MDt9XG4jYmlnLXZpZGVvLWNvbnRyb2wtcGxheWhlYWR7bGVmdDozMCU7fVxuI2JpZy12aWRlby1jb250cm9sLXBsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoJ2JpZ3ZpZGVvLnBuZycpO31cbiNiaWctdmlkZW8tY29udHJvbC10aW1lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MXB4O3JpZ2h0OjA7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDt9XG4jYmlnLXZpZGVvLWNvbnRyb2wtcGxheWhlYWQsI2JpZy12aWRlby1jb250cm9sLWJvdW5kLWxlZnQsI2JpZy12aWRlby1jb250cm9sLWJvdW5kLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDoxNnB4O3dpZHRoOjFweDtiYWNrZ3JvdW5kOiNmZmY7fVxuI2JpZy12aWRlby1jb250cm9sIC51aS1zbGlkZXItaGFuZGxle2JvcmRlci1sZWZ0OnNvbGlkIDFweCAjZmZmOyB3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOHB4O31cbi50cmFuc3BhcmVudHstbXMtZmlsdGVyOlwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKTstbW96LW9wYWNpdHk6MDsta2h0bWwtb3BhY2l0eTowO29wYWNpdHk6MDt9XG4jYmlnLXZpZGVvLXdyYXAgLnZqcy1iaWctcGxheS1idXR0b257ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVxuLnZqcy1jb250cm9sLWJhciwgLnZqcy1oaWRkZW4geyBkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyB9XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNsaWNrIFN0eWxlcyAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIC5zbGljay10cmFjaywgLnNsaWNrLWxpc3Qge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgfVxufVxuXG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBvdXRsaW5lOiAwO1xuXG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5zbGljay1sb2FkaW5nIHtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuW2Rpcj0ncnRsJ10gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyogTW9iaWxlICovXG5cbkBtZWRpYSBAbW9iaWxlIHtcblxuICAgIHRhYmxlIHtcblxuICAgICAgICAmLnJlc3BvbnNpdmUge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIHRoLCB0ZCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBpbm5lZCB7XG5cbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlV3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VlZTtcblxuICAgICAgICAuc2Nyb2xsYWJsZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMzUlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5waW5uZWQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWU7XG5cbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG5cbiAgICAgICAgICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGQge1xuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiXG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBNYWtlIHlvdXIgY2hhbmdlcyBpbiBtdGNfc3R5bGUubGVzcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIC5lbXMoMzIpO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgLnJlbXMoMTMpO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgLmVtcygxNik7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBFbmQgb2Ygbm9ybWFsaXNlIGNvZGUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5pbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4jbWFwIGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG50ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLmx0LWllNyBpbnB1dCB7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xufVxuXG4ubHQtaWU4IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEJhc2UgU3R5bGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuKiB7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbXMtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDYyO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBUZXh0IFNlbGVjdGlvbiBDb2xvdXJzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuOjotbW96LXNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogIzBmNTVjNDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICMwZjU1YzQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogSG9yaXpvbnRhbCBSdWxlICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuaHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0VFRTtcbiAgICBjb2xvcjogIzMzMztcbiAgICBtYXJnaW46IDJlbSAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbnAge1xuICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIG91dGxpbmU6IDA7XG59XG5cbmE6aG92ZXIsIGE6YWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEZvcm0gU3R5bGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZm9ybSB7XG5cbiAgICBmaWVsZHNldCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGxlZ2VuZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuaW5wdXQsIHRleHRhcmVhIHtcbiAgICAucGxhY2Vob2xkZXIoIzk5OSk7XG59XG5cbnRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG4ubHQtaWU3IGlucHV0IHtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xufVxuXG4ubHQtaWU4IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5pbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgbGFiZWwge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbnNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5yb3cge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDE1cHg7XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiA5cHggMDsgLy8gOXB4IHBhZGRpbmcgMSBtb3JlIHRoYW4gdGhlIGlucHV0IGFzIHRoZSBpbnB1dCBoYXMgYSAxcHggYm9yZGVyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5pbnB1dFdyYXAge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnRleHQsIHRleHRhcmVhLCBzZWxlY3QsIC5jaG9zZW4tc2VhcmNoIGlucHV0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5jaG9zZW4tY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgICAgYmFja2dyb3VuZDogI0U3RTdFNztcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAjRTdFN0U3O1xuICAgIH1cbn1cblxuLmJ1dHRvbklubGluZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuaW5wdXRXcmFwIHtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICB9XG5cbiAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiA5cHggMTBweDtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBAbWVkaWEgQG1vYmlsZSB7XG5cbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLmlucHV0V3JhcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvcm1JbmxpbmUge1xuXG4gICAgLnJvdyB7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dFdyYXAge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMiU7XG4gICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1vYmlsZUNob3NlbiB7XG5cbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmNoZWNrYm94Um93IHtcblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbklubGluZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDIlO1xuICAgICAgICB3aWR0aDogNzAlO1xuXG4gICAgICAgIC5pbnB1dFdyYXAge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcblxuICAgICAgICAucm93IHtcblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaW5wdXRXcmFwIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbklubGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5maWxlVXBsb2FkIHtcblxuICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmZpbGVOYW1lIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaW5wdXRFcnJvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaW5wdXQsIHRleHRhcmVhIHtcbiAgICAgICAgLnBsYWNlaG9sZGVyKCNCOTRBNDgpO1xuICAgIH1cblxuICAgIC50ZXh0LCB0ZXh0YXJlYSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjRUVEM0Q3ICFpbXBvcnRhbnQ7XG4vLyAgICAgICAgIGJhY2tncm91bmQ6ICNGMkRFREU7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjRUVEM0Q3ICFpbXBvcnRhbnQ7XG4vLyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkRFREU7XG4gICAgfVxuXG4gICAgJi5zaG93RXJyb3Ige1xuXG4gICAgICAgIC50ZXh0IHtcblxuICAgICAgICAgICAgJjpmb2N1cyB7XG5cbiAgICAgICAgICAgICAgICArIC5lcnJvcldyYXAge1xuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLm9wYWNpdHkoMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgLnRyYW5zaXRpb24ofid2aXNpYmlsaXR5IDBzIGxpbmVhciAyMDBtcywgb3BhY2l0eSAyMDBtcyBlYXNlIDBzLCBoZWlnaHQgMHMgbGluZWFyIDIwMG1zJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZXJyb3JXcmFwIHtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgLm9wYWNpdHkoMSk7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAudHJhbnNpdGlvbkRlbGF5KDBzKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAyJSAwIDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmVycm9yV3JhcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjb2xvcjogI0I5NEE0ODtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAgICAgJjpob3ZlciArIHNwYW4ge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgLm9wYWNpdHkoMSk7XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb25EZWxheSgwcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0VFRDNENztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjJERURFO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgLm9wYWNpdHkoMCk7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICAgICAgei1pbmRleDogNDtcblxuICAgICAgICAgICAgLnRyYW5zaXRpb24ofid2aXNpYmlsaXR5IDBzIGxpbmVhciAyMDBtcywgb3BhY2l0eSAyMDBtcyBlYXNlIDBzLCBoZWlnaHQgMHMgbGluZWFyIDIwMG1zJyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIC5vcGFjaXR5KDEpO1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb25EZWxheSgwcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm92ZXJsYXlPbklucHV0IHtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNCOTRBNDg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uSW5saW5lICYge1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTQzJVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jYmlsbGluZ0FkZHJlc3NMaXN0Um93IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ubm8tanMgI3Bhc3N3b3JkX3RleHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQ2hhbmdlIEJveCBNb2RlbCAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbioge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBIaWRlIEFudGkgU3BhbSBGaWVsZCAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jb250YWN0Rm9ybSB7XG5cbiAgICAuYW5zd2VyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQ2hlY2tib3hlcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGVja2JveCBpbnB1dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMiU7XG4gICAgcGFkZGluZzogMDtcbiAgICAqaGVpZ2h0OiAxM3B4O1xuICAgICp3aWR0aDogMTNweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBDaGVja2JveCBUb2dnbGUgLSBTaW1pbGFyIHRvIHRoZSBvbmUgc2VlbiBpbiBpT1MgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hlY2tib3hUb2dnbGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICsgbGFiZWwge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwcHggMXB4ICNkNWQ1ZDU7XG4gICAgICAgIHRleHQtaW5kZW50OiAtNTAwMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgLnRyYW5zaXRpb24ofidiYWNrZ3JvdW5kIDAuMjVzIGVhc2UtaW4tb3V0IDBzLCB3aWR0aCAwLjI1cyBlYXNlLWluLW91dCAwcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBAbXRjQmx1ZTtcbiAgICAgICAgICAgIC50cmFuc2l0aW9uKH4nbGVmdCAwLjI1cyBlYXNlLWluLW91dCAwcywgYmFja2dyb3VuZCAwLjI1cyBlYXNlLWluLW91dCAwcycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcblxuICAgICAgICArIGxhYmVsIHtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBtdGNCbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBSYWRpbyBidXR0b25zICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnJhZGlvV3JhcCB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIHdpZHRoOiA3MCU7XG59XG5cbi5yYWRpb1dyYXAgdWwgbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBOb3RpZmljYXRpb24gU3R5bGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmFsZXJ0IHtcbiAgICBwYWRkaW5nOiA4cHggMzVweCA4cHggMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDsgcGFkZGluZzogMDtcbiAgICB9XG5cbn1cblxuLnN1Y2Nlc3MsIC5lcnJvciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICNERkYwRDg7XG4gICAgY29sb3I6ICM0Njg4NDc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0Q2RTlDNjtcbn1cblxuLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjRjJERURFO1xuICAgIGNvbG9yOiAjQjk0QTQ4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFRUQzRDc7XG59XG5cbi5tZXNzYWdlRnVsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjREZGMEQ4O1xuICAgIGNvbG9yOiAjNDY4ODQ3O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNENkU5QzY7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgIHotaW5kZXg6IDkwMDA7XG59XG5cbi5lcnJvck1lc3NhZ2VGdWxsIHtcbiAgICBiYWNrZ3JvdW5kOiAjRjJERURFO1xuICAgIGNvbG9yOiAjQjk0QTQ4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFRUQzRDc7XG59XG5cbmlucHV0LmlucHV0RXJyb3IsIGlucHV0IHRleHRhcmVhLCAuaW5wdXRFcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjQjk0QTQ4O1xufVxuXG4uaGlkZW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIENsZWFyaW5nIGZvciBnZW5lcmFsIHVzZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jbGVhciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGFzdCAoZGVwcmVjYXRlZCBieSBvbmx5IGFwcGx5aW5nIHRvIGJlbG93IElFOSwgdXNlIG1lZGlhIHF1ZXJpZXMgaW5zdGVhZCkgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubHQtaWU5IC5sYXN0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBGaXJzdCAoZGVwcmVjYXRlZCBieSBvbmx5IGFwcGx5aW5nIHRvIGJlbG93IElFOSwgdXNlIG1lZGlhIHF1ZXJpZXMgaW5zdGVhZCkgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubHQtaWU5IC5maXJzdCB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUmVsYXRpdmUgUG9zaXRpb25pbmcgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucmVsYXRpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBJbWFnZXMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmxlZnQsIC5hbGlnbmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucmlnaHQsIC5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGlzdHMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG51bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEJhc2ljIExpc3QgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubGlzdCgpIHtcbiAgICAuY2xlYXJmaXgoKTtcblxuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBOYXZpZ2F0aW9uIFN0eWxlICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm5hdigpIHtcbiAgICAubGlzdCgpO1xuXG4gICAgQG1lZGlhIEBkZXNrdG9wLCBAdGFibGV0IHtcblxuICAgICAgICBsaSA+IHVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB1bCBsaSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGk6aG92ZXIgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBsaSA+IHVsID4gbGkgPiB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRWRnZSB0byBlZGdlIG5hdmlnYXRpb24gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZWRnZU5hdigpIHtcblxuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5jbGVhcmZpeCgpO1xuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgbGkgPiAucmVsYXRpdmUgPiB1bCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGxpIHVsIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBAbWVkaWEgQGRlc2t0b3AsIEB0YWJsZXQge1xuICAgICAgICBsaSB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgbGk6aG92ZXIgPiB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEZhZGUgRHJvcGRvd24gSG92ZXIgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZmFkZU5hdiB7XG4gICAgbGkge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIC5vcGFjaXR5KDApO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgLnRyYW5zaXRpb24ofidvcGFjaXR5IDQwMG1zIGxpbmVhciAwcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgNDAwbXMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgPiB1bCB7XG4gICAgICAgICAgICAub3BhY2l0eSgxKTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAudHJhbnNpdGlvbkRlbGF5KDBzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sdC1pZTkgLmZhZGVOYXYgbGkge1xuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAub3BhY2l0eSgxKTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTbGlkZSBEcm9wZG93biBIb3ZlciAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zbGlkZU5hdiB7XG4gICAgbGkge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb24obWF4LWhlaWdodCA0MDBtcyBsaW5lYXIgNDAwbXMpOyAvLyBzbGlkZS11cCB3aXRoIGRlbGF5IHRvIHNlZSBvcGFjaXR5IHRyYW5zaXRpb24gb2YgdGhlIGFcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAub3BhY2l0eSgwKTtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNpdGlvbih+J29wYWNpdHkgNDAwbXMgbGluZWFyIDBzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciA0MDBtcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgdWwgbGkge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTlweDsgLy8gbmVlZCB0byBzZXQgYSBoZWlnaHQgZXF1YWwgdG8gbGkgaGVpZ2h0XG4gICAgICAgICAgICAudHJhbnNpdGlvbihtYXgtaGVpZ2h0IDQwMG1zIGxpbmVhciAwcyk7IC8vIHNsaWRlLWRvd24gbm8gZGVsYXlcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgLm9wYWNpdHkoMSk7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAudHJhbnNpdGlvbih+J29wYWNpdHkgNDAwbXMgbGluZWFyIDQwMG1zLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwcycpOyAvLyBkZWxheSBvbiBvcGFjaXR5IG9uLWhvdmVyIHNvIHRoYXQgc2xpZGUtZG93biBjb21wbGV0ZXMgZmlyc3RcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmx0LWllOSAuc2xpZGVOYXYge1xuXG4gICAgbGkgdWwgbGkgYSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgLm9wYWNpdHkoMSk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIGxpOmhvdmVyIHVsIGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBDcmVkaXQgc3R5bGluZyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiNjcmVkaXRzIGEgc3Ryb25nIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4jY3JlZGl0cyBhOmhvdmVyIHN0cm9uZyB7XG4gICAgY29sb3I6IEBtdGNCbHVlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIENoZWNrYm94IEdyb3VwcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGVja2JveGdyb3VwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBpbnB1dCwgbGkgbGFiZWwge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQnV0dG9ucyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5idXR0b24oKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgIGkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1ZW07XG4gICAgfVxuXG4gICAgJi5idXR0b25TbWFsbCB7XG4gICAgICAgIC5lbXMoMTApO1xuICAgIH1cblxuICAgICYuYnV0dG9uTGFyZ2Uge1xuICAgICAgICAuZW1zKDIwKVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBCdXR0b24gR3JvdXBzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJ1dHRvbmdyb3VwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFRhYmxlcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHRkLCB0aCB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBtYXgtd2lkdGg6IG5vbmU7IG92ZXJyaWRlcyBtYXgtd2lkdGg6IDEwMCUgZnJvbSBhYm92ZSB3aGljaCBkaXN0b3J0cyB0aGUgaWNvbnMgb24gZ21hcHMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4jbWFwIGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIENlbnRyZSBFbGVtZW50cyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jZW50ZXJQdXNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGVmdDogNTAlO1xufVxuXG4uY2VudGVyUHVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICByaWdodDogNTAlO1xufVxuXG5AbWVkaWEgQG1vYmlsZSB7XG4gICAgLm1vYmlsZVB1c2gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLm1vYmlsZVB1bGwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVGFibGUgRGl2ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnRhYmxlQ2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBCcm93c2VyIENvbXBhdGliaWxpdHkgV2FybmluZyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jb21wYXRpYmlsaXR5TWVzc2FnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGJhY2tncm91bmQ6IEBtdGNCbHVlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFBhdHRlcm5zIGZvciBjaG9wIHN0eWxpbmcgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucGF0dGVybiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICBwYWRkaW5nOiAwIDAgMzBweDtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgI2ZmZjtcbiAgICBjbGVhcjogYm90aDtcbiAgICAuY2xlYXJmaXgoKTtcbn1cblxuLnBhdHRlcm4gLmRpc3BsYXkge1xuICAgIG1hcmdpbjogMzBweCAwO1xuICAgIC5jbGVhcmZpeCgpO1xufVxuXG4ucGF0dGVybiAuc291cmNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiBAbXRjQmx1ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgLmNsZWFyZml4KCk7XG59XG5cbi5wYXR0ZXJuIC5zb3VyY2UgdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgaGVpZ2h0OiAyMDBweDtcbn1cblxuLnNvdXJjZSAucm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucGF0dGVybmZpbGVuYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMjBweDtcbiAgICByaWdodDogNXB4O1xuICAgIGJhY2tncm91bmQ6IEBtdGNCbHVlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xufVxuXG4jc2hvd01lbnUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDIwcHg7XG4gICAgbGVmdDogMjBweDtcbiAgICB6LWluZGV4OiAxMDAwMDAwO1xuICAgIGJhY2tncm91bmQ6ICMwRjU1QzQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDZweCA3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5wZXJzcGVjdGl2ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDApO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIC50cmFuc2Zvcm0oIHRyYW5zbGF0ZVooMCkgdHJhbnNsYXRlWCgwKSByb3RhdGVZKDBkZWcpKTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgLm9wYWNpdHkoMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yKTtcbiAgICAgICAgLyogdGhlIHRyYW5zaXRpb24gZGVsYXkgb2YgdGhlIGhlaWdodCBuZWVkcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgY29udGFpbmVyIHRyYW5zaXRpb24gdGltZSAqL1xuICAgICAgICAudHJhbnNpdGlvbih+J29wYWNpdHkgNDAwbXMsIGhlaWdodCAwcyA0MDBtcycpO1xuICAgIH1cbn1cblxuLyogTW9kYWwgdmlldyAqL1xuLnBlcnNwZWN0aXZlLm1vZGFsdmlldyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDE1MDBweDtcbiAgICAtbW96LXBlcnNwZWN0aXZlOiAxNTAwcHg7XG4gICAgcGVyc3BlY3RpdmU6IDE1MDBweDtcbn1cblxuLm1vZGFsdmlldyAuY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLm1vZGFsdmlldyAud3JhcHBlciB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTFweCk7IC8qIHNvbHZlcyBhIHJlbmRlcmluZyBidWcgaW4gQ2hyb21lIG9uIFdpbmRvd3MgKi9cbn1cblxuLmFuaW1hdGUgLmNvbnRhaW5lcjphZnRlciB7XG4gICAgLm9wYWNpdHkoMSk7XG4gICAgaGVpZ2h0OiAxMDElO1xuICAgIC50cmFuc2l0aW9uKG9wYWNpdHkgMC4zcyk7XG59XG5cbi8qIE91dGVyIE5hdiAqL1xuLm91dGVyLW5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBmb250LXNpemU6IDA7XG4gICAgLmZhZGVOYXYoKTtcblxuICAgICYudG9wIHtcbiAgICAgICAgdG9wOiA1JTtcbiAgICB9XG5cbiAgICAmLmhvcml6b250YWwge1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgIG1heC13aWR0aDogMTAwMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWluLXdpZHRoOiAxNSU7XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAudHJhbnNpdGlvbih+J29wYWNpdHkgMjAwbXMgbGluZWFyIDBzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAyMDBtcycpO1xuICAgIH1cblxuICAgID4gdWwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICA+IHVsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYSB7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIC5vcGFjaXR5KDApO1xuICAgICAgICAgICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTIwcHgpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vcGFjaXR5KDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC50cmFuc2l0aW9uKH4nb3BhY2l0eSAyMDBtcyBlYXNlIDBzLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZSAwcycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweCAwIDA7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAudHJhbnNpdGlvbihjb2xvciAwLjNzKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgLnJlbXMoMTgpO1xuICAgIH1cbn1cblxuLyogSW5kaXZpZHVhbCBFZmZlY3RzICovXG5cbi8qIEVmZmVjdCBNb3ZlIERvd24gKi9cbi5lZmZlY3QtbW92ZWRvd24ge1xuICAgIGJhY2tncm91bmQ6ICMzNDQ5NWU7XG59XG5cbi5lZmZlY3QtbW92ZWRvd24gLmNvbnRhaW5lciB7XG4gICAgLnRyYW5zaXRpb24odHJhbnNmb3JtIDQwMG1zKTtcbiAgICAudHJhbnNmb3JtT3JpZ2luKDUwJSA1MCUpO1xufVxuXG4uZWZmZWN0LW1vdmVkb3duIC5jb250YWluZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTIsIDczLCA5NCwgMC41KTtcbn1cblxuLmVmZmVjdC1tb3ZlZG93bi5hbmltYXRlIC5jb250YWluZXIge1xuICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgxMDAlKSB0cmFuc2xhdGVaKC0xNTAwcHgpKTtcbn1cblxuLm5vLWNzc3RyYW5zZm9ybXMzZCAuZWZmZWN0LW1vdmVkb3duLmFuaW1hdGUgLmNvbnRhaW5lciB7XG4gICAgdG9wOiA3NSU7XG59XG5cbi5lZmZlY3QtbW92ZWRvd24gLm91dGVyLW5hdiBhIHtcbiAgICAub3BhY2l0eSgwKTtcbiAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTIwcHgpKTtcbiAgICAudHJhbnNpdGlvbih+J3RyYW5zZm9ybSA0MDBtcywgb3BhY2l0eSA0MDBtcycpO1xufVxuXG4uZWZmZWN0LW1vdmVkb3duLmFuaW1hdGUgLm91dGVyLW5hdiBhIHtcbiAgICAub3BhY2l0eSgxKTtcbiAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xufVxuXG4vKiBNZWRpYSBRdWVyaWVzICovXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM2LjYyNWVtKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogNDEuNzVlbSkge1xuXG4gICAgLm91dGVyLW5hdi5ob3Jpem9udGFsIHtcbiAgICAgICAgLmVtcygyMCk7XG4gICAgfVxuXG4gICAgLm91dGVyLW5hdi5ob3Jpem9udGFsIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzFlbSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDM2LjJlbSkge1xuXG4gICAgLm91dGVyLW5hdi5ob3Jpem9udGFsIHtcbiAgICAgICAgLmVtcygxNik7XG4gICAgICAgIHRvcDogNzBweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVYKDApKTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzMS42ZW0pIHtcblxuICAgIC5vdXRlci1uYXYgYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWluLXdpZHRoIDogMHB4KVxuYW5kIChtYXgtd2lkdGggOiA4MDBweCkge1xuICAgIC5wYXR0ZXJuc2VsZWN0b3Ige1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIC5jbGVhcmZpeCgpO1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBGbHVpZCBHcmlkICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmdyaWRfMSwgLmdyaWRfMiwgLmdyaWRfMywgLmdyaWRfNCwgLmdyaWRfNSwgLmdyaWRfNixcbi5ncmlkXzcsIC5ncmlkXzgsIC5ncmlkXzksIC5ncmlkXzEwLCAuZ3JpZF8xMSwgLmdyaWRfMTIsIC5jb2x1bW5GaXJzdCwgLmNvbHVtblNlY29uZCwgLm9uZUhhbGYsIC5jb2x1bW5IYWxmIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMiU7XG4gICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICBib3JkZXI6IDBweCBzb2xpZCByZ2JhKDAsMCwwLDApO1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3ggIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3ggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94ICFpbXBvcnRhbnQ7XG4gICAgKmJlaGF2aW9yOiB1cmwoL2Nzcy9ib3hzaXppbmcuaHRjKTsgLyogQm94IHNpemluZyBwb2x5ZmlsbCBmb3IgaWU3LzggKi9cbn1cblxuLmdyaWRfMTphZnRlciwgLmdyaWRfMjphZnRlciwgLmdyaWRfMzphZnRlciwgLmdyaWRfNDphZnRlciwgLmdyaWRfNTphZnRlciwgLmdyaWRfNjphZnRlcixcbi5ncmlkXzc6YWZ0ZXIsIC5ncmlkXzg6YWZ0ZXIsIC5ncmlkXzk6YWZ0ZXIsIC5ncmlkXzEwOmFmdGVyLCAuZ3JpZF8xMTphZnRlciwgLmdyaWRfMTI6YWZ0ZXIsIC5jb2x1bW5GaXJzdDphZnRlciwgLmNvbHVtblNlY29uZDphZnRlciwgLm9uZUhhbGY6YWZ0ZXIsIC5jb2x1bW5IYWxmOmFmdGVyICB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDtcbn1cblxuLmdyaWRfMSwgLmdyaWRfMiwgLmdyaWRfMywgLmdyaWRfNCwgLmdyaWRfNSwgLmdyaWRfNixcbi5ncmlkXzcsIC5ncmlkXzgsIC5ncmlkXzksIC5ncmlkXzEwLCAuZ3JpZF8xMSwgLmdyaWRfMTIsIC5jb2x1bW5GaXJzdCwgLmNvbHVtblNlY29uZCwgLm9uZUhhbGYsIC5jb2x1bW5IYWxmICB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHpvb206IDE7XG4gICAgKmRpc3BsYXk6IGlubGluZTtcbn1cblxuaHRtbFt4bWxuc10gLmdyaWRfMSwgaHRtbFt4bWxuc10gLmdyaWRfMiwgaHRtbFt4bWxuc10gLmdyaWRfMyxcbmh0bWxbeG1sbnNdIC5ncmlkXzQsIGh0bWxbeG1sbnNdIC5ncmlkXzUsIGh0bWxbeG1sbnNdIC5ncmlkXzYsXG5odG1sW3htbG5zXSAuZ3JpZF83LCBodG1sW3htbG5zXSAuZ3JpZF84LCBodG1sW3htbG5zXSAuZ3JpZF85LFxuaHRtbFt4bWxuc10gLmdyaWRfMTAsIGh0bWxbeG1sbnNdIC5ncmlkXzExLCBodG1sW3htbG5zXSAuZ3JpZF8xMiwgaHRtbFt4bWxuc10gLm9uZUhhbGYsIGh0bWxbeG1sbnNdIC5jb2x1bW5IYWxmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuKiBodG1sIC5ncmlkXzEsICogaHRtbCAuZ3JpZF8yLCAqIGh0bWwgLmdyaWRfMywgKiBodG1sIC5ncmlkXzQsICogaHRtbCAuZ3JpZF81LCAqIGh0bWwgLmdyaWRfNiwgKiBodG1sIC5ncmlkXzcsICogaHRtbCAuZ3JpZF84LCAqIGh0bWwgLmdyaWRfOSwgKiBodG1sIC5ncmlkXzEwLCAqIGh0bWwgLmdyaWRfMTEsICogaHRtbCAuZ3JpZF8xMiwgKiBodG1sIC5jb2x1bW5GaXJzdCwgKiBodG1sIC5jb2x1bW5TZWNvbmQsICogaHRtbCAub25lSGFsZiwgKiBodG1sIC5jb2x1bW5IYWxmIHtcbiAgICBoZWlnaHQ6IDElO1xufVxuXG4uZ3JpZF8xIHsgd2lkdGg6Ni41JTsgICB9XG4uZ3JpZF8yIHsgd2lkdGg6MTUuMCU7ICB9XG4uZ3JpZF8zIHsgd2lkdGg6MjMuNSU7ICB9XG4uZ3JpZF80IHsgd2lkdGg6MzIuMCU7ICB9XG4uZ3JpZF81IHsgd2lkdGg6NDAuNSU7ICB9XG4uZ3JpZF82IHsgd2lkdGg6NDkuMCU7ICB9XG4uZ3JpZF83IHsgd2lkdGg6NTcuNSU7ICB9XG4uZ3JpZF84IHsgd2lkdGg6NjYuMCU7ICB9XG4uZ3JpZF85IHsgd2lkdGg6NzQuNSU7ICB9XG4uZ3JpZF8xMCB7IHdpZHRoOjgzLjAlOyB9XG4uZ3JpZF8xMSB7IHdpZHRoOjkxLjUlOyB9XG4uZ3JpZF8xMiB7IG1hcmdpbi1yaWdodDowOyB3aWR0aDoxMDAlOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTG93IGNvbnRlbnQgcGFnZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5lbXB0eUJhc2tldCwgLmxvd0NvbnRlbnQge1xuICAgIC53cmFwcGVyKCk7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgcGFkZGluZzogNDBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIEBtZWRpYSBAZGVza3RvcCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcwMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBAdGFibGV0IHtcbiAgICAgICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIE1peGlucyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jbGVhcmZpeCgpIHtcbiAgICAqem9vbTogMTtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4uYm94KEBmbG9hdDogbGVmdDsgQHpJbmRleDogMTsgQGRpc3BsYXk6IGJsb2NrOyBAcG9zaXRpb246IHJlbGF0aXZlKSB7XG4gICAgZmxvYXQ6IEBmbG9hdDtcbiAgICB6LWluZGV4OiBAekluZGV4O1xuICAgIGRpc3BsYXk6IEBkaXNwbGF5O1xuICAgIHBvc2l0aW9uOiBAcG9zaXRpb247XG59XG5cbi5mdWxsQm94KEB3aWR0aDogMTAwJTsgQGZsb2F0OiBsZWZ0OyBAekluZGV4OiAxOyBAZGlzcGxheTogYmxvY2s7IEBwb3NpdGlvbjogcmVsYXRpdmUpIHtcbiAgICAuYm94KEBmbG9hdDsgQHpJbmRleDsgQGRpc3BsYXk7IEBwb3NpdGlvbik7XG4gICAgd2lkdGg6IEB3aWR0aDtcbn1cblxuLnRyYW5zaXRpb24oQHRyYW5zaXRpb24pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgIC1tb3otdHJhbnNpdGlvbjogICAgQHRyYW5zaXRpb247XG4gICAgLW1zLXRyYW5zaXRpb246ICAgICBAdHJhbnNpdGlvbjtcbiAgICAtby10cmFuc2l0aW9uOiAgICAgIEB0cmFuc2l0aW9uO1xuICAgIHRyYW5zaXRpb246ICAgICAgICAgQHRyYW5zaXRpb247XG59XG5cbi50cmFuc2l0aW9uRGVsYXkoQGRlbGF5KSB7XG4gICAgLXRyYW5zaXRpb24tZGVsYXk6IEBkZWxheTtcbiAgICAtbW96LXRyYW5zaXRpb24tZGVsYXk6IEBkZWxheTtcbiAgICAtby10cmFuc2l0aW9uLWRlbGF5OiBAZGVsYXk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogQGRlbGF5O1xufVxuXG4udHJhbnNpdGlvbkR1cmF0aW9uKEBkdXJhdGlvbikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xuICAgIC1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xuICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG59XG5cbi50cmFuc2Zvcm0oQHN0cmluZyl7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IEBzdHJpbmc7XG4gICAgLW1vei10cmFuc2Zvcm06ICAgIEBzdHJpbmc7XG4gICAgLW1zLXRyYW5zZm9ybTogICAgIEBzdHJpbmc7XG4gICAgLW8tdHJhbnNmb3JtOiAgICAgIEBzdHJpbmc7XG4gICAgdHJhbnNmb3JtOiAgICAgICAgIEBzdHJpbmc7XG59XG5cbi50cmFuc2xhdGUoQHRyYW5zbGF0ZSkge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHRyYW5zbGF0ZSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZShAdHJhbnNsYXRlKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZShAdHJhbnNsYXRlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHRyYW5zbGF0ZSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHRyYW5zbGF0ZSk7XG59XG5cbi5yb3RhdGUoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cblxuLnRyYW5zZm9ybVN0eWxlKEBzdHJpbmcpIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogQHN0cmluZztcbiAgICAtbW96LXRyYW5zZm9ybS1zdHlsZTogICAgQHN0cmluZztcbiAgICAtbXMtdHJhbnNmb3JtLXN0eWxlOiAgICAgQHN0cmluZztcbiAgICAtby10cmFuc2Zvcm0tc3R5bGU6ICAgICAgQHN0cmluZztcbiAgICB0cmFuc2Zvcm0tc3R5bGU6ICAgICAgICAgQHN0cmluZztcbn1cblxuLnRyYW5zZm9ybU9yaWdpbihAc3RyaW5nKSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBAc3RyaW5nO1xuICAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogQHN0cmluZztcbiAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogQHN0cmluZztcbiAgICAtby10cmFuc2Zvcm0tb3JpZ2luOiBAc3RyaW5nO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IEBzdHJpbmc7XG59XG5cbi51bFN0eWxlKEBwYWRkaW5nOiAwLCBAbWFyZ2luOiAwLCBAbGlzdC1zdHlsZTogbm9uZSkge1xuICAgIG1hcmdpbjogQG1hcmdpbjtcbiAgICBwYWRkaW5nOiBAcGFkZGluZztcbiAgICBsaXN0LXN0eWxlOiBAbGlzdC1zdHlsZTtcbn1cblxuLmdyYWRpZW50IChAc3RhcnRDb2xvcjogIzIxNzBiNSwgQGVuZENvbG9yOiAjMTY0YjkxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHN0YXJ0Q29sb3I7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShAc3RhcnRDb2xvciksIHRvKEBlbmRDb2xvcikpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7XG59XG5cbi5wbGFjZWhvbGRlcihAY29sb3I6IEBzZWNvbmRhcnkpIHtcbiAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IEBjb2xvcjtcbiAgICB9XG5cbiAgICAmOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgICBjb2xvcjogQGNvbG9yO1xuICAgIH1cblxuICAgICY6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogRmlyZWZveCAxOSsgKi9cbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29sb3I6IEBjb2xvcjtcbiAgICB9XG5cbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgfVxufVxuXG4uZm9udC1mYWNlKEBmb250bmFtZSwgQGZvbnRmaWxlLCBAZm9udHdlaWdodDpub3JtYWwsIEBmb250c3R5bGU6bm9ybWFsKSB7XG4gICAgZm9udC1mYW1pbHk6IFwiQHtmb250bmFtZX1cIjtcbiAgICBzcmM6IHVybChcIkB7Zm9udGZpbGV9LmVvdFwiKTtcbiAgICBzcmM6IHVybChcIkB7Zm9udGZpbGV9LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgICAgICB1cmwoXCJAe2ZvbnRmaWxlfS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgIHVybChcIkB7Zm9udGZpbGV9LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgICAgIHVybChcIkB7Zm9udGZpbGV9LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICAgICAgIHVybChcIkB7Zm9udGZpbGV9LnN2ZyNAe2ZvbnRuYW1lfVwiKSBmb3JtYXQoXCJzdmdcIik7XG4gICAgZm9udC13ZWlnaHQ6IEBmb250d2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6IEBmb250c3R5bGU7XG59XG5cbi5vcGFjaXR5KEBvcGFjaXR5OiAxKSB7XG4gICAgQGllT3BhY2l0eTogQG9wYWNpdHkgKiAxMDA7XG4gICAgZmlsdGVyOiB+XCJhbHBoYShvcGFjaXR5PUB7aWVPcGFjaXR5fSlcIjsgXG4gICAgb3BhY2l0eTogQG9wYWNpdHk7XG59XG5cbi5yZW1zKEB2YWx1ZSkge1xuICAgIEBlbXZhbHVlIDogKEB2YWx1ZSAvIEBiYXNlRm9udFNpemUpO1xuICAgIEByZW1WYWx1ZTogQGVtdmFsdWU7XG4gICAgQHB4VmFsdWU6IChAYmFzZUZvbnRTaXplICogQHJlbVZhbHVlKTtcbiAgICBmb250LXNpemU6IH5cIkB7cHhWYWx1ZX1weFwiO1xuICAgIGZvbnQtc2l6ZTogflwiQHtyZW1WYWx1ZX1yZW1cIjtcbn1cblxuLmVtcyhAdmFsdWU6IEBiYXNlRm9udFNpemUsIEBjb250ZXh0OiBAYmFzZUZvbnRTaXplKSB7XG4gICAgQGVtVmFsdWU6IChAdmFsdWUgLyBAY29udGV4dCk7XG4gICAgZm9udC1zaXplOiB+XCJAe2VtVmFsdWV9ZW1cIjtcbn1cblxuLnRhYmxlT2RkRXZlbihAZXZlbjogI2U2ZTZlNiwgQG9kZDogI2YyZjJmMiwgQGJvcmRlcjogI2ZmZiwgQGhlYWRlclJvdzogI2NjY2NjYykge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGV2ZW47XG4gICAgfVxuXG4gICAgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAb2RkO1xuICAgIH1cblxuICAgIHRyOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBoZWFkZXJSb3c7XG4gICAgfVxufVxuXG4ua2V5ZnJhbWVzKEBuYW1lOyBAYXJndW1lbnRzKSB7XG5cdEAtbW96LWtleWZyYW1lcyBAbmFtZSB7IEBhcmd1bWVudHMoKTsgfVxuXHRALXdlYmtpdC1rZXlmcmFtZXMgQG5hbWUgeyBAYXJndW1lbnRzKCk7IH1cblx0QGtleWZyYW1lcyBAbmFtZSB7IEBhcmd1bWVudHMoKTsgfVxufVxuXG4uYW5pbWF0aW9uKEBhcmd1bWVudHMpIHtcblx0LXdlYmtpdC1hbmltYXRpb246IEBhcmd1bWVudHM7XG5cdC1tb3otYW5pbWF0aW9uOiBAYXJndW1lbnRzO1xuXHRhbmltYXRpb246IEBhcmd1bWVudHM7XG59IiwiLnBzLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyBcbn1cblxuLnBzLWNvbnRhaW5lci5wcy1hY3RpdmUteCA+IC5wcy1zY3JvbGxiYXIteC1yYWlsLCAucHMtY29udGFpbmVyLnBzLWFjdGl2ZS15ID4gLnBzLXNjcm9sbGJhci15LXJhaWwge1xuICAgIGRpc3BsYXk6IGJsb2NrOyBcbn1cblxuLnBzLWNvbnRhaW5lci5wcy1pbi1zY3JvbGxpbmcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyBcbn1cblxuLnBzLWNvbnRhaW5lci5wcy1pbi1zY3JvbGxpbmcucHMteCA+IC5wcy1zY3JvbGxiYXIteC1yYWlsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTkwKVwiO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7IFxufVxuXG4ucHMtY29udGFpbmVyLnBzLWluLXNjcm9sbGluZy5wcy14ID4gLnBzLXNjcm9sbGJhci14LXJhaWwgPiAucHMtc2Nyb2xsYmFyLXgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7IFxufVxuXG4ucHMtY29udGFpbmVyLnBzLWluLXNjcm9sbGluZy5wcy15ID4gLnBzLXNjcm9sbGJhci15LXJhaWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9OTApXCI7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTsgXG59XG5cbi5wcy1jb250YWluZXIucHMtaW4tc2Nyb2xsaW5nLnBzLXkgPiAucHMtc2Nyb2xsYmFyLXktcmFpbCA+IC5wcy1zY3JvbGxiYXIteSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTsgXG59XG5cbi5wcy1jb250YWluZXIgPiAucHMtc2Nyb2xsYmFyLXgtcmFpbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLyogcGxlYXNlIGRvbid0IGNoYW5nZSAncG9zaXRpb24nICovXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLW1zLWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCBvcGFjaXR5IC4ycyBsaW5lYXI7XG4gICAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXIsIG9wYWNpdHkgLjJzIGxpbmVhcjtcbiAgICAtby10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXIsIG9wYWNpdHkgLjJzIGxpbmVhcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXIsIG9wYWNpdHkgLjJzIGxpbmVhcjtcbiAgICBib3R0b206IDNweDtcbiAgICAvKiB0aGVyZSBtdXN0IGJlICdib3R0b20nIGZvciBwcy1zY3JvbGxiYXIteC1yYWlsICovXG4gICAgaGVpZ2h0OiA4cHg7IFxufVxuXG4ucHMtY29udGFpbmVyID4gLnBzLXNjcm9sbGJhci14LXJhaWwgPiAucHMtc2Nyb2xsYmFyLXgge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKiBwbGVhc2UgZG9uJ3QgY2hhbmdlICdwb3NpdGlvbicgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC1tcy1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyO1xuICAgIC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyO1xuICAgIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGxpbmVhcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXI7XG4gICAgYm90dG9tOiAwO1xuICAgIC8qIHRoZXJlIG11c3QgYmUgJ2JvdHRvbScgZm9yIHBzLXNjcm9sbGJhci14ICovXG4gICAgaGVpZ2h0OiA4cHg7IFxufVxuXG4ucHMtY29udGFpbmVyID4gLnBzLXNjcm9sbGJhci15LXJhaWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIHBsZWFzZSBkb24ndCBjaGFuZ2UgJ3Bvc2l0aW9uJyAqL1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC1tcy1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGxpbmVhciwgb3BhY2l0eSAuMnMgbGluZWFyO1xuICAgIC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCBvcGFjaXR5IC4ycyBsaW5lYXI7XG4gICAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCBvcGFjaXR5IC4ycyBsaW5lYXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCBvcGFjaXR5IC4ycyBsaW5lYXI7XG4gICAgcmlnaHQ6IDNweDtcbiAgICAvKiB0aGVyZSBtdXN0IGJlICdyaWdodCcgZm9yIHBzLXNjcm9sbGJhci15LXJhaWwgKi9cbiAgICB3aWR0aDogOHB4OyBcbn1cblxuLnBzLWNvbnRhaW5lciA+IC5wcy1zY3JvbGxiYXIteS1yYWlsID4gLnBzLXNjcm9sbGJhci15IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLyogcGxlYXNlIGRvbid0IGNoYW5nZSAncG9zaXRpb24nICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGxpbmVhcjtcbiAgICAtbW96LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGxpbmVhcjtcbiAgICAtby10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyO1xuICAgIHJpZ2h0OiAwO1xuICAgIC8qIHRoZXJlIG11c3QgYmUgJ3JpZ2h0JyBmb3IgcHMtc2Nyb2xsYmFyLXkgKi9cbiAgICB3aWR0aDogOHB4OyBcbn1cblxuLnBzLWNvbnRhaW5lcjpob3Zlci5wcy1pbi1zY3JvbGxpbmcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyBcbn1cblxuLnBzLWNvbnRhaW5lcjpob3Zlci5wcy1pbi1zY3JvbGxpbmcucHMteCA+IC5wcy1zY3JvbGxiYXIteC1yYWlsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTkwKVwiO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7IFxufVxuXG4ucHMtY29udGFpbmVyOmhvdmVyLnBzLWluLXNjcm9sbGluZy5wcy14ID4gLnBzLXNjcm9sbGJhci14LXJhaWwgPiAucHMtc2Nyb2xsYmFyLXgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7IFxufVxuXG4ucHMtY29udGFpbmVyOmhvdmVyLnBzLWluLXNjcm9sbGluZy5wcy15ID4gLnBzLXNjcm9sbGJhci15LXJhaWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9OTApXCI7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTsgXG59XG5cbi5wcy1jb250YWluZXI6aG92ZXIucHMtaW4tc2Nyb2xsaW5nLnBzLXkgPiAucHMtc2Nyb2xsYmFyLXktcmFpbCA+IC5wcy1zY3JvbGxiYXIteSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTsgXG59XG5cbi5wcy1jb250YWluZXI6aG92ZXIgPiAucHMtc2Nyb2xsYmFyLXgtcmFpbCwgLnBzLWNvbnRhaW5lcjpob3ZlciA+IC5wcy1zY3JvbGxiYXIteS1yYWlsIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT02MClcIjtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NjApOyBcbn1cblxuLnBzLWNvbnRhaW5lcjpob3ZlciA+IC5wcy1zY3JvbGxiYXIteC1yYWlsOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTkwKVwiO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7IFxufVxuXG4ucHMtY29udGFpbmVyOmhvdmVyID4gLnBzLXNjcm9sbGJhci14LXJhaWw6aG92ZXIgPiAucHMtc2Nyb2xsYmFyLXgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7IFxufVxuXG4ucHMtY29udGFpbmVyOmhvdmVyID4gLnBzLXNjcm9sbGJhci15LXJhaWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9OTApXCI7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTsgXG59XG5cbi5wcy1jb250YWluZXI6aG92ZXIgPiAucHMtc2Nyb2xsYmFyLXktcmFpbDpob3ZlciA+IC5wcy1zY3JvbGxiYXIteSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTsgXG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBPdmVybGF5IFN0eWxlcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iZ0NvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiMwOTA5MDk7XG4gICAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7XG4gICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgbGVmdDowO1xuICAgIHRvcDowO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICB6LWluZGV4OjkwMDA7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTtcbn1cblxuLm92ZXJsYXlCb3gge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiNmZmY7XG4gICAgei1pbmRleDo5MTAwO1xuICAgIG92ZXJmbG93LXk6YXV0bztcbiAgICBvcGFjaXR5OjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQG1lZGlhIEBtb2JpbGUge1xuICAgICAgICB3aWR0aDo5NiU7XG4gICAgICAgIHRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAyJSAhaW1wb3J0YW50O1xuICAgICAgICByaWdodDogMiUgIWltcG9ydGFudDtcbiAgICAgICAgbWF4LWhlaWdodDppbml0aWFsO1xuICAgICAgICBwYWRkaW5nLXRvcDo1MHB4O1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG5cdCAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5ub1Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm92ZXJsYXlWaWRlbyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ub3ZlcmxheUNsb3NlQnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogOTIwMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuXG4gICAgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM2N0NDNjc7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOjEycHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nOjVweCAxMHB4O1xuICAgICAgICBmb250LWZhbWlseTpAcHJpbWFyeUZvbnQ7XG4gICAgICAgIGZvbnQtc2l6ZToxNHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICAgIHotaW5kZXg6OTIwMDtcbiAgICAgICAgb3V0bGluZTowO1xuICAgIH1cblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGxlZnQ6MDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyMzIzMjM7XG4gICAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgICAgZm9udC1zaXplOjE0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjpzdGF0aWM7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVtb2RhbCdzIG5lY2Vzc2FyeSBzdHlsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEhpZGUgc2Nyb2xsIGJhciAqL1xuXG5odG1sLnJlbW9kYWwtaXMtbG9ja2VkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi8qIEFudGkgRk9VQyAqL1xuXG4ucmVtb2RhbCxcbltkYXRhLXJlbW9kYWwtaWRdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTmVjZXNzYXJ5IHN0eWxlcyBvZiB0aGUgb3ZlcmxheSAqL1xuXG4ucmVtb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB0b3A6IC01MDAwcHg7XG4gIHJpZ2h0OiAtNTAwMHB4O1xuICBib3R0b206IC01MDAwcHg7XG4gIGxlZnQ6IC01MDAwcHg7XG5cbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTmVjZXNzYXJ5IHN0eWxlcyBvZiB0aGUgd3JhcHBlciAqL1xuXG4ucmVtb2RhbC13cmFwcGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5yZW1vZGFsLXdyYXBwZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tbGVmdDogLTAuMDVlbTtcblxuICBjb250ZW50OiBcIlwiO1xufVxuXG4vKiBGaXggaVBhZCwgaVBob25lIGdsaXRjaGVzICovXG5cbi5yZW1vZGFsLW92ZXJsYXksXG4ucmVtb2RhbC13cmFwcGVyIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBOZWNlc3Nhcnkgc3R5bGVzIG9mIHRoZSBtb2RhbCBkaWFsb2cgKi9cblxuLnJlbW9kYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgb3V0bGluZTogbm9uZTtcbiB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG4ucmVtb2RhbCBvbCB7XG4gICAgbWFyZ2luOiAwIDAgMCAxNXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY291bnRlci1yZXNldDogaXRlbTtcbiAgICAgICAgXG4gICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXJzKGl0ZW0sIFwiLlwiKSBcIiAtIFwiO1xuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGl0ZW07XG5cdFx0XHRmb250LWZhbWlseTogQGJvbGQ7XG4gICAgICAgIH1cbiAgICB9IFxufVxuXG4ucmVtb2RhbC1pcy1pbml0aWFsaXplZCB7XG4gIC8qIERpc2FibGUgQW50aS1GT1VDICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJlbW9kYWwncyBkZWZhdWx0IG1vYmlsZSBmaXJzdCB0aGVtZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRGVmYXVsdCB0aGVtZSBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kICovXG5cbi5yZW1vZGFsLWJnLnJlbW9kYWwtaXMtb3BlbmluZyxcbi5yZW1vZGFsLWJnLnJlbW9kYWwtaXMtb3BlbmVkIHtcbiAgZmlsdGVyOiBibHVyKDNweCk7XG59XG5cbi8qIERlZmF1bHQgdGhlbWUgc3R5bGVzIG9mIHRoZSBvdmVybGF5ICovXG5cbi5yZW1vZGFsLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQzLCA0NiwgNTYsIDAuOSk7XG59XG5cbi5yZW1vZGFsLW92ZXJsYXkucmVtb2RhbC1pcy1vcGVuaW5nLFxuLnJlbW9kYWwtb3ZlcmxheS5yZW1vZGFsLWlzLWNsb3Npbmcge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xufVxuXG4ucmVtb2RhbC1vdmVybGF5LnJlbW9kYWwtaXMtb3BlbmluZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiByZW1vZGFsLW92ZXJsYXktb3BlbmluZy1rZXlmcmFtZXM7XG59XG5cbi5yZW1vZGFsLW92ZXJsYXkucmVtb2RhbC1pcy1jbG9zaW5nIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJlbW9kYWwtb3ZlcmxheS1jbG9zaW5nLWtleWZyYW1lcztcbn1cblxuLyogRGVmYXVsdCB0aGVtZSBzdHlsZXMgb2YgdGhlIHdyYXBwZXIgKi9cblxuLnJlbW9kYWwtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDMwcHggMTBweCAwO1xufVxuXG4vKiBEZWZhdWx0IHRoZW1lIHN0eWxlcyBvZiB0aGUgbW9kYWwgZGlhbG9nICovXG5cbi5yZW1vZGFsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmc6IDM1cHg7XG5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICBjb2xvcjogIzJiMmUzODtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgXG4gIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgIHBhZGRpbmc6IDE1cHg7XG4gIH1cbn1cblxuLnJlbW9kYWwucmVtb2RhbC1pcy1vcGVuaW5nLFxuLnJlbW9kYWwucmVtb2RhbC1pcy1jbG9zaW5nIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbn1cblxuLnJlbW9kYWwucmVtb2RhbC1pcy1vcGVuaW5nIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJlbW9kYWwtb3BlbmluZy1rZXlmcmFtZXM7XG59XG5cbi5yZW1vZGFsLnJlbW9kYWwtaXMtY2xvc2luZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiByZW1vZGFsLWNsb3Npbmcta2V5ZnJhbWVzO1xufVxuXG4vKiBWZXJ0aWNhbCBhbGlnbiBvZiB0aGUgbW9kYWwgZGlhbG9nICovXG5cbi5yZW1vZGFsLFxuLnJlbW9kYWwtd3JhcHBlcjphZnRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIENsb3NlIGJ1dHRvbiAqL1xuXG4ucmVtb2RhbC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTBweDtcbiAgcmlnaHQ6IC0xMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gIHdpZHRoOiAzNXB4O1xuICBoZWlnaHQ6IDM1cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICBjb2xvcjogIzk1OTc5YztcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO2JhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7XG5iYWNrZ3JvdW5kOiAtbW96LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsICByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLCByZ2JhKDIyOSwyMjksMjI5LDEpIDEwMCUpO1xuYmFja2dyb3VuZDogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDIyOSwyMjksMjI5LDEpIDEwMCUpO1xuYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCAgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDIyOSwyMjksMjI5LDEpIDEwMCUpO1xuZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2U1ZTVlNScsR3JhZGllbnRUeXBlPTEgKTtcblxufVxuXG4ucmVtb2RhbC1jbG9zZTpob3Zlcixcbi5yZW1vZGFsLWNsb3NlOmZvY3VzIHtcbiAgY29sb3I6ICMyYjJlMzg7XG59XG5cbi5yZW1vZGFsLWNsb3NlOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgXCJIZWx2ZXRpY2EgQ1lcIiwgXCJOaW1idXMgU2FucyBMXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBsaW5lLWhlaWdodDogMzVweDtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICBkaXNwbGF5OiBibG9jaztcblxuICB3aWR0aDogMzVweDtcblxuICBjb250ZW50OiBcIlxcMDBkN1wiO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIERpYWxvZyBidXR0b25zICovXG5cbi5yZW1vZGFsLWNvbmZpcm0sXG4ucmVtb2RhbC1jYW5jZWwge1xuICBmb250OiBpbmhlcml0O1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgbWluLXdpZHRoOiAxMTBweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxMnB4IDA7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbn1cblxuLnJlbW9kYWwtY29uZmlybSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiAjODFjNzg0O1xufVxuXG4ucmVtb2RhbC1jb25maXJtOmhvdmVyLFxuLnJlbW9kYWwtY29uZmlybTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICM2NmJiNmE7XG59XG5cbi5yZW1vZGFsLWNhbmNlbCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiAjZTU3MzczO1xufVxuXG4ucmVtb2RhbC1jYW5jZWw6aG92ZXIsXG4ucmVtb2RhbC1jYW5jZWw6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZWY1MzUwO1xufVxuXG4vKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsgZm9yIHRoZSBidXR0b24gdGFnLiAqL1xuXG4ucmVtb2RhbC1jb25maXJtOjotbW96LWZvY3VzLWlubmVyLFxuLnJlbW9kYWwtY2FuY2VsOjotbW96LWZvY3VzLWlubmVyLFxuLnJlbW9kYWwtY2xvc2U6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuXG4gIGJvcmRlcjogMDtcbn1cblxuLyogS2V5ZnJhbWVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5Aa2V5ZnJhbWVzIHJlbW9kYWwtb3BlbmluZy1rZXlmcmFtZXMge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuXG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJlbW9kYWwtY2xvc2luZy1rZXlmcmFtZXMge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuXG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcblxuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByZW1vZGFsLW92ZXJsYXktb3BlbmluZy1rZXlmcmFtZXMge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcmVtb2RhbC1vdmVybGF5LWNsb3Npbmcta2V5ZnJhbWVzIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4vKiBNZWRpYSBxdWVyaWVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gIC5yZW1vZGFsIHtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICB9XG59XG5cbi8qIElFOFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmx0LWllOSAucmVtb2RhbC1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogIzJiMmUzODtcbn1cblxuLmx0LWllOSAucmVtb2RhbCB7XG4gIHdpZHRoOiA3MDBweDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTW9iaWxlIE1lbnUgKHN0eWxlKSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zdWJOYXYge1xuXG4gICAgLnRpdGxlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbn1cblxuQG1lZGlhIEBtb2JpbGUge1xuXG4gICAgLmZseW91dFdyYXAge1xuXG4gICAgICAgIGJhY2tncm91bmQ6IEBzdGF0aWNGbHlvdXRCZztcbiAgICAgICAgei1pbmRleDogMTAwMTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICYucGFyZW50ID4gYTphZnRlciB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udEF3ZXNvbWVcIjtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjBkYVwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgLnRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UtaW4tb3V0IDBzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wYXJlbnQub3BlbiA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0ocm90YXRlKDkwZGVnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBAbGluZUNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIC5jbGVhcmZpeCgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICAgICAvKiBUaGUgZmx5b3V0IGJ1dHRvbiAqL1xuICAgIC5mbHlvdXQge1xuXG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OiA1MDAxO1xuICAgICAgICBjb2xvcjogQGxpbmVDb2xvcjtcblxuICAgICAgICBhIHtcblxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBjb2xvcjogQGxpbmVDb2xvcjtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgLmxpbmUge1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQGxpbmVDb2xvcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDNweDtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQGxpbmVDb2xvcjtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgYSB7XG5cbiAgICAgICAgICAgICAgICAubGluZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAbGluZUNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi5hbGl2ZSB7XG5cbiAgICAgICAgICAgIGEge1xuXG4gICAgICAgICAgICAgICAgLmxpbmUge1xuXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEBhY3RpdmVGbHlvdXRCZztcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cbiAgICAvKiBFbmQgb2YgdGhlIGZseW91dCBidXR0b24gKi9cblxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTW9iaWxlIE1lbnUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZmx5b3V0V2lkdGg6IDEwMCU7XG5cbi5zaXRlT3V0ZXJXcmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLmNsZWFyZml4KCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDY1cHg7XG4gICAgfVxufVxuXG4uc2l0ZUlubmVyV3JhcHBlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qIEdvdCBhIGZ1bGwgc2NyZWVuIGJhY2tncm91bmQ/IFlvdSBtaWdodCBuZWVkIHRoaXMgdG8gc3RvcCB0aGUgZmxhc2hlcnNcbio6bm90KGh0bWwpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbiovXG5cbi5mbHlvdXQsXG4ubW9iaWxlQmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBCcmVha3BvaW50IGZvciBtb2JpbGUgbWVudSB0byBhcHBlYXIsIGNhbiBiZSBzZXQgdG8gd2hhdGV2ZXIgc2l0ZSBuZWVkcyAqL1xuQG1lZGlhIEBtb2JpbGUge1xuXG4gICAgLnRvcEJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNpdGVPdXRlcldyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICYgPiBkaXYudHJhbnNmb3JtIHtcbiAgICAgICAgICAgIC50cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlLWluLW91dCAwcyk7XG4gICAgICAgICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZSgwLDApKTtcblxuICAgICAgICAgICAgJi5hbGl2ZSB7XG4gICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlKC1AZmx5b3V0V2lkdGgsMCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gIC5mbHlvdXRXcmFwIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNjZweDtcbiAgICAgIHJpZ2h0OiAtQGZseW91dFdpZHRoO1xuICAgICAgd2lkdGg6IEBmbHlvdXRXaWR0aDtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAudHJhbnNmb3JtKHRyYW5zbGF0ZSgwLDApKTtcbiAgICAgIC50cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlLWluLW91dCAwcyk7XG5cbiAgICAgICYuYWxpdmUge1xuICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlKC0xMDAlLDApKTtcbiAgICAgIH1cblxuICB9XG5cbiAgJi5tZW51bGVmdCB7XG5cbiAgICAgICAgLnNpdGVPdXRlcldyYXBwZXIge1xuXG4gICAgICAgICAgJiA+IGRpdi50cmFuc2Zvcm0ge1xuXG4gICAgICAgICAgICAgICYuYWxpdmUge1xuICAgICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGUoQGZseW91dFdpZHRoLDApKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC5mbHlvdXRXcmFwIHtcblxuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IC1AZmx5b3V0V2lkdGg7XG5cbiAgICAgICAgICAmLmFsaXZlIHtcbiAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlKDEwMCUsMCkpO1xuICAgICAgICAgIH1cblxuICAgICAgfVxuXG4gIH1cblxuLyogVGhlIGZseW91dCBidXR0b24gKi9cblxuICAgIC5mbHlvdXQge1xuXG4gICAgICAgIHRvcDogMjJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICYucmlnaHQge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICBcdFx0aGVpZ2h0OiAycHg7XG4gICAgXHRcdHRvcDogOXB4O1xuICAgIFx0XHRmbG9hdDogbGVmdDtcbiAgICBcdFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRcdGJhY2tncm91bmQ6IEBsaW5lQ29sb3I7XG4gICAgXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcdFx0LnRyYW5zaXRpb24oYmFja2dyb3VuZCAxMDBtcyBlYXNlLWluLW91dCAzMDBtcyk7XG5cbiAgICBcdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXG4gICAgXHRcdFx0aGVpZ2h0OiAycHg7XG4gICAgXHRcdFx0YmFja2dyb3VuZDogQGxpbmVDb2xvcjtcbiAgICBcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgXHRcdFx0bGVmdDogMDtcbiAgICBcdFx0XHRjb250ZW50OiAnJztcbiAgICBcdFx0XHQudHJhbnNmb3JtKHJvdGF0ZTNkKDAsIDAsIDAsIDBkZWcpKTtcbiAgICBcdFx0XHQudHJhbnNpdGlvbih+XCJ0cmFuc2Zvcm0gMzAwbXMgbGluZWFyIDBtcywgdG9wIDMwMG1zIGxpbmVhciA0MDBtcywgd2lkdGggMzAwbXMgbGluZWFyIDcwMG1zXCIpO1xuICAgIFx0XHR9XG5cbiAgICBcdFx0JjpiZWZvcmUge1xuICAgIFx0XHRcdHRvcDogLTZweDtcbiAgICBcdFx0XHR3aWR0aDogMjJweDtcbiAgICBcdFx0fVxuXG4gICAgXHRcdCY6YWZ0ZXIge1xuICAgIFx0XHRcdHRvcDogNnB4O1xuICAgIFx0XHRcdHdpZHRoOiAxN3B4O1xuICAgIFx0XHR9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICBhIHtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLmFsaXZlIHtcbiAgICAgICAgICAgIC50cmFuc2l0aW9uKGFsbCAwLjRzIGxpbmVhciAwcyk7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0LnRyYW5zaXRpb24oYmFja2dyb3VuZCAxMDBtcyBlYXNlLWluLW91dCA2MDBtcyk7XG5cblx0XHRcdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0XHRcdC50cmFuc2l0aW9uKH5cIndpZHRoIDMwMG1zIGxpbmVhciAwbXMsIHRvcCAzMDBtcyBsaW5lYXIgMzAwbXMsIHRyYW5zZm9ybSAzMDBtcyBsaW5lYXIgNzAwbXNcIik7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHR0b3A6IDBweDtcblx0XHRcdFx0XHR3aWR0aDogMjJweDtcblx0XHRcdFx0XHQudHJhbnNmb3JtKHJvdGF0ZTNkKDAsIDAsIDEsIC00MGRlZykpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0dG9wOiAwcHg7XG5cdFx0XHRcdFx0d2lkdGg6IDIycHg7XG5cdFx0XHRcdFx0LnRyYW5zZm9ybShyb3RhdGUzZCgwLCAwLCAxLCA0MGRlZykpO1xuXHRcdFx0XHR9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEZvcm0gU3R5bGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnJvdywgLmNoZWNrYm94Um93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpbnB1dFt0eXBlPWNoZWNrYm94XSwgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgJitsYWJlbCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDFweCA4cHggMCAwO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREQ7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgJitsYWJlbCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBAY3RhR3JlZW47XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwMGMnO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7IFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgJitsYWJlbCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmx0LWllOSB7XG4gICAgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgbWFyZ2luOiA5cHggMTBweCAwO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gICAgICAgICYrbGFiZWwge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFZhbmlsbGEgRGF0ZXBpY2tlciBTdHlsZXMgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuI3VpLWRhdGVwaWNrZXItZGl2LCAuaGFzRGF0ZXBpY2tlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgIC51aS1kYXRlcGlja2VyLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC8vIE5leHQgQnV0dG9uXG4gICAgLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWUge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbjogMTVweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC8vIFByZXZpb3VzIEJ1dHRvblxuICAgIC51aS1pY29uLWNpcmNsZS10cmlhbmdsZS13IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMTVweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgY29sb3I6ICM3MTcxNzE7XG4gICAgICAgIH1cblxuICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogNy41cHggOXB4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMzYzNjM2M7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYudWktc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiFcbkNob3NlbiwgYSBTZWxlY3QgQm94IEVuaGFuY2VyIGZvciBqUXVlcnkgYW5kIFByb3RvdHlwZVxuYnkgUGF0cmljayBGaWxsZXIgZm9yIEhhcnZlc3QsIGh0dHA6Ly9nZXRoYXJ2ZXN0LmNvbVxuXG5WZXJzaW9uIDEuNC4yXG5GdWxsIHNvdXJjZSBhdCBodHRwczovL2dpdGh1Yi5jb20vaGFydmVzdGhxL2Nob3NlblxuQ29weXJpZ2h0IChjKSAyMDExLTIwMTUgSGFydmVzdCBodHRwOi8vZ2V0aGFydmVzdC5jb21cblxuTUlUIExpY2Vuc2UsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJ2ZXN0aHEvY2hvc2VuL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWRcblRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYGdydW50IGJ1aWxkYCwgZG8gbm90IGVkaXQgaXQgYnkgaGFuZC5cbiovXG5cbi8qIEBncm91cCBCYXNlICovXG5cbi5jaG9zZW4tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLXdpZHRoOiAxOTBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6b29tOiAxO1xuICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLWRyb3Age1xuICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgXHR0b3A6IDEwMCU7XG4gIFx0bGVmdDogLTk5OTlweDtcbiAgXHRib3JkZXItdG9wOiAwO1xuICBcdGJhY2tncm91bmQ6ICNmZmY7XG4gIFx0ei1pbmRleDo2MDAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREQ7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1kcm9wIHtcbiAgXHRsZWZ0OiAtMXB4O1xuICBcdHJpZ2h0OiAtMXB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciBhIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuc2VhcmNoLWNob2ljZSAuZ3JvdXAtbmFtZSwgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1zaW5nbGUgLmdyb3VwLW5hbWUge1xuICBcdG1hcmdpbi1yaWdodDogNHB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgXHRmb250LXdlaWdodDogbm9ybWFsO1xuICBcdGNvbG9yOiAjOTk5OTk5O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuc2VhcmNoLWNob2ljZSAuZ3JvdXAtbmFtZTphZnRlciwgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1zaW5nbGUgLmdyb3VwLW5hbWU6YWZ0ZXIge1xuICBcdGNvbnRlbnQ6IFwiOlwiO1xuICBcdHBhZGRpbmctbGVmdDogMnB4O1xuICBcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8qIEBlbmQgKi9cbi8qIEBncm91cCBTaW5nbGUgQ2hvc2VuICovXG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSB7XG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGRpc3BsYXk6IGJsb2NrO1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dGV4dC1hbGlnbjogbGVmdDtcbiAgXHRwYWRkaW5nOiAwIDM1cHggMCAxMHB4O1xuICBcdGhlaWdodDogMzhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZGVmYXVsdCB7XG4gICAgY29sb3I6ICM5OTk7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZS13aXRoLWRlc2VsZWN0IHNwYW4ge1xuICAgIG1hcmdpbi1yaWdodDogMzhweDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDZweDtcbiAgICByaWdodDogMjZweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgZm9udC1zaXplOiAxcHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDI1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IGIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxcZjBkN1wiO1xuICAgICAgICByaWdodDogLTE1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlIDBtcztcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZSAwbXM7XG4gICAgICAgIC1tcy10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZSAwbXM7XG4gICAgICAgIC1vLXRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlIDBtcztcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UgMG1zO1xuICAgIH1cbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAxMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogM3B4IDRweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBcdGJhY2tncm91bmQ6ICNGRkY7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIHBhZGRpbmc6IDVweCAyMHB4IDVweCA1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG91dGxpbmU6IDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgXHRib3JkZXI6IDFweCBzb2xpZCAjREREO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1kcm9wIHtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIFx0dGV4dC1hbGlnbjogbGVmdDtcbiAgXHRiYWNrZ3JvdW5kOiAjRkZGO1xuICBcdGJvcmRlcjogMXB4IHNvbGlkICNEREQ7XG4gIFx0Ym9yZGVyLXRvcDogMDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi1jb250YWluZXItc2luZ2xlLW5vc2VhcmNoIC5jaG9zZW4tc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTk5OTlweDtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIFJlc3VsdHMgKi9cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWFyZ2luOiAwIDRweCA0cHggMDtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogN3B4IDZweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5hY3RpdmUtcmVzdWx0IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZGlzYWJsZWQtcmVzdWx0IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgY29sb3I6ICNjY2M7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuaGlnaGxpZ2h0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGRkZGQ7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkubm8tcmVzdWx0cyB7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZ3JvdXAtcmVzdWx0IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAxMHB4IDVweDtcbn1cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1vcHRpb24ge1xuICAgIC8vcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIGVtIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8qIEBlbmQgKi9cbi8qIEBncm91cCBNdWx0aSBDaG9zZW4gKi9cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDVweCA1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogdGV4dDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIG1hcmdpbjogMXB4IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDNweCA1cHggM3B4IDA7XG4gICAgcGFkZGluZzogNXB4IDIwcHggNXB4IDVweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5R3JlZW47XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSBzcGFuIHtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2cHg7XG4gICAgcmlnaHQ6IDNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgZm9udC1zaXplOiAxcHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwMGQnO1xuICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDJweCAtMTBweDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UtZGlzYWJsZWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gICAgY29sb3I6ICM2NjY7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDRkNGQ0O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1mb2N1cyAuc2VhcmNoLWNob2ljZS1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTEwcHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tcmVzdWx0cyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tZHJvcCAucmVzdWx0LXNlbGVjdGVkIHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgY29sb3I6ICNjY2M7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgQWN0aXZlICAqL1xuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIHtcblxufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYgYiB7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgfVxufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgY29sb3I6ICMyMjIgIWltcG9ydGFudDtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIERpc2FibGVkIFN1cHBvcnQgKi9cblxuLmNob3Nlbi1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6MC4yO1xufVxuXG4uY2hvc2VuLWRpc2FibGVkIC5jaG9zZW4tc2luZ2xlIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1jaG9pY2VzIC5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIEBlbmQgKi9cbi8qIEBncm91cCBSaWdodCB0byBMZWZ0ICovXG4uY2hvc2VuLXJ0bCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwYWRkaW5nOiAwIDhweCAwIDA7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlIHNwYW4ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMjZweDtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUtd2l0aC1kZXNlbGVjdCBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogMzhweDtcbn1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUgZGl2IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAzcHg7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlIGFiYnIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDI2cHg7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tY2hvaWNlcyBsaSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSB7XG4gICAgbWFyZ2luOiAzcHggNXB4IDNweCAwO1xuICAgIHBhZGRpbmc6IDNweCA1cHggM3B4IDE5cHg7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA0cHg7XG59XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlLW5vc2VhcmNoIC5jaG9zZW4tc2VhcmNoLFxuLmNob3Nlbi1ydGwgLmNob3Nlbi1kcm9wIHtcbiAgICBsZWZ0OiA5OTk5cHg7XG59XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tcmVzdWx0cyB7XG4gICAgbWFyZ2luOiAwIDAgNHB4IDRweDtcbiAgICBwYWRkaW5nOiAwIDRweCAwIDA7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1vcHRpb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdiB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgcGFkZGluZzogNHB4IDVweCA0cHggMjBweDtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLmNob3Nlbi1ydGwuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IGIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDZweCAycHg7XG59XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IGIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMnB4IDJweDtcbn1cblxuLm1vYmlsZUNob3NlbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWluLXdpZHRoOiAyMDBweDtcblxuXHRzZWxlY3Qge1xuXHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgbGVmdDogMDtcblx0ICAgIHRvcDogMDtcblx0ICAgIHdpZHRoOiAxMDAlO1xuXHQgICAgaGVpZ2h0OiAxMDAlO1xuXHQgICAgb3BhY2l0eTogMDtcblx0ICAgIGN1cnNvcjogcG9pbnRlcjtcblx0ICAgIHotaW5kZXg6IDk5ODtcblx0fVxufVxuIiwiLyohXG4gKiBGdWxsQ2FsZW5kYXIgdjIuNS4wIFN0eWxlc2hlZXRcbiAqIERvY3MgJiBMaWNlbnNlOiBodHRwOi8vZnVsbGNhbGVuZGFyLmlvL1xuICogKGMpIDIwMTUgQWRhbSBTaGF3XG4gKi9cblxuXG4uZmMge1xuXHRkaXJlY3Rpb246IGx0cjtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmZjLXJ0bCB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5ib2R5IC5mYyB7IC8qIGV4dHJhIHByZWNlZGVuY2UgdG8gb3ZlcmNvbWUganF1aSAqL1xuXHRmb250LXNpemU6IDFlbTtcbn1cblxuXG4vKiBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXVudGhlbWVkIHRoLFxuLmZjLXVudGhlbWVkIHRkLFxuLmZjLXVudGhlbWVkIHRoZWFkLFxuLmZjLXVudGhlbWVkIHRib2R5LFxuLmZjLXVudGhlbWVkIC5mYy1kaXZpZGVyLFxuLmZjLXVudGhlbWVkIC5mYy1yb3csXG4uZmMtdW50aGVtZWQgLmZjLXBvcG92ZXIge1xuXHRib3JkZXItY29sb3I6ICNkZGQ7XG59XG5cbi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5mYy11bnRoZW1lZCAuZmMtZGl2aWRlcixcbi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIHtcblx0YmFja2dyb3VuZDogI2VlZTtcbn1cblxuLmZjLXVudGhlbWVkIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLWNsb3NlIHtcblx0Y29sb3I6ICM2NjY7XG59XG5cbi5mYy11bnRoZW1lZCAuZmMtdG9kYXkge1xuXHRiYWNrZ3JvdW5kOiAjZmNmOGUzO1xufVxuXG4uZmMtaGlnaGxpZ2h0IHsgLyogd2hlbiB1c2VyIGlzIHNlbGVjdGluZyBjZWxscyAqL1xuXHRiYWNrZ3JvdW5kOiAjYmNlOGYxO1xuXHRvcGFjaXR5OiAuMztcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTMwKTsgLyogZm9yIElFICovXG59XG5cbi5mYy1iZ2V2ZW50IHsgLyogZGVmYXVsdCBsb29rIGZvciBiYWNrZ3JvdW5kIGV2ZW50cyAqL1xuXHRiYWNrZ3JvdW5kOiByZ2IoMTQzLCAyMjMsIDEzMCk7XG5cdG9wYWNpdHk6IC4zO1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApOyAvKiBmb3IgSUUgKi9cbn1cblxuLmZjLW5vbmJ1c2luZXNzIHsgLyogZGVmYXVsdCBsb29rIGZvciBub24tYnVzaW5lc3MtaG91cnMgYXJlYXMgKi9cblx0Lyogd2lsbCBpbmhlcml0IC5mYy1iZ2V2ZW50J3Mgc3R5bGVzICovXG5cdGJhY2tncm91bmQ6ICNkN2Q3ZDc7XG59XG5cblxuLyogSWNvbnMgKGlubGluZSBlbGVtZW50cyB3aXRoIHN0eWxlZCB0ZXh0IHRoYXQgbW9jayBhcnJvdyBpY29ucylcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLWljb24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxZW07XG5cdGhlaWdodDogMWVtO1xuXHRsaW5lLWhlaWdodDogMWVtO1xuXHRmb250LXNpemU6IDFlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRmb250LWZhbWlseTogXCJDb3VyaWVyIE5ld1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG5cblx0LyogZG9uJ3QgYWxsb3cgYnJvd3NlciB0ZXh0LXNlbGVjdGlvbiAqL1xuXHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG4vKlxuQWNjZXB0YWJsZSBmb250LWZhbWlseSBvdmVycmlkZXMgZm9yIGluZGl2aWR1YWwgaWNvbnM6XG5cdFwiQXJpYWxcIiwgc2Fucy1zZXJpZlxuXHRcIlRpbWVzIE5ldyBSb21hblwiLCBzZXJpZlxuXG5OT1RFOiB1c2UgcGVyY2VudGFnZSBmb250IHNpemVzIG9yIGVsc2Ugb2xkIElFIGNob2tlc1xuKi9cblxuLmZjLWljb246YWZ0ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMCAtMWVtOyAvKiBlbnN1cmVzIGNoYXJhY3RlciB3aWxsIGJlIGNlbnRlcmVkLCByZWdhcmRsZXNzIG9mIHdpZHRoICovXG59XG5cbi5mYy1pY29uLWxlZnQtc2luZ2xlLWFycm93OmFmdGVyIHtcblx0Y29udGVudDogXCJcXDAyMDM5XCI7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRmb250LXNpemU6IDIwMCU7XG5cdHRvcDogLTclO1xuXHRsZWZ0OiAzJTtcbn1cblxuLmZjLWljb24tcmlnaHQtc2luZ2xlLWFycm93OmFmdGVyIHtcblx0Y29udGVudDogXCJcXDAyMDNBXCI7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRmb250LXNpemU6IDIwMCU7XG5cdHRvcDogLTclO1xuXHRsZWZ0OiAtMyU7XG59XG5cbi5mYy1pY29uLWxlZnQtZG91YmxlLWFycm93OmFmdGVyIHtcblx0Y29udGVudDogXCJcXDAwMEFCXCI7XG5cdGZvbnQtc2l6ZTogMTYwJTtcblx0dG9wOiAtNyU7XG59XG5cbi5mYy1pY29uLXJpZ2h0LWRvdWJsZS1hcnJvdzphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXFwwMDBCQlwiO1xuXHRmb250LXNpemU6IDE2MCU7XG5cdHRvcDogLTclO1xufVxuXG4uZmMtaWNvbi1sZWZ0LXRyaWFuZ2xlOmFmdGVyIHtcblx0Y29udGVudDogXCJcXDI1QzRcIjtcblx0Zm9udC1zaXplOiAxMjUlO1xuXHR0b3A6IDMlO1xuXHRsZWZ0OiAtMiU7XG59XG5cbi5mYy1pY29uLXJpZ2h0LXRyaWFuZ2xlOmFmdGVyIHtcblx0Y29udGVudDogXCJcXDI1QkFcIjtcblx0Zm9udC1zaXplOiAxMjUlO1xuXHR0b3A6IDMlO1xuXHRsZWZ0OiAyJTtcbn1cblxuLmZjLWljb24tZG93bi10cmlhbmdsZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXFwyNUJDXCI7XG5cdGZvbnQtc2l6ZTogMTI1JTtcblx0dG9wOiAyJTtcbn1cblxuLmZjLWljb24teDphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXFwwMDBEN1wiO1xuXHRmb250LXNpemU6IDIwMCU7XG5cdHRvcDogNiU7XG59XG5cblxuLyogQnV0dG9ucyAoc3R5bGVkIDxidXR0b24+IHRhZ3MsIG5vcm1hbGl6ZWQgdG8gd29yayBjcm9zcy1icm93c2VyKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMgYnV0dG9uIHtcblx0LyogZm9yY2UgaGVpZ2h0IHRvIGluY2x1ZGUgdGhlIGJvcmRlciBhbmQgcGFkZGluZyAqL1xuXHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHQvKiBkaW1lbnNpb25zICovXG5cdG1hcmdpbjogMDtcblx0aGVpZ2h0OiAyLjFlbTtcblx0cGFkZGluZzogMCAuNmVtO1xuXG5cdC8qIHRleHQgJiBjdXJzb3IgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIG5vcm1hbGl6ZSAqL1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIEZpcmVmb3ggaGFzIGFuIGFubm95aW5nIGlubmVyIGJvcmRlciAqL1xuLmZjIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfVxuXG4uZmMtc3RhdGUtZGVmYXVsdCB7IC8qIG5vbi10aGVtZSAqL1xuXHRib3JkZXI6IDFweCBzb2xpZDtcbn1cblxuLmZjLXN0YXRlLWRlZmF1bHQuZmMtY29ybmVyLWxlZnQgeyAvKiBub24tdGhlbWUgKi9cblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG59XG5cbi5mYy1zdGF0ZS1kZWZhdWx0LmZjLWNvcm5lci1yaWdodCB7IC8qIG5vbi10aGVtZSAqL1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuXG4vKiBpY29ucyBpbiBidXR0b25zICovXG5cbi5mYyBidXR0b24gLmZjLWljb24geyAvKiBub24tdGhlbWUgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IC0wLjA1ZW07IC8qIHNlZW1zIHRvIGJlIGEgZ29vZCBhZGp1c3RtZW50IGFjcm9zcyBicm93c2VycyAqL1xuXHRtYXJnaW46IDAgLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAgYnV0dG9uIHN0YXRlc1xuICBib3Jyb3dlZCBmcm9tIHR3aXR0ZXIgYm9vdHN0cmFwIChodHRwOi8vdHdpdHRlci5naXRodWIuY29tL2Jvb3RzdHJhcC8pXG4qL1xuXG4uZmMtc3RhdGUtZGVmYXVsdCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG5cdGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiwgI2U2ZTZlNik7XG5cdGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZmZmZmZmKSwgdG8oI2U2ZTZlNikpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYsICNlNmU2ZTYpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmLCAjZTZlNmU2KTtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZmZmZiwgI2U2ZTZlNik7XG5cdGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcblx0Ym9yZGVyLWNvbG9yOiAjZTZlNmU2ICNlNmU2ZTYgI2JmYmZiZjtcblx0Ym9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG5cdGNvbG9yOiAjMzMzO1xuXHR0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLmZjLXN0YXRlLWhvdmVyLFxuLmZjLXN0YXRlLWRvd24sXG4uZmMtc3RhdGUtYWN0aXZlLFxuLmZjLXN0YXRlLWRpc2FibGVkIHtcblx0Y29sb3I6ICMzMzMzMzM7XG5cdGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG59XG5cbi5mYy1zdGF0ZS1ob3ZlciB7XG5cdGNvbG9yOiAjMzMzMzMzO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE1cHg7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjtcblx0ICAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyO1xuXHQgICAgIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQtcG9zaXRpb24gMC4xcyBsaW5lYXI7XG5cdCAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjtcbn1cblxuLmZjLXN0YXRlLWRvd24sXG4uZmMtc3RhdGUtYWN0aXZlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4uZmMtc3RhdGUtZGlzYWJsZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdG9wYWNpdHk6IDAuNjU7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT02NSk7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG5cblxuLyogQnV0dG9ucyBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLWJ1dHRvbi1ncm91cCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLypcbmV2ZXJ5IGJ1dHRvbiB0aGF0IGlzIG5vdCBmaXJzdCBpbiBhIGJ1dHRvbiBncm91cCBzaG91bGQgc2Nvb3RjaCBvdmVyIG9uZSBwaXhlbCBhbmQgY292ZXIgdGhlXG5wcmV2aW91cyBidXR0b24ncyBib3JkZXIuLi5cbiovXG5cbi5mYyAuZmMtYnV0dG9uLWdyb3VwID4gKiB7IC8qIGV4dHJhIHByZWNlZGVuY2UgYi9jIGJ1dHRvbnMgaGF2ZSBtYXJnaW4gc2V0IHRvIHplcm8gKi9cblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbjogMCAwIDAgLTFweDtcbn1cblxuLmZjIC5mYy1idXR0b24tZ3JvdXAgPiA6Zmlyc3QtY2hpbGQgeyAvKiBzYW1lICovXG5cdG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5cbi8qIFBvcG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXBvcG92ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLC4xNSk7XG59XG5cbi5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgeyAvKiBUT0RPOiBiZSBtb3JlIGNvbnNpc3RlbnQgd2l0aCBmYy1oZWFkL2ZjLWJvZHkgKi9cblx0cGFkZGluZzogMnB4IDRweDtcbn1cblxuLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtdGl0bGUge1xuXHRtYXJnaW46IDAgMnB4O1xufVxuXG4uZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy1jbG9zZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZjLWx0ciAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy10aXRsZSxcbi5mYy1ydGwgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2Uge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLmZjLXJ0bCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy10aXRsZSxcbi5mYy1sdHIgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2Uge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi8qIHVudGhlbWVkICovXG5cbi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciB7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4uZmMtdW50aGVtZWQgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2Uge1xuXHRmb250LXNpemU6IC45ZW07XG5cdG1hcmdpbi10b3A6IDJweDtcbn1cblxuLyoganF1aSB0aGVtZWQgKi9cblxuLmZjLXBvcG92ZXIgPiAudWktd2lkZ2V0LWhlYWRlciArIC51aS13aWRnZXQtY29udGVudCB7XG5cdGJvcmRlci10b3A6IDA7IC8qIHdoZXJlIHRoZXkgbWVldCwgbGV0IHRoZSBoZWFkZXIgaGF2ZSB0aGUgYm9yZGVyICovXG59XG5cblxuLyogTWlzYyBSZXVzYWJsZSBDb21wb25lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy1kaXZpZGVyIHtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbmhyLmZjLWRpdmlkZXIge1xuXHRoZWlnaHQ6IDA7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMCAwIDJweDsgLyogaGVpZ2h0IGlzIHVucmVsaWFibGUgYWNyb3NzIGJyb3dzZXJzLCBzbyB1c2UgcGFkZGluZyAqL1xuXHRib3JkZXItd2lkdGg6IDFweCAwO1xufVxuXG4uZmMtY2xlYXIge1xuXHRjbGVhcjogYm90aDtcbn1cblxuLmZjLWJnLFxuLmZjLWJnZXZlbnQtc2tlbGV0b24sXG4uZmMtaGlnaGxpZ2h0LXNrZWxldG9uLFxuLmZjLWhlbHBlci1za2VsZXRvbiB7XG5cdC8qIHRoZXNlIGVsZW1lbnQgc2hvdWxkIGFsd2F5cyBjbGluZyB0byB0b3AtbGVmdC9yaWdodCBjb3JuZXJzICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcbn1cblxuLmZjLWJnIHtcblx0Ym90dG9tOiAwOyAvKiBzdHJlY2ggYmcgdG8gYm90dG9tIGVkZ2UgKi9cbn1cblxuLmZjLWJnIHRhYmxlIHtcblx0aGVpZ2h0OiAxMDAlOyAvKiBzdHJlY2ggYmcgdG8gYm90dG9tIGVkZ2UgKi9cbn1cblxuXG4vKiBUYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjIHRhYmxlIHtcblx0d2lkdGg6IDEwMCU7XG5cdHRhYmxlLWxheW91dDogZml4ZWQ7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xuXHRmb250LXNpemU6IDFlbTsgLyogbm9ybWFsaXplIGNyb3NzLWJyb3dzZXIgKi9cbn1cblxuLmZjIHRoIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmMgdGgsXG4uZmMgdGQge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZjIHRkLmZjLXRvZGF5IHtcblx0Ym9yZGVyLXN0eWxlOiBkb3VibGU7IC8qIG92ZXJjb21lIG5laWdoYm9yaW5nIGJvcmRlcnMgKi9cbn1cblxuXG4vKiBGYWtlIFRhYmxlIFJvd3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjIC5mYy1yb3cgeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJjb21lIHRoZW1lcyB3LyAudWktd2lkZ2V0LWNvbnRlbnQgZm9yY2luZyBhIDFweCBib3JkZXIgKi9cblx0Lyogbm8gdmlzaWJsZSBib3JkZXIgYnkgZGVmYXVsdC4gYnV0IG1ha2UgYXZhaWxhYmxlIGlmIG5lZWQgYmUgKHNjcm9sbGJhciB3aWR0aCBjb21wZW5zYXRpb24pICovXG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmZjLXJvdyB0YWJsZSB7XG5cdC8qIGRvbid0IHB1dCBsZWZ0L3JpZ2h0IGJvcmRlciBvbiBhbnl0aGluZyB3aXRoaW4gYSBmYWtlIHJvdy5cblx0ICAgdGhlIG91dGVyIHRib2R5IHdpbGwgd29ycnkgYWJvdXQgdGhpcyAqL1xuXHRib3JkZXItbGVmdDogMCBoaWRkZW4gdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yaWdodDogMCBoaWRkZW4gdHJhbnNwYXJlbnQ7XG5cblx0Lyogbm8gYm90dG9tIGJvcmRlcnMgb24gcm93cyAqL1xuXHRib3JkZXItYm90dG9tOiAwIGhpZGRlbiB0cmFuc3BhcmVudDtcbn1cblxuLmZjLXJvdzpmaXJzdC1jaGlsZCB0YWJsZSB7XG5cdGJvcmRlci10b3A6IDAgaGlkZGVuIHRyYW5zcGFyZW50OyAvKiBubyB0b3AgYm9yZGVyIG9uIGZpcnN0IHJvdyAqL1xufVxuXG5cbi8qIERheSBSb3cgKHVzZWQgd2l0aGluIHRoZSBoZWFkZXIgYW5kIHRoZSBEYXlHcmlkKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtcm93IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmMtcm93IC5mYy1iZyB7XG5cdHotaW5kZXg6IDE7XG59XG5cbi8qIGhpZ2hsaWdodGluZyBjZWxscyAmIGJhY2tncm91bmQgZXZlbnQgc2tlbGV0b24gKi9cblxuLmZjLXJvdyAuZmMtYmdldmVudC1za2VsZXRvbixcbi5mYy1yb3cgLmZjLWhpZ2hsaWdodC1za2VsZXRvbiB7XG5cdGJvdHRvbTogMDsgLyogc3RyZXRjaCBza2VsZXRvbiB0byBib3R0b20gb2Ygcm93ICovXG59XG5cbi5mYy1yb3cgLmZjLWJnZXZlbnQtc2tlbGV0b24gdGFibGUsXG4uZmMtcm93IC5mYy1oaWdobGlnaHQtc2tlbGV0b24gdGFibGUge1xuXHRoZWlnaHQ6IDEwMCU7IC8qIHN0cmV0Y2ggc2tlbGV0b24gdG8gYm90dG9tIG9mIHJvdyAqL1xufVxuXG4uZmMtcm93IC5mYy1oaWdobGlnaHQtc2tlbGV0b24gdGQsXG4uZmMtcm93IC5mYy1iZ2V2ZW50LXNrZWxldG9uIHRkIHtcblx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmZjLXJvdyAuZmMtYmdldmVudC1za2VsZXRvbiB7XG5cdHotaW5kZXg6IDI7XG5cbn1cblxuLmZjLXJvdyAuZmMtaGlnaGxpZ2h0LXNrZWxldG9uIHtcblx0ei1pbmRleDogMztcbn1cblxuLypcbnJvdyBjb250ZW50ICh3aGljaCBjb250YWlucyBkYXkvd2VlayBudW1iZXJzIGFuZCBldmVudHMpIGFzIHdlbGwgYXMgXCJoZWxwZXJcIiAod2hpY2ggY29udGFpbnNcbnRlbXBvcmFyeSByZW5kZXJlZCBldmVudHMpLlxuKi9cblxuLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogNDtcblx0cGFkZGluZy1ib3R0b206IDJweDsgLyogbWF0Y2hlcyB0aGUgc3BhY2UgYWJvdmUgdGhlIGV2ZW50cyAqL1xufVxuXG4uZmMtcm93IC5mYy1oZWxwZXItc2tlbGV0b24ge1xuXHR6LWluZGV4OiA1O1xufVxuXG4uZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9uIHRkLFxuLmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9uIHRkIHtcblx0Lyogc2VlLXRocm91Z2ggdG8gdGhlIGJhY2tncm91bmQgYmVsb3cgKi9cblx0YmFja2dyb3VuZDogbm9uZTsgLyogaW4gY2FzZSA8dGQ+cyBhcmUgZ2xvYmFsbHkgc3R5bGVkICovXG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0LyogZG9uJ3QgcHV0IGEgYm9yZGVyIGJldHdlZW4gZXZlbnRzIGFuZC9vciB0aGUgZGF5IG51bWJlciAqL1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9uIHRib2R5IHRkLCAvKiBjZWxscyB3aXRoIGV2ZW50cyBpbnNpZGUgKHNvIE5PVCB0aGUgZGF5IG51bWJlciBjZWxsKSAqL1xuLmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9uIHRib2R5IHRkIHtcblx0LyogZG9uJ3QgcHV0IGEgYm9yZGVyIGJldHdlZW4gZXZlbnQgY2VsbHMgKi9cblx0Ym9yZGVyLXRvcDogMDtcbn1cblxuXG4vKiBTY3JvbGxpbmcgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy1zY3JvbGxlciB7IC8qIHRoaXMgY2xhc3MgZ29lcyBvbiBlbGVtZW50cyBmb3IgZ3VhcmFudGVlZCB2ZXJ0aWNhbCBzY3JvbGxiYXJzICovXG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4uZmMtc2Nyb2xsZXIgPiAqIHsgLyogd2UgZXhwZWN0IGFuIGltbWVkaWF0ZSBpbm5lciBlbGVtZW50ICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogcmUtc2NvcGUgYWxsIHBvc2l0aW9ucyAqL1xuXHR3aWR0aDogMTAwJTsgLyogaGFjayB0byBmb3JjZSByZS1zaXppbmcgdGhpcyBpbm5lciBlbGVtZW50IHdoZW4gc2Nyb2xsYmFycyBhcHBlYXIvZGlzYXBwZWFyICovXG5cdG92ZXJmbG93OiBoaWRkZW47IC8qIGRvbid0IGxldCBuZWdhdGl2ZSBtYXJnaW5zIG9yIGFic29sdXRlIHBvc2l0aW9uaW5nIGNyZWF0ZSBmdXJ0aGVyIHNjcm9sbCAqL1xufVxuXG5cbi8qIEdsb2JhbCBFdmVudCBTdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLWV2ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlOyAvKiBmb3IgcmVzaXplIGhhbmRsZSBhbmQgb3RoZXIgaW5uZXIgcG9zaXRpb25pbmcgKi9cblx0ZGlzcGxheTogYmxvY2s7IC8qIG1ha2UgdGhlIDxhPiB0YWcgYmxvY2sgKi9cblx0Zm9udC1zaXplOiAuODVlbTtcblx0bGluZS1oZWlnaHQ6IDEuMztcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDA4Nzc4OyAvKiBkZWZhdWx0IEJPUkRFUiBjb2xvciAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCMkFFOyAvKiBkZWZhdWx0IEJBQ0tHUk9VTkQgY29sb3IgKi9cblx0Y29sb3I6ICNGRkY7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7IC8qIHVuZG8ganF1aSdzIHVpLXdpZGdldC1oZWFkZXIgYm9sZCAqL1xuXHRmb250LWZhbWlseTogQHByaW1hcnlGb250O1xuICAgIC50cmFuc2l0aW9uKGFsbCBlYXNlLWluLW91dCAzMDBtcyk7XG5cblx0Jjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihAY3RhR3JlZW4sIDIwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBjdGFHcmVlbiwgMjAlKTtcbiAgICB9XG59XG5cbi8qIG92ZXJwb3dlciBzb21lIG9mIGJvb3RzdHJhcCdzIGFuZCBqcXVpJ3Mgc3R5bGVzIG9uIDxhPiB0YWdzICovXG4uZmMtZXZlbnQsXG4uZmMtZXZlbnQ6aG92ZXIsXG4udWktd2lkZ2V0IC5mYy1ldmVudCB7XG5cdGNvbG9yOiAjZmZmOyAvKiBkZWZhdWx0IFRFWFQgY29sb3IgKi9cblx0dGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiBpZiA8YT4gaGFzIGFuIGhyZWYgKi9cbn1cblxuLmZjLWV2ZW50W2hyZWZdLFxuLmZjLWV2ZW50LmZjLWRyYWdnYWJsZSB7XG5cdGN1cnNvcjogcG9pbnRlcjsgLyogZ2l2ZSBldmVudHMgd2l0aCBsaW5rcyBhbmQgZHJhZ2dhYmxlIGV2ZW50cyBhIGhhbmQgbW91c2UgcG9pbnRlciAqL1xufVxuXG4uZmMtbm90LWFsbG93ZWQsIC8qIGNhdXNlcyBhIFwid2FybmluZ1wiIGN1cnNvci4gYXBwbGllZCBvbiBib2R5ICovXG4uZmMtbm90LWFsbG93ZWQgLmZjLWV2ZW50IHsgLyogdG8gb3ZlcnJpZGUgYW4gZXZlbnQncyBjdXN0b20gY3Vyc29yICovXG5cdGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5mYy1ldmVudCAuZmMtYmcgeyAvKiB0aGUgZ2VuZXJpYyAuZmMtYmcgYWxyZWFkeSBkb2VzIHBvc2l0aW9uICovXG5cdHotaW5kZXg6IDE7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdG9wYWNpdHk6IC4yNTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTI1KTsgLyogZm9yIElFICovXG59XG5cbi5mYy1ldmVudCAuZmMtY29udGVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMjtcbn1cblxuLmZjLWV2ZW50IC5mYy1yZXNpemVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAzO1xufVxuXG5cbi8qIEhvcml6b250YWwgRXZlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIGV2ZW50cyB0aGF0IGFyZSBjb250aW51aW5nIHRvL2Zyb20gYW5vdGhlciB3ZWVrLiBraWxsIHJvdW5kZWQgY29ybmVycyBhbmQgYnV0dCB1cCBhZ2FpbnN0IGVkZ2UgKi9cblxuLmZjLWx0ciAuZmMtaC1ldmVudC5mYy1ub3Qtc3RhcnQsXG4uZmMtcnRsIC5mYy1oLWV2ZW50LmZjLW5vdC1lbmQge1xuXHRtYXJnaW4tbGVmdDogMDtcblx0Ym9yZGVyLWxlZnQtd2lkdGg6IDA7XG5cdHBhZGRpbmctbGVmdDogMXB4OyAvKiByZXBsYWNlIHRoZSBib3JkZXIgd2l0aCBwYWRkaW5nICovXG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5mYy1sdHIgLmZjLWgtZXZlbnQuZmMtbm90LWVuZCxcbi5mYy1ydGwgLmZjLWgtZXZlbnQuZmMtbm90LXN0YXJ0IHtcblx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRib3JkZXItcmlnaHQtd2lkdGg6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDFweDsgLyogcmVwbGFjZSB0aGUgYm9yZGVyIHdpdGggcGFkZGluZyAqL1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi8qIHJlc2l6ZXIgKi9cblxuLmZjLWgtZXZlbnQgLmZjLXJlc2l6ZXIgeyAvKiBwb3NpdGlvbmVkIGl0IHRvIG92ZXJjb21lIHRoZSBldmVudCdzIGJvcmRlcnMgKi9cblx0dG9wOiAtMXB4O1xuXHRib3R0b206IC0xcHg7XG5cdGxlZnQ6IC0xcHg7XG5cdHJpZ2h0OiAtMXB4O1xuXHR3aWR0aDogNXB4O1xufVxuXG4vKiBsZWZ0IHJlc2l6ZXIgICovXG4uZmMtbHRyIC5mYy1oLWV2ZW50IC5mYy1zdGFydC1yZXNpemVyLFxuLmZjLWx0ciAuZmMtaC1ldmVudCAuZmMtc3RhcnQtcmVzaXplcjpiZWZvcmUsXG4uZmMtbHRyIC5mYy1oLWV2ZW50IC5mYy1zdGFydC1yZXNpemVyOmFmdGVyLFxuLmZjLXJ0bCAuZmMtaC1ldmVudCAuZmMtZW5kLXJlc2l6ZXIsXG4uZmMtcnRsIC5mYy1oLWV2ZW50IC5mYy1lbmQtcmVzaXplcjpiZWZvcmUsXG4uZmMtcnRsIC5mYy1oLWV2ZW50IC5mYy1lbmQtcmVzaXplcjphZnRlciB7XG5cdHJpZ2h0OiBhdXRvOyAvKiBpZ25vcmUgdGhlIHJpZ2h0IGFuZCBvbmx5IHVzZSB0aGUgbGVmdCAqL1xuXHRjdXJzb3I6IHctcmVzaXplO1xufVxuXG4vKiByaWdodCByZXNpemVyICovXG4uZmMtbHRyIC5mYy1oLWV2ZW50IC5mYy1lbmQtcmVzaXplcixcbi5mYy1sdHIgLmZjLWgtZXZlbnQgLmZjLWVuZC1yZXNpemVyOmJlZm9yZSxcbi5mYy1sdHIgLmZjLWgtZXZlbnQgLmZjLWVuZC1yZXNpemVyOmFmdGVyLFxuLmZjLXJ0bCAuZmMtaC1ldmVudCAuZmMtc3RhcnQtcmVzaXplcixcbi5mYy1ydGwgLmZjLWgtZXZlbnQgLmZjLXN0YXJ0LXJlc2l6ZXI6YmVmb3JlLFxuLmZjLXJ0bCAuZmMtaC1ldmVudCAuZmMtc3RhcnQtcmVzaXplcjphZnRlciB7XG5cdGxlZnQ6IGF1dG87IC8qIGlnbm9yZSB0aGUgbGVmdCBhbmQgb25seSB1c2UgdGhlIHJpZ2h0ICovXG5cdGN1cnNvcjogZS1yZXNpemU7XG59XG5cblxuLyogRGF5R3JpZCBldmVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbldlIHVzZSB0aGUgZnVsbCBcImZjLWRheS1ncmlkLWV2ZW50XCIgY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBkZXNjZW5kYW50cyBiZWNhdXNlIHRoZSBldmVudCB3b24ndFxuYmUgYSBkZXNjZW5kYW50IG9mIHRoZSBncmlkIHdoZW4gaXQgaXMgYmVpbmcgZHJhZ2dlZC5cbiovXG5cbi5mYy1kYXktZ3JpZC1ldmVudCB7XG5cdG1hcmdpbjogMXB4IDJweCAwOyAvKiBzcGFjaW5nIGJldHdlZW4gZXZlbnRzIGFuZCBlZGdlcyAqL1xuXHRwYWRkaW5nOiAycHggNXB4O1xufVxuXG5cbi5mYy1kYXktZ3JpZC1ldmVudCAuZmMtY29udGVudCB7IC8qIGZvcmNlIGV2ZW50cyB0byBiZSBvbmUtbGluZSB0YWxsICovXG5cdC8vd2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZjLWRheS1ncmlkLWV2ZW50IC5mYy10aW1lIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mYy1kYXktZ3JpZC1ldmVudCAuZmMtcmVzaXplciB7IC8qIGVubGFyZ2UgdGhlIGRlZmF1bHQgaGl0IGFyZWEgKi9cblx0bGVmdDogLTNweDtcblx0cmlnaHQ6IC0zcHg7XG5cdHdpZHRoOiA3cHg7XG59XG5cblxuLyogRXZlbnQgTGltaXRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogXCJtb3JlXCIgbGluayB0aGF0IHJlcHJlc2VudHMgaGlkZGVuIGV2ZW50cyAqL1xuXG5hLmZjLW1vcmUge1xuXHRtYXJnaW46IDFweCAzcHg7XG5cdGZvbnQtc2l6ZTogLjg1ZW07XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hLmZjLW1vcmU6aG92ZXIge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmZjLWxpbWl0ZWQgeyAvKiByb3dzIGFuZCBjZWxscyB0aGF0IGFyZSBoaWRkZW4gYmVjYXVzZSBvZiBhIFwibW9yZVwiIGxpbmsgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogcG9wb3ZlciB0aGF0IGFwcGVhcnMgd2hlbiBcIm1vcmVcIiBsaW5rIGlzIGNsaWNrZWQgKi9cblxuLmZjLWRheS1ncmlkIC5mYy1yb3cge1xuXHR6LWluZGV4OiAxOyAvKiBtYWtlIHRoZSBcIm1vcmVcIiBwb3BvdmVyIG9uZSBoaWdoZXIgdGhhbiB0aGlzICovXG59XG5cbi5mYy1tb3JlLXBvcG92ZXIge1xuXHR6LWluZGV4OiAyO1xuXHR3aWR0aDogMjIwcHg7XG59XG5cbi5mYy1tb3JlLXBvcG92ZXIgLmZjLWV2ZW50LWNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IDEwcHg7XG59XG5cbi8qIFRvb2xiYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXRvb2xiYXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLWxlZnQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLXJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZmMtdG9vbGJhciAuZmMtY2VudGVyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiB0aGUgdGhpbmdzIHdpdGhpbiBlYWNoIGxlZnQvcmlnaHQvY2VudGVyIHNlY3Rpb24gKi9cbi5mYyAuZmMtdG9vbGJhciA+ICogPiAqIHsgLyogZXh0cmEgcHJlY2VkZW5jZSB0byBvdmVycmlkZSBidXR0b24gYm9yZGVyIG1hcmdpbnMgKi9cblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1sZWZ0OiAuNzVlbTtcbn1cblxuLyogdGhlIGZpcnN0IHRoaW5nIHdpdGhpbiBlYWNoIGxlZnQvY2VudGVyL3JpZ2h0IHNlY3Rpb24gKi9cbi5mYyAuZmMtdG9vbGJhciA+ICogPiA6Zmlyc3QtY2hpbGQgeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJyaWRlIGJ1dHRvbiBib3JkZXIgbWFyZ2lucyAqL1xuXHRtYXJnaW4tbGVmdDogMDtcbn1cblxuLyogdGl0bGUgdGV4dCAqL1xuXG4uZmMtdG9vbGJhciBoMiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogYnV0dG9uIGxheWVyaW5nIChmb3IgYm9yZGVyIHByZWNlZGVuY2UpICovXG5cbi5mYy10b29sYmFyIGJ1dHRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLXN0YXRlLWhvdmVyLFxuLmZjLXRvb2xiYXIgLnVpLXN0YXRlLWhvdmVyIHtcblx0ei1pbmRleDogMjtcbn1cblxuLmZjLXRvb2xiYXIgLmZjLXN0YXRlLWRvd24ge1xuXHR6LWluZGV4OiAzO1xufVxuXG4uZmMtdG9vbGJhciAuZmMtc3RhdGUtYWN0aXZlLFxuLmZjLXRvb2xiYXIgLnVpLXN0YXRlLWFjdGl2ZSB7XG5cdHotaW5kZXg6IDQ7XG59XG5cbi5mYy10b29sYmFyIGJ1dHRvbjpmb2N1cyB7XG5cdHotaW5kZXg6IDU7XG59XG5cblxuLyogVmlldyBTdHJ1Y3R1cmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogdW5kbyB0d2l0dGVyIGJvb3RzdHJhcCdzIGJveC1zaXppbmcgcnVsZXMuIG5vcm1hbGl6ZXMgcG9zaXRpb25pbmcgdGVjaG5pcXVlcyAqL1xuLyogZG9uJ3QgZG8gdGhpcyBmb3IgdGhlIHRvb2xiYXIgYmVjYXVzZSB3ZSdsbCB3YW50IGJvb3RzdHJhcCB0byBzdHlsZSB0aG9zZSBidXR0b25zIGFzIHNvbWUgcHQgKi9cbi5mYy12aWV3LWNvbnRhaW5lciAqLFxuLmZjLXZpZXctY29udGFpbmVyICo6YmVmb3JlLFxuLmZjLXZpZXctY29udGFpbmVyICo6YWZ0ZXIge1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHQgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHQgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4uZmMtdmlldywgLyogc2NvcGUgcG9zaXRpb25pbmcgYW5kIHotaW5kZXgncyBmb3IgZXZlcnl0aGluZyB3aXRoaW4gdGhlIHZpZXcgKi9cbi5mYy12aWV3ID4gdGFibGUgeyAvKiBzbyBkcmFnZ2VkIGVsZW1lbnRzIGNhbiBiZSBhYm92ZSB0aGUgdmlldydzIG1haW4gZWxlbWVudCAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG59XG5cbi8qIEJhc2ljVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBkYXkgcm93IHN0cnVjdHVyZSAqL1xuXG4uZmMtYmFzaWNXZWVrLXZpZXcgLmZjLWNvbnRlbnQtc2tlbGV0b24sXG4uZmMtYmFzaWNEYXktdmlldyAuZmMtY29udGVudC1za2VsZXRvbiB7XG5cdC8qIHdlIGFyZSBzdXJlIHRoZXJlIGFyZSBubyBkYXkgbnVtYmVycyBpbiB0aGVzZSB2aWV3cywgc28uLi4gKi9cblx0cGFkZGluZy10b3A6IDFweDsgLyogYWRkIGEgcGl4ZWwgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSAycHggcGFkZGluZyBhYm92ZSBldmVudHMgKi9cblx0cGFkZGluZy1ib3R0b206IDFlbTsgLyogZW5zdXJlIGEgc3BhY2UgYXQgYm90dG9tIG9mIGNlbGwgZm9yIHVzZXIgc2VsZWN0aW5nL2NsaWNraW5nICovXG59XG5cbi5mYy1iYXNpYy12aWV3IC5mYy1ib2R5IC5mYy1yb3cge1xuXHRtaW4taGVpZ2h0OiA0ZW07IC8qIGVuc3VyZSB0aGF0IGFsbCByb3dzIGFyZSBhdCBsZWFzdCB0aGlzIHRhbGwgKi9cbn1cblxuLyogYSBcInJpZ2lkXCIgcm93IHdpbGwgdGFrZSB1cCBhIGNvbnN0YW50IGFtb3VudCBvZiBoZWlnaHQgYmVjYXVzZSBjb250ZW50LXNrZWxldG9uIGlzIGFic29sdXRlICovXG5cbi5mYy1yb3cuZmMtcmlnaWQge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmMtcm93LmZjLXJpZ2lkIC5mYy1jb250ZW50LXNrZWxldG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xufVxuXG4vKiB3ZWVrIGFuZCBkYXkgbnVtYmVyIHN0eWxpbmcgKi9cblxuLmZjLWJhc2ljLXZpZXcgLmZjLXdlZWstbnVtYmVyLFxuLmZjLWJhc2ljLXZpZXcgLmZjLWRheS1udW1iZXIge1xuXHRwYWRkaW5nOiAwIDJweDtcbn1cblxuLmZjLWJhc2ljLXZpZXcgdGQuZmMtd2Vlay1udW1iZXIgc3Bhbixcbi5mYy1iYXNpYy12aWV3IHRkLmZjLWRheS1udW1iZXIge1xuXHRwYWRkaW5nLXRvcDogMnB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuXG4uZmMtYmFzaWMtdmlldyAuZmMtd2Vlay1udW1iZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mYy1iYXNpYy12aWV3IC5mYy13ZWVrLW51bWJlciBzcGFuIHtcblx0Lyogd29yayBhcm91bmQgdGhlIHdheSB3ZSBkbyBjb2x1bW4gcmVzaXppbmcgYW5kIGVuc3VyZSBhIG1pbmltdW0gd2lkdGggKi9cblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtaW4td2lkdGg6IDEuMjVlbTtcbn1cblxuLmZjLWx0ciAuZmMtYmFzaWMtdmlldyAuZmMtZGF5LW51bWJlciB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uZmMtcnRsIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktbnVtYmVyIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmZjLWRheS1udW1iZXIuZmMtb3RoZXItbW9udGgge1xuXHRvcGFjaXR5OiAwLjM7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7IC8qIGZvciBJRSAqL1xuXHQvKiBvcGFjaXR5IHdpdGggc21hbGwgZm9udCBjYW4gc29tZXRpbWVzIGxvb2sgdG9vIGZhZGVkXG5cdCAgIG1pZ2h0IHdhbnQgdG8gc2V0IHRoZSAnY29sb3InIHByb3BlcnR5IGluc3RlYWRcblx0ICAgbWFraW5nIGRheS1udW1iZXJzIGJvbGQgYWxzbyBmaXhlcyB0aGUgcHJvYmxlbSAqL1xufVxuXG4vKiBBZ2VuZGFWaWV3IGFsbC1kYXkgYXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtYWdlbmRhLXZpZXcgLmZjLWRheS1ncmlkIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyOyAvKiBzbyB0aGUgXCJtb3JlLi5cIiBwb3BvdmVyIHdpbGwgYmUgb3ZlciB0aGUgdGltZSBncmlkICovXG59XG5cbi5mYy1hZ2VuZGEtdmlldyAuZmMtZGF5LWdyaWQgLmZjLXJvdyB7XG5cdG1pbi1oZWlnaHQ6IDNlbTsgLyogYWxsLWRheSBzZWN0aW9uIHdpbGwgbmV2ZXIgZ2V0IHNob3J0ZXIgdGhhbiB0aGlzICovXG59XG5cbi5mYy1hZ2VuZGEtdmlldyAuZmMtZGF5LWdyaWQgLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB7XG5cdHBhZGRpbmctdG9wOiAxcHg7IC8qIGFkZCBhIHBpeGVsIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgMnB4IHBhZGRpbmcgYWJvdmUgZXZlbnRzICovXG5cdHBhZGRpbmctYm90dG9tOiAxZW07IC8qIGdpdmUgc3BhY2UgdW5kZXJuZWF0aCBldmVudHMgZm9yIGNsaWNraW5nL3NlbGVjdGluZyBkYXlzICovXG59XG5cblxuLyogVGltZUdyaWQgYXhpcyBydW5uaW5nIGRvd24gdGhlIHNpZGUgKGZvciBib3RoIHRoZSBhbGwtZGF5IGFyZWEgYW5kIHRoZSBzbG90IGFyZWEpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYyAuZmMtYXhpcyB7IC8qIC5mYyB0byBvdmVyY29tZSBkZWZhdWx0IGNlbGwgc3R5bGVzICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmc6IDAgNHB4O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmMtbHRyIC5mYy1heGlzIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5mYy1ydGwgLmZjLWF4aXMge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udWktd2lkZ2V0IHRkLmZjLWF4aXMge1xuXHRmb250LXdlaWdodDogbm9ybWFsOyAvKiBvdmVyY29tZSBqcXVpIHRoZW1lIG1ha2luZyBpdCBib2xkICovXG59XG5cblxuLyogVGltZUdyaWQgU3RydWN0dXJlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5mYy10aW1lLWdyaWQtY29udGFpbmVyLCAvKiBzbyBzY3JvbGwgY29udGFpbmVyJ3Mgei1pbmRleCBpcyBiZWxvdyBhbGwtZGF5ICovXG4uZmMtdGltZS1ncmlkIHsgLyogc28gc2xhdHMvYmcvY29udGVudC9ldGMgcG9zaXRpb25zIGdldCBzY29wZWQgd2l0aGluIGhlcmUgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uZmMtdGltZS1ncmlkIHtcblx0bWluLWhlaWdodDogMTAwJTsgLyogc28gaWYgaGVpZ2h0IHNldHRpbmcgaXMgJ2F1dG8nLCAuZmMtYmcgc3RyZXRjaGVzIHRvIGZpbGwgaGVpZ2h0ICovXG59XG5cbi5mYy10aW1lLWdyaWQgdGFibGUgeyAvKiBkb24ndCBwdXQgb3V0ZXIgYm9yZGVycyBvbiBzbGF0cy9iZy9jb250ZW50L2V0YyAqL1xuXHRib3JkZXI6IDAgaGlkZGVuIHRyYW5zcGFyZW50O1xufVxuXG4uZmMtdGltZS1ncmlkID4gLmZjLWJnIHtcblx0ei1pbmRleDogMTtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtc2xhdHMsXG4uZmMtdGltZS1ncmlkID4gaHIgeyAvKiB0aGUgPGhyPiBBZ2VuZGFWaWV3IGluamVjdHMgd2hlbiBncmlkIGlzIHNob3J0ZXIgdGhhbiBzY3JvbGxlciAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLWJnZXZlbnQtc2tlbGV0b24sXG4uZmMtdGltZS1ncmlkIC5mYy1jb250ZW50LXNrZWxldG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xufVxuXG4uZmMtdGltZS1ncmlkIC5mYy1iZ2V2ZW50LXNrZWxldG9uIHtcblx0ei1pbmRleDogMztcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtaGlnaGxpZ2h0LXNrZWxldG9uIHtcblx0ei1pbmRleDogNDtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtY29udGVudC1za2VsZXRvbiB7XG5cdHotaW5kZXg6IDU7XG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLWhlbHBlci1za2VsZXRvbiB7XG5cdHotaW5kZXg6IDY7XG59XG5cblxuLyogVGltZUdyaWQgU2xhdHMgKGxpbmVzIHRoYXQgcnVuIGhvcml6b250YWxseSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXRpbWUtZ3JpZCAuZmMtc2xhdHMgdGQge1xuXHRoZWlnaHQ6IDEuNWVtO1xuXHRib3JkZXItYm90dG9tOiAwOyAvKiBlYWNoIGNlbGwgaXMgcmVzcG9uc2libGUgZm9yIGl0cyB0b3AgYm9yZGVyICovXG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLXNsYXRzIC5mYy1taW5vciB0ZCB7XG5cdGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtc2xhdHMgLnVpLXdpZGdldC1jb250ZW50IHsgLyogZm9yIGpxdWkgdGhlbWUgKi9cblx0YmFja2dyb3VuZDogbm9uZTsgLyogc2VlIHRocm91Z2ggdG8gZmMtYmcgKi9cbn1cblxuXG4vKiBUaW1lR3JpZCBIaWdobGlnaHRpbmcgU2xvdHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZjLXRpbWUtZ3JpZCAuZmMtaGlnaGxpZ2h0LWNvbnRhaW5lciB7IC8qIGEgZGl2IHdpdGhpbiBhIGNlbGwgd2l0aGluIHRoZSBmYy1oaWdobGlnaHQtc2tlbGV0b24gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlOyAvKiBzY29wZXMgdGhlIGxlZnQvcmlnaHQgb2YgdGhlIGZjLWhpZ2hsaWdodCB0byBiZSBpbiB0aGUgY29sdW1uICovXG59XG5cbi5mYy10aW1lLWdyaWQgLmZjLWhpZ2hsaWdodCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdC8qIHRvcCBhbmQgYm90dG9tIHdpbGwgYmUgaW4gYnkgSlMgKi9cbn1cblxuXG4vKiBUaW1lR3JpZCBFdmVudCBDb250YWlubWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtdGltZS1ncmlkIC5mYy1ldmVudC1jb250YWluZXIsIC8qIGEgZGl2IHdpdGhpbiBhIGNlbGwgd2l0aGluIHRoZSBmYy1jb250ZW50LXNrZWxldG9uICovXG4uZmMtdGltZS1ncmlkIC5mYy1iZ2V2ZW50LWNvbnRhaW5lciB7IC8qIGEgZGl2IHdpdGhpbiBhIGNlbGwgd2l0aGluIHRoZSBmYy1iZ2V2ZW50LXNrZWxldG9uICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZjLWx0ciAuZmMtdGltZS1ncmlkIC5mYy1ldmVudC1jb250YWluZXIgeyAvKiBzcGFjZSBvbiB0aGUgc2lkZXMgb2YgZXZlbnRzIGZvciBMVFIgKGRlZmF1bHQpICovXG5cdG1hcmdpbjogMCAyLjUlIDAgMnB4O1xufVxuXG4uZmMtcnRsIC5mYy10aW1lLWdyaWQgLmZjLWV2ZW50LWNvbnRhaW5lciB7IC8qIHNwYWNlIG9uIHRoZSBzaWRlcyBvZiBldmVudHMgZm9yIFJUTCAqL1xuXHRtYXJnaW46IDAgMnB4IDAgMi41JTtcbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtZXZlbnQsXG4uZmMtdGltZS1ncmlkIC5mYy1iZ2V2ZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxOyAvKiBzY29wZSBpbm5lciB6LWluZGV4J3MgKi9cbn1cblxuLmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudCB7XG5cdC8qIGJhY2tncm91bmQgZXZlbnRzIGFsd2F5cyBzcGFuIGZ1bGwgd2lkdGggKi9cblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG59XG5cblxuLyogR2VuZXJpYyBWZXJ0aWNhbCBFdmVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmMtdi1ldmVudC5mYy1ub3Qtc3RhcnQgeyAvKiBldmVudHMgdGhhdCBhcmUgY29udGludWluZyBmcm9tIGFub3RoZXIgZGF5ICovXG5cdC8qIHJlcGxhY2Ugc3BhY2UgbWFkZSBieSB0aGUgdG9wIGJvcmRlciB3aXRoIHBhZGRpbmcgKi9cblx0Ym9yZGVyLXRvcC13aWR0aDogMDtcblx0cGFkZGluZy10b3A6IDFweDtcblxuXHQvKiByZW1vdmUgdG9wIHJvdW5kZWQgY29ybmVycyAqL1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmZjLXYtZXZlbnQuZmMtbm90LWVuZCB7XG5cdC8qIHJlcGxhY2Ugc3BhY2UgbWFkZSBieSB0aGUgdG9wIGJvcmRlciB3aXRoIHBhZGRpbmcgKi9cblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMDtcblx0cGFkZGluZy1ib3R0b206IDFweDtcblxuXHQvKiByZW1vdmUgYm90dG9tIHJvdW5kZWQgY29ybmVycyAqL1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuXG4vKiBUaW1lR3JpZCBFdmVudCBTdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5XZSB1c2UgdGhlIGZ1bGwgXCJmYy10aW1lLWdyaWQtZXZlbnRcIiBjbGFzcyBpbnN0ZWFkIG9mIHVzaW5nIGRlc2NlbmRhbnRzIGJlY2F1c2UgdGhlIGV2ZW50IHdvbid0XG5iZSBhIGRlc2NlbmRhbnQgb2YgdGhlIGdyaWQgd2hlbiBpdCBpcyBiZWluZyBkcmFnZ2VkLlxuKi9cblxuLmZjLXRpbWUtZ3JpZC1ldmVudCB7XG5cdG92ZXJmbG93OiBoaWRkZW47IC8qIGRvbid0IGxldCB0aGUgYmcgZmxvdyBvdmVyIHJvdW5kZWQgY29ybmVycyAqL1xufVxuXG4uZmMtdGltZS1ncmlkLWV2ZW50IC5mYy10aW1lLFxuLmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtdGl0bGUge1xuXHRwYWRkaW5nOiAwIDFweDtcbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtdGltZSB7XG5cdGZvbnQtc2l6ZTogLjg1ZW07XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIHNob3J0IG1vZGUsIHdoZXJlIHRpbWUgYW5kIHRpdGxlIGFyZSBvbiB0aGUgc2FtZSBsaW5lICovXG5cbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLWNvbnRlbnQge1xuXHQvKiBkb24ndCB3cmFwIHRvIHNlY29uZCBsaW5lIChub3cgdGhhdCBjb250ZW50cyB3aWxsIGJlIGlubGluZSkgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZSxcbi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpdGxlIHtcblx0LyogcHV0IHRoZSB0aW1lIGFuZCB0aXRsZSBvbiB0aGUgc2FtZSBsaW5lICovXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZSBzcGFuIHtcblx0ZGlzcGxheTogbm9uZTsgLyogZG9uJ3QgZGlzcGxheSB0aGUgZnVsbCB0aW1lIHRleHQuLi4gKi9cbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZTpiZWZvcmUge1xuXHRjb250ZW50OiBhdHRyKGRhdGEtc3RhcnQpOyAvKiAuLi5pbnN0ZWFkLCBkaXNwbGF5IG9ubHkgdGhlIHN0YXJ0IHRpbWUgKi9cbn1cblxuLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXFwwMDBBMC1cXDAwMEEwXCI7IC8qIHNlcGVyYXRlIHdpdGggYSBkYXNoLCB3cmFwcGVkIGluIG5ic3AncyAqL1xufVxuXG4uZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNob3J0IC5mYy10aXRsZSB7XG5cdGZvbnQtc2l6ZTogLjg1ZW07IC8qIG1ha2UgdGhlIHRpdGxlIHRleHQgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdGltZSAqL1xuXHRwYWRkaW5nOiAwOyAvKiB1bmRvIHBhZGRpbmcgZnJvbSBhYm92ZSAqL1xufVxuXG4vKiByZXNpemVyICovXG5cbi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLXJlc2l6ZXIge1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRoZWlnaHQ6IDhweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bGluZS1oZWlnaHQ6IDhweDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGN1cnNvcjogcy1yZXNpemU7XG59XG5cbi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLXJlc2l6ZXI6YWZ0ZXIge1xuXHRjb250ZW50OiBcIj1cIjtcbn1cblxuLmZjLWV2ZW50LWNvbnRhaW5lcjpob3ZlciB7XG5cdGN1cnNvcjpwb2ludGVyO1xufVxuLypcbnRkLmZjLW90aGVyLW1vbnRoIC5mYy1kYXktbnVtYmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiovXG4iLCIuYW5pbWF0aW9uU3RyZWV0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNTM1cHg7XG4gICAgaGVpZ2h0OiAzMTZweDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMjhweCA1MHB4O1xuXG4gICAgKiB7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmtleWZyYW1lcyhwb3BJbjsge1xuXHRcdDAlIHsudHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTQwcHgpKTt9XG5cdFx0MjAlLCA1MCUsIDgwJSwgMTAwJSB7LnRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTt9XG4gICAgICAgIDQwJSB7LnRyYW5zZm9ybSh0cmFuc2xhdGVZKC0xNXB4KSk7fVxuICAgICAgICA2MCUgey50cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTJweCkpO31cblx0fSk7XG5cbiAgICAua2V5ZnJhbWVzKHBvcFVwOyB7XG5cdFx0MCUgey50cmFuc2Zvcm0oc2NhbGUoMCkpO31cbiAgICAgICAgMTAwJSB7LnRyYW5zZm9ybShzY2FsZSgxKSk7fVxuXHR9KTtcblxuICAgIC50cmVlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDQ2cHg7XG4gICAgICAgIGxlZnQ6IDE2MHB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAudHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMjUlIDc1JTtcbiAgICB9XG5cbiAgICAucm9hZEFuaW1hdGlvbiB7XG4gICAgICAgIHdpZHRoOiA0MzVweDtcbiAgICAgICAgaGVpZ2h0OiAyNzBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgIGxlZnQ6IDUwcHg7XG4gICAgfVxuXG4gICAgJi5yZWFkeSB7XG5cbiAgICAgICAgLnJvYWQge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCA0MDBtcyBlYXNlLWluIDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50cmVlIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24ocG9wVXAgNTAwbXMgZWFzZS1pbiA1MDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJfMSwgLmRpZ2dlcl8xIHtcblx0XHRcdC5hbmltYXRpb24ocG9wVXAgNTAwbXMgbGluZWFyIDUwMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvdGVsXzEge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCA1MDBtcyBlYXNlLWluIDc1MG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvdGVsXzIge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCA1MDBtcyBlYXNlLWluIDExMDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sYW1wcG9zdF8xIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24ocG9wVXAgMzAwbXMgZWFzZS1pbiAyNTBtcyAxIGZvcndhcmRzKTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLmxhbXBwb3N0XzIge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCAzMDBtcyBlYXNlLWluIDUwMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhbXBwb3N0XzMge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCAzMDBtcyBlYXNlLWluIDc1MG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvdXNlXzEge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCA1MDBtcyBlYXNlLWluIDE0NTBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3VzZV8yIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24ocG9wVXAgNTAwbXMgZWFzZS1pbiAxODAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuaG91c2VfMyB7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKHBvcFVwIDUwMG1zIGVhc2UtaW4gMjE1MG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvdXNlXzQge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCA1MDBtcyBlYXNlLWluIDI1MDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3VzZV81IHtcbiAgICAgICAgICAgIC5hbmltYXRpb24ocG9wVXAgNTAwbXMgZWFzZS1pbiAyODUwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyXzIge1xuXHRcdFx0LmFuaW1hdGlvbihkcml2ZUNhcjIgMjBzIGxpbmVhciAycyBpbmZpbml0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyXzMge1xuXHRcdFx0LmFuaW1hdGlvbihkcml2ZUNhcjMgMjBzIGxpbmVhciA5cyBpbmZpbml0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyXzQge1xuXHRcdFx0LmFuaW1hdGlvbihkcml2ZUNhcjQgMjBzIGxpbmVhciAzcyBpbmZpbml0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyXzUge1xuXHRcdFx0LmFuaW1hdGlvbihkcml2ZUNhcjUgMjBzIGxpbmVhciA4cyBpbmZpbml0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyXzYge1xuXHRcdFx0LmFuaW1hdGlvbihkcml2ZUNhcjQgMjBzIGxpbmVhciAxOHMgaW5maW5pdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcl83IHtcblx0XHRcdC5hbmltYXRpb24oZHJpdmVDYXI3IDIwcyBsaW5lYXIgMTVzIGluZmluaXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yb2FkIHtcbiAgICAgICAgLnRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmhvdGVscyB7XG5cbiAgICAgICAgLmhvdGVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIC50cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3RlbF8xIHtcbiAgICAgICAgICAgIHRvcDogLTM1cHg7XG4gICAgICAgICAgICBsZWZ0OiAxMDRweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuaG90ZWxfMiB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAxODhweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGFtcHBvc3RzIHtcblxuICAgICAgICAubGFtcHBvc3Qge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICAgIC50cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhbXBwb3N0XzEge1xuICAgICAgICAgICAgdG9wOiA1NXB4O1xuICAgICAgICAgICAgbGVmdDogMTY3cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGFtcHBvc3RfMiB7XG4gICAgICAgICAgICB0b3A6IDEyOXB4O1xuICAgICAgICAgICAgbGVmdDogMjk1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGFtcHBvc3RfMyB7XG4gICAgICAgICAgICB0b3A6IDIwM3B4O1xuICAgICAgICAgICAgbGVmdDogNDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucm93T2ZCdWlsZGluZ3Mge1xuXG4gICAgICAgIC5ob3VzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAudHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaG91c2VfMSB7XG4gICAgICAgICAgICB0b3A6IDg4cHg7XG4gICAgICAgICAgICBsZWZ0OiAzMjlweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3VzZV8yIHtcbiAgICAgICAgICAgIHRvcDogMTA2cHg7XG4gICAgICAgICAgICBsZWZ0OiAzNjFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3VzZV8zIHtcbiAgICAgICAgICAgIHRvcDogMTE4cHg7XG4gICAgICAgICAgICBsZWZ0OiAzOTFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3VzZV80IHtcbiAgICAgICAgICAgIHRvcDogMTQxcHg7XG4gICAgICAgICAgICBsZWZ0OiA0MTdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3VzZV81IHtcbiAgICAgICAgICAgIHRvcDogMTQwcHg7XG4gICAgICAgICAgICBsZWZ0OiA0NTVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52ZWhpY2xlcyB7XG5cbiAgICAgICAgLnZlaGljbGUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogNjtcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcl8xIHtcbiAgICAgICAgICAgIHRvcDogOTJweDtcbiAgICAgICAgICAgIGxlZnQ6IDI0MXB4O1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIC50cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDc1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJfMiB7XG4gICAgICAgICAgICB0b3A6IDI3NXB4O1xuICAgICAgICAgICAgbGVmdDogNDIycHg7XG5cbiAgICAgICAgICAgIC5rZXlmcmFtZXMoZHJpdmVDYXIyOyB7XG5cdFx0XHRcdDAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoMCwwKSk7IH1cblx0XHRcdFx0MjAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoLTQ2NXB4LCAtMjcwcHgpKTsgfVxuICAgICAgICAgICAgICAgIDEwMCUgeyAudHJhbnNmb3JtKHRyYW5zbGF0ZSgtNDY1cHgsIC0yNzBweCkpOyB9XG5cdFx0XHR9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJfMyB7XG4gICAgICAgICAgICB0b3A6IDI3NXB4O1xuICAgICAgICAgICAgbGVmdDogNDIycHg7XG5cbiAgICAgICAgICAgIC5rZXlmcmFtZXMoZHJpdmVDYXIzOyB7XG5cdFx0XHRcdDAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoMCwwKSk7IH1cblx0XHRcdFx0MjAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoLTQ2NXB4LCAtMjcwcHgpKTsgfVxuICAgICAgICAgICAgICAgIDEwMCUgeyAudHJhbnNmb3JtKHRyYW5zbGF0ZSgtNDY1cHgsIC0yNzBweCkpOyB9XG5cdFx0XHR9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJfNCB7XG4gICAgICAgICAgICB0b3A6IC0yM3B4O1xuICAgICAgICAgICAgbGVmdDogLTQzcHg7XG5cbiAgICAgICAgICAgIC5rZXlmcmFtZXMoZHJpdmVDYXI0OyB7XG5cdFx0XHRcdDAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoMCwwKSk7IH1cblx0XHRcdFx0MjAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoNDgwcHgsIDI4MHB4KSk7IH1cbiAgICAgICAgICAgICAgICAxMDAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoNDgwcHgsIDI4MHB4KSk7IH1cblx0XHRcdH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcl81IHtcblxuICAgICAgICAgICAgdG9wOiAtMjNweDtcbiAgICAgICAgICAgIGxlZnQ6IC00M3B4O1xuXG4gICAgICAgICAgICAua2V5ZnJhbWVzKGRyaXZlQ2FyNTsge1xuXHRcdFx0XHQwJSB7IC50cmFuc2Zvcm0odHJhbnNsYXRlKDAsMCkpOyB9XG5cdFx0XHRcdDIwJSB7IC50cmFuc2Zvcm0odHJhbnNsYXRlKDQ4MHB4LCAyODBweCkpOyB9XG4gICAgICAgICAgICAgICAgMTAwJSB7IC50cmFuc2Zvcm0odHJhbnNsYXRlKDQ4MHB4LCAyODBweCkpOyB9XG5cdFx0XHR9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJfNiB7XG5cbiAgICAgICAgICAgIHRvcDogLTIzcHg7XG4gICAgICAgICAgICBsZWZ0OiAtNDNweDtcblxuICAgICAgICAgICAgLmtleWZyYW1lcyhkcml2ZUNhcjY7IHtcblx0XHRcdFx0MCUgeyAudHJhbnNmb3JtKHRyYW5zbGF0ZSgwLDApKTsgfVxuXHRcdFx0XHQyMCUgeyAudHJhbnNmb3JtKHRyYW5zbGF0ZSg0ODBweCwgMjgwcHgpKTsgfVxuICAgICAgICAgICAgICAgIDEwMCUgeyAudHJhbnNmb3JtKHRyYW5zbGF0ZSg0ODBweCwgMjgwcHgpKTsgfVxuXHRcdFx0fSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyXzcge1xuICAgICAgICAgICAgdG9wOiAyNzVweDtcbiAgICAgICAgICAgIGxlZnQ6IDQyMnB4O1xuXG4gICAgICAgICAgICAua2V5ZnJhbWVzKGRyaXZlQ2FyNzsge1xuXHRcdFx0XHQwJSB7IC50cmFuc2Zvcm0odHJhbnNsYXRlKDAsMCkpOyB9XG5cdFx0XHRcdDIwJSB7IC50cmFuc2Zvcm0odHJhbnNsYXRlKC00NjVweCwgLTI3MHB4KSk7IH1cbiAgICAgICAgICAgICAgICAxMDAlIHsgLnRyYW5zZm9ybSh0cmFuc2xhdGUoLTQ2NXB4LCAtMjcwcHgpKTsgfVxuXHRcdFx0fSk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGlnZ2VyXzEge1xuICAgICAgICAgICAgdG9wOiA1M3B4O1xuICAgICAgICAgICAgbGVmdDogMTkxcHg7XG4gICAgICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICAgICAgLnRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzUlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3RhdEdyYXBoIHtcbiAgICB3aWR0aDogNTcwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmdyaWQge1xuXG4gICAgfVxuXG4gICAgLmdyYXBoIHtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgLmtleWZyYW1lcyhtYXNrSW47IHtcblx0XHRcdDAlIHsgd2lkdGg6IDA7IH1cbiAgICAgICAgICAgIDEwMCUgeyB3aWR0aDogOTkuOSU7ICB9XG5cdFx0fSk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmdyYXBoSG90ZWxzIHtcblxuICAgICAgICAuaG90ZWwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDY1cHg7XG4gICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgICAgLnRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzUlO1xuXG4gICAgICAgICAgICAua2V5ZnJhbWVzKHBvcFVwOyB7XG4gICAgICAgICAgICAgICAgMCUgey50cmFuc2Zvcm0oc2NhbGUoMCkpO31cbiAgICAgICAgICAgICAgICAxMDAlIHsudHJhbnNmb3JtKHNjYWxlKDEpKTt9XG5cdFx0XHR9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3RlbF8xIHtcbiAgICAgICAgICAgIHRvcDogMzEwcHg7XG4gICAgICAgICAgICBsZWZ0OiAyNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3RlbF8yIHtcbiAgICAgICAgICAgIHRvcDogMjg2cHg7XG4gICAgICAgICAgICBsZWZ0OiAzNDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3RlbF8zIHtcbiAgICAgICAgICAgIHRvcDogMjUxcHg7XG4gICAgICAgICAgICBsZWZ0OiA0MjJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVhZHkge1xuXG4gICAgICAgIC5ncmFwaF9mcm9udCB7XG4gICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICAgICAuYW5pbWF0aW9uKG1hc2tJbiA0cyBlYXNlLW91dCAwLjVzIDEgZm9yd2FyZHMpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hbmltYXRpb24vZ3JhcGgvZnJvbnRfZ3JhcGgucG5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ncmFwaF9iYWNrIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKG1hc2tJbiA0cyBlYXNlLW91dCAwcyAxIGZvcndhcmRzKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYW5pbWF0aW9uL2dyYXBoL2JhY2tfZ3JhcGgucG5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ob3RlbF8xIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24ocG9wVXAgNjAwbXMgZWFzZS1vdXQgNDAwMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvdGVsXzIge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihwb3BVcCA2MDBtcyBlYXNlLW91dCA0NDAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuaG90ZWxfMyB7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKHBvcFVwIDYwMG1zIGVhc2Utb3V0IDQ4MDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ucm9vbVdyYXBwZXIge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogNTBweCAwO1xufVxuLnJvb20ge1xuXG4gICAgd2lkdGg6IDM1OXB4O1xuICAgIGhlaWdodDogMzI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBpbWcge1xuICAgICAgICAudHJhbnNmb3JtKHNjYWxlKDEuNSkgdHJhbnNsYXRlWSgtNTAwcHgpKTtcbiAgICB9XG5cbiAgICAua2V5ZnJhbWVzKGRyb3BEb3duOyB7XG4gICAgICAgIDAlIHsudHJhbnNmb3JtKHNjYWxlKDEuNSkgdHJhbnNsYXRlWSgtNTAwcHgpKTt9XG4gICAgICAgIDEwMCUgey50cmFuc2Zvcm0oc2NhbGUoMS41KSB0cmFuc2xhdGVZKDApKTt9XG5cdH0pO1xuXG4gICAgLm92ZXJsYXkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYW5pbWF0aW9uL3Jvb20vcm9vbS5wbmcpIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tYWluUm9vbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1NXB4O1xuICAgICAgICBsZWZ0OiA2MHB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC5pbm5lcldhbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNjZweDtcbiAgICAgICAgbGVmdDogMTE1cHg7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgfVxuXG4gICAgLnBsYW50XzEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjIycHg7XG4gICAgICAgIGxlZnQ6IDc2cHg7XG4gICAgICAgIHotaW5kZXg6IDc7XG4gICAgfVxuXG4gICAgLnBsYW50XzIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjUxcHg7XG4gICAgICAgIGxlZnQ6IDEyNnB4O1xuICAgICAgICB6LWluZGV4OiA5O1xuICAgIH1cblxuICAgIC50diB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyMjVweDtcbiAgICAgICAgbGVmdDogOTdweDtcbiAgICAgICAgei1pbmRleDogODtcbiAgICB9XG5cbiAgICAubGFtcCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyMjRweDtcbiAgICAgICAgbGVmdDogMjA1cHg7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgfVxuXG4gICAgLmRlc2sge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjQ0cHg7XG4gICAgICAgIGxlZnQ6IDE2N3B4O1xuICAgICAgICB6LWluZGV4OiA3O1xuICAgIH1cblxuICAgIC5zaW5rIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDE0MHB4O1xuICAgICAgICBsZWZ0OiAxNjFweDtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG5cbiAgICAudG9pbGV0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEyNHB4O1xuICAgICAgICBsZWZ0OiAyMDBweDtcbiAgICAgICAgei1pbmRleDogMztcbiAgICB9XG5cbiAgICAuYmF0aCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMTJweDtcbiAgICAgICAgbGVmdDogMTI2cHg7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLmJlZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxNjBweDtcbiAgICAgICAgbGVmdDogMTkwcHg7XG4gICAgICAgIHotaW5kZXg6IDY7XG4gICAgfVxuXG4gICAgLnBhcGVycyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyNjZweDtcbiAgICAgICAgbGVmdDogMTY5cHg7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgfVxuXG4gICAgJi5yZWFkeSB7XG5cbiAgICAgICAgLm1haW5Sb29tIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24oZHJvcERvd24gNDAwbXMgZWFzZS1vdXQgMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRvaWxldCB7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKGRyb3BEb3duIDQwMG1zIGVhc2Utb3V0IDgwMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpbmsge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihkcm9wRG93biA0MDBtcyBlYXNlLW91dCAxMTAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuYmF0aCB7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKGRyb3BEb3duIDQwMG1zIGVhc2Utb3V0IDEzMDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5iZWQge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihkcm9wRG93biA0MDBtcyBlYXNlLW91dCAxNDAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzayB7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKGRyb3BEb3duIDQwMG1zIGVhc2Utb3V0IDE2MDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbm5lcldhbGwge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihkcm9wRG93biA0MDBtcyBlYXNlLW91dCAyMDAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAucGxhbnRfMSB7XG4gICAgICAgICAgICAuYW5pbWF0aW9uKGRyb3BEb3duIDQwMG1zIGVhc2Utb3V0IDIyMDBtcyAxIGZvcndhcmRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wbGFudF8yIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24oZHJvcERvd24gNDAwbXMgZWFzZS1vdXQgMjMwMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhbXAge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihkcm9wRG93biA0MDBtcyBlYXNlLW91dCAyNTAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAudHYge1xuICAgICAgICAgICAgLmFuaW1hdGlvbihkcm9wRG93biA0MDBtcyBlYXNlLW91dCAyODAwbXMgMSBmb3J3YXJkcyk7XG4gICAgICAgIH1cblxuICAgICAgICAucGFwZXJzIHtcbiAgICAgICAgICAgIC5hbmltYXRpb24oZHJvcERvd24gNDAwbXMgZWFzZS1vdXQgMzAwMG1zIDEgZm9yd2FyZHMpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8vIElFOCBXcmFwcGVyXG5odG1sLmx0LWllOSB7XG5cbiAgICBtaW4td2lkdGg6IDE0ODBweDtcblxuICAgIC5ib3gge1xuICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICBtYXJnaW46IDAgMSUgMjBweCAwO1xuICAgIH1cblxuICAgIC5sb2dvIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogNTVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluTWVudSB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLmppZ3Nhd1dyYXAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICAubWFpbldyYXBwZXIgLmNvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgXG4gICAgLm1haW5XcmFwcGVyIC5jb250ZW50IC5zZWN0b3Ige1xuICAgICAgICB3aWR0aDogNDklO1xuICAgICAgICBtYXJnaW46IDAgMSUgMjBweCAwO1xuICAgIH1cbiAgICBcbiAgICAuY2xpZW50cyAuY2Fyb3VzZWwgbGkgYSBpbWcge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gICAgXG4gICAgLnNlY3Rpb24uYWJvdXQgLmNhcm91c2VsLmRhdGFDYXJvdXNlbCAuc2xpY2stZG90cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIFxuICAgIC5zZWN0aW9uLm1hcmtldFNuYXBzaG90IC5jb250ZW50LnJpZ2h0LCAuc2VjdGlvbi5wcm9kdWN0VHJlbmRzIC5jb250ZW50LnJpZ2h0LCBcbiAgICAuc2VjdGlvbi5zdGF0aXN0aWNzIC5jb250ZW50LnJpZ2h0LCAuc2VjdGlvbi5zZWFyY2ggLmNvbnRlbnQucmlnaHQsXG4gICAgLnNlY3Rpb24uZGV2aWNlcyAuY29udGVudC5sZWZ0LCAuc2VjdGlvbi5pbnNpZ2h0IC5jb250ZW50LmxlZnQsIC5zZWN0aW9uLnRyZW5kcyAuY29udGVudC5sZWZ0LFxuICAgIC5zZWN0aW9uLm1hcmtldHMgLmNvbnRlbnQubGVmdCwgLnNlY3Rpb24ucHJvZHVjdEluc2lnaHQgLm1hcCAubGVmdCwgLnNlY3Rpb24ucHJvZHVjdEluc2lnaHQgLmRhdGFiYXNlIC5yaWdodCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yMDBweDtcbiAgICB9XG4gICAgXG4gICAgLnNlY3Rpb24uc2VhcmNoIC5vdmVybGF5IHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi52aWRlbyAuY2FwdGlvbiB7IFxuICAgICAgICBtYXJnaW4tbGVmdDogLTQzNXB4O1xuICAgICAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPTEsIE0xMj0wLCBNMjE9MCwgTTIyPTEsIFNpemluZ01ldGhvZD0nYXV0byBleHBhbmQnKVwiO1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi52aWRlbyAudmpzLW5vLWpzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgXG4gICAgLmluc2lnaHRzUHJvZHVjdCAuaGlnaGxpZ2h0cyAuaGlnaGxpZ2h0IGkge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNzVweDtcbiAgICB9XG4gICAgXG4gICAgLmluc2lnaHRzUHJvZHVjdCAuaGlnaGxpZ2h0cyAuaGlnaGxpZ2h0IHtcbiAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICBcbiAgICAuaGlnaGxpZ2h0ZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICAuaG90c3BvdE1hcCB7XG4gICAgICAgIGhlaWdodDogNjgzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbGF5b3V0L3VrbWFwLmpwZykgY2VudGVyIG5vLXJlcGVhdDtcbiAgICB9XG4gICAgXG4gICAgLnN2Z0NvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgICB3aWR0aDogODAlO1xuICAgIH1cblxuICAgIC5jaGVja2JveFJvdyBpbnB1dFt0eXBlPWNoZWNrYm94XSwgLmNoZWNrYm94Um93IGlucHV0W3R5cGU9cmFkaW9dLCAuY3VzdG9tUmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0sIC5jdXN0b21SYWRpbyBpbnB1dFt0eXBlPXJhZGlvXSwgLm1vYmlsZVNlYXJjaFdyYXAsIC5zdWJzY3JpcHRpb25JdGVtIGlucHV0W3R5cGU9Y2hlY2tib3hdLCAuc3Vic2NyaXB0aW9uSXRlbSBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgZm9ybS5zdHlsZWQgLnByb2R1Y3RzICB7XG5cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5yb3cge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGVja2JveFJvdyBpbnB1dFt0eXBlPWNoZWNrYm94XSwgLmNoZWNrYm94Um93IGlucHV0W3R5cGU9cmFkaW9dLCAuY3VzdG9tUmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0sIC5jdXN0b21SYWRpbyBpbnB1dFt0eXBlPXJhZGlvXSwgLm1vYmlsZVNlYXJjaFdyYXAsIC5zdWJzY3JpcHRpb25JdGVtIGlucHV0W3R5cGU9Y2hlY2tib3hdLCAuc3Vic2NyaXB0aW9uSXRlbSBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgIGxlZnQ6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdGVkIC5pdGVtLCAuc3Vic2NyaXB0aW9uSXRlbSwgLnN1YnNjcmlwdGlvbkl0ZW0ge1xuXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICByaWdodDogMTAwcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM4NUM5ODE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3JhcHBlci1zdGlja3kge1xuICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYXJ0aWNsZSAuZmlsdGVyLXRhYmxlIGlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgIC5kYXNoYm9hcmQge1xuXG4gICAgICAgIC5jaGVja2JveFJvdyBpbnB1dFt0eXBlPWNoZWNrYm94XSwgLmNoZWNrYm94Um93IGlucHV0W3R5cGU9cmFkaW9dLCAuY3VzdG9tUmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0sIC5jdXN0b21SYWRpbyBpbnB1dFt0eXBlPXJhZGlvXSwgLm1vYmlsZVNlYXJjaFdyYXAsIC5zdWJzY3JpcHRpb25JdGVtIGlucHV0W3R5cGU9Y2hlY2tib3hdLCAuc3Vic2NyaXB0aW9uSXRlbSBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9ja3Mge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI0JTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ndWlkZXMge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMSU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDElO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b25zIHtcblxuICAgICAgICAgICAgLnNlYXJjaC50ZXh0IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3RhdGlzdGljcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5ld3NXcmFwIHtcblxuICAgICAgICAgICAgLmJveCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMSUgMjBweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN0YXRzIHtcbiAgICAgICAgICAgIC5zdGF0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxJSAyMHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC52anMtbm8tanMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggNjBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzQ1N2RhZTtcbiAgICAgICAgYmFja2dyb3VuZDogI2NkZTdmNTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMDcxJztcbiAgICAgICAgICAgIC5yZW1zKDQwKTtcbiAgICAgICAgICAgIGNvbG9yOiAjNDU3ZGFlO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn0iXX0= */