body {
  background: white;
  color: black; }

.wrapper {
  margin: 0 15%;
  font-family: 'Futura PT Light';
  font-size: 1.2rem;
  font-weight: 300; }

@media (max-width: 770px) {
  .wrapper {
    margin: 0 5%; } }

@media (max-width: 500px) {
  .wrapper {
    margin: 0 1%; } }

.aboutme {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

@media (max-width: 500px) {
  .aboutme {
    margin: 0 10px; } }

.aboutme__logo {
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
              -ms-grid-row-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 20px;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.aboutme__link {
  margin-bottom: 20px;
  font-family: 'Futura PT book';
  color: black;
  font-size: 1rem;
  float: right;
  padding: 3px 13px;
  border-radius: 50px;
  border: 1.8px solid orange;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.aboutme__link:hover {
  background: rgba(255, 165, 0, 0.75);
  border: 1.8px solid black; }

.aboutme__text {
  font-size: 1.3rem;
  width: 100%;
  text-align: justify;
  margin-bottom: 60px; }

@media (max-width: 500px) {
  .aboutme__text {
    font-size: 1.25rem;
    line-height: 1.25; } }

.aboutme__textContainer {
  display: none; }

.aboutme__helpful {
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start;
  margin: 20px 0 60px;
  font-family: 'Futura PT Demi';
  font-size: 1.9rem;
  border-bottom: 2px solid orange; }

.logo {
  height: 100%;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.avatar {
  height: 100%; }

.flat {
  font-weight: 300; }

@media (max-width: 500px) {
  .flat {
    margin: 0; } }

.flat__item {
  margin: 0 0 80px 0;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.flat__item:hover .gallery {
  opacity: 1; }

.flat__item:hover .flat__number {
  -webkit-transform: translate(-10px);
      -ms-transform: translate(-10px);
          transform: translate(-10px);
  opacity: 1; }

.flat__item:hover .flat__number:after {
  left: 10px;
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg); }

.flat__item:hover .flat__description {
  -webkit-transform: translateX(10px);
      -ms-transform: translateX(10px);
          transform: translateX(10px); }

.flat__item:hover .flat__title {
  opacity: 1; }

@media (max-width: 770px) {
  .flat__text {
    margin: 0 5%; } }

@media (max-width: 500px) {
  .flat__text {
    margin: 0 18%; } }

.flat__title {
  font-size: 1rem;
  font-family: 'Futura PT Light';
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
              -ms-grid-row-align: center;
          align-items: center;
  text-align: right;
  margin: 0 5px 10px 0;
  opacity: 0.4;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

@media (max-width: 500px) {
  .flat__title {
    margin: 0 10px 10px; } }

.flat__number {
  font-family: 'ralewaylight', 'roboto', sans-serif;
  font-size: 1.8rem;
  position: relative;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  margin-left: -40px; }

.flat__number:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 75px;
  border-radius: 10px;
  background: orange;
  -webkit-transform: rotate(135deg);
      -ms-transform: rotate(135deg);
          transform: rotate(135deg);
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.flat__description {
  text-align: left;
  margin: -10px 0 30px 10px;
  vertical-align: middle;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  font-size: 1.5rem;
  font-family: 'Futura PT book'; }

@media (max-width: 500px) {
  .flat__description {
    font-size: 1.25rem;
    line-height: 1.15; } }

.flat__showMore {
  font-family: 'Futura PT book';
  color: black;
  font-size: 1rem;
  float: right;
  padding: 3px 13px;
  border-radius: 50px;
  border: 1.8px solid orange;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.flat__showMore:hover {
  background: rgba(255, 165, 0, 0.75);
  border: 1.8px solid black; }

@media (max-width: 500px) {
  .flat__showMore {
    margin-right: 5px; } }

.flat__video {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }

.flat__videoBox {
  width: 33.333%;
  float: left; }

@media (max-width: 500px) {
  .flat__videoBox {
    width: 75%;
    float: none;
    margin: auto; } }

.flat__videoFrame {
  border: none;
  width: 100%;
  height: 100%;
  min-height: 24vh;
  padding: 0 2px; }

@media (max-width: 500px) {
  .flat__videoFrame {
    min-height: 32vh; } }

.gallery {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  margin-bottom: 10px;
  -webkit-transition: 0.3s ease-out;
  transition: 0.3s ease-out; }

.gallery__img {
  width: 100%;
  -webkit-transition: 0.15s ease-in;
  transition: 0.15s ease-in;
  border-radius: 1.5px; }

.gallery__link {
  font-size: 0;
  width: 100%; }

.gallery__box {
  margin: 0;
  padding: 0 2px; }

.grid-sizer, .gallery__box {
  width: 33.333%;
  float: left; }

@media (max-width: 500px) {
  .grid-sizer, .gallery__box {
    width: 75%;
    margin: auto; } }

.panorama100 {
  width: 100%; }

.upbutton {
  -webkit-transition: all 1s;
  transition: all 1s;
  position: fixed;
  right: 2%;
  bottom: 8%;
  background: lightgray;
  opacity: 0.5;
  border-radius: 10px;
  z-index: 100; }

.upbutton__link {
  padding: 7px 10px;
  display: block;
  width: 100%;
  height: 100%;
  color: white;
  font-size: 1.3rem; }

.upbutton:hover {
  background: gray; }

/* entire container, keeps perspective */
.flip-container {
  -webkit-perspective: 1000px;
          perspective: 1000px; }

/* flip the pane when hovered */
.flip-container.hover .flipper {
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg); }

.flip-container, .front, .back {
  height: 400px;
  width: 400px; }

@media (max-width: 500px) {
  .flip-container, .front, .back {
    width: 300px;
    height: 300px; } }

/* flip speed goes here */
.flipper {
  -webkit-transition: 0.6s;
  transition: 0.6s;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  position: relative; }

/* hide back of pane during swap */
.front, .back {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-align: center; }

/* front pane, placed above back */
.front {
  z-index: 2;
  /* for firefox 31 */
  -webkit-transform: rotateY(0deg);
          transform: rotateY(0deg); }

/* back, initially hidden pane */
.back {
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg); }

.preloader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: #1e1e1e; }

.preloader__spinner {
  width: 150px;
  height: 150px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }

.preloader__animation {
  width: 150px;
  height: 150px;
  position: relative;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite; }

.preloader__animation, .preloader__animation:before, .preloader__animation:after {
  border: 3px solid transparent;
  border-radius: 50%;
  border-top-color: orange; }

.preloader__animation:before, .preloader__animation:after {
  content: "";
  position: absolute; }

.preloader__animation:before {
  top: 7px;
  bottom: 7px;
  left: 7px;
  right: 7px;
  -webkit-animation: spin 3s linear infinite;
  animation: spin 3s linear infinite; }

.preloader__animation:after {
  top: 15px;
  bottom: 15px;
  left: 15px;
  right: 15px;
  -webkit-animation: spin 1.5s linear infinite;
  animation: spin 1.5s linear infinite; }

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

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

.preloader__percents {
  font-family: 'SegoeUILight';
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
  color: white; }

.gallery__box:nth-child(1n+4) {
  display: none; }

footer {
  margin-bottom: 25px;
  text-align: center; }

footer .contacts {
  margin-top: 15px; }

.contactme {
  display: inline-block;
  font-family: 'Futura PT book';
  font-size: 1.7rem;
  border-bottom: 2px solid orange;
  margin: 0 auto; }

@media (max-width: 500px) {
  .contactme {
    font-size: 1.2rem; } }

@charset "UTF-8";
/* ==========================================================================
   Normalize.scss settings
   ========================================================================== */
/**
 * Includes legacy browser support IE6/7
 *
 * Set to false if you want to drop support for IE6 and IE7
 */
/* Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
 *  `em` units.
 */
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 6/7/8/9 and Firefox 3.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevents modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active, a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Addresses styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * 1. Remove border when inside `a` element in IE 8/9/10.
 * 2. Improves image quality when scaled in IE 7.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *  Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 * 4. Improves appearance and consistency in all browsers.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *  and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *  `input` and others.
 * 4. Removes inner spacing in IE 7 without affecting normal text inputs.
 *  Known issue: inner spacing remains in IE 6.
 */
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; }

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 *  Known issue: excess padding remains in IE 6.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 * 3. Corrects text not wrapping in Firefox 3.
 * 4. Corrects alignment displayed oddly in IE 6/7.
 */
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; }

/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*

	Contents:

	1. Buttons
	2. Share modal and links
	3. Index indicator ("1 of X" counter)
	4. Caption
	5. Loading indicator
	6. Additional styles (root element, top bar, idle state, hidden state, etc.)

*/
/*

	1. Buttons

 */
/* <button> css reset */
.pswp__button {
  width: 44px;
  height: 44px;
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
  float: right;
  opacity: 0.75;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
  box-shadow: none; }

.pswp__button:focus,
.pswp__button:hover {
  opacity: 1; }

.pswp__button:active {
  outline: none;
  opacity: 0.9; }

.pswp__button::-moz-focus-inner {
  padding: 0;
  border: 0; }

/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
.pswp__ui--over-close .pswp__button--close {
  opacity: 1; }

.pswp__button,
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
  background: url(../img/default-skin.png) 0 0 no-repeat;
  background-size: 264px 88px;
  width: 44px;
  height: 44px; }

@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
  /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
  .pswp--svg .pswp__button,
  .pswp--svg .pswp__button--arrow--left:before,
  .pswp--svg .pswp__button--arrow--right:before {
    background-image: url(../img/default-skin.svg); }
  .pswp--svg .pswp__button--arrow--left,
  .pswp--svg .pswp__button--arrow--right {
    background: none; } }

.pswp__button--close {
  background-position: 0 -44px; }

.pswp__button--share {
  background-position: -44px -44px; }

.pswp__button--fs {
  display: none; }

.pswp--supports-fs .pswp__button--fs {
  display: block; }

.pswp--fs .pswp__button--fs {
  background-position: -44px 0; }

.pswp__button--zoom {
  display: none;
  background-position: -88px 0; }

.pswp--zoom-allowed .pswp__button--zoom {
  display: block; }

.pswp--zoomed-in .pswp__button--zoom {
  background-position: -132px 0; }

/* no arrows on touch screens */
.pswp--touch .pswp__button--arrow--left,
.pswp--touch .pswp__button--arrow--right {
  visibility: hidden; }

/*
	Arrow buttons hit area
	(icon is added to :before pseudo-element)
*/
.pswp__button--arrow--left,
.pswp__button--arrow--right {
  background: none;
  top: 50%;
  margin-top: -50px;
  width: 70px;
  height: 100px;
  position: absolute; }

.pswp__button--arrow--left {
  left: 0; }

.pswp__button--arrow--right {
  right: 0; }

.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
  content: '';
  top: 35px;
  background-color: rgba(0, 0, 0, 0.3);
  height: 30px;
  width: 32px;
  position: absolute; }

.pswp__button--arrow--left:before {
  left: 6px;
  background-position: -138px -44px; }

.pswp__button--arrow--right:before {
  right: 6px;
  background-position: -94px -44px; }

/*

	2. Share modal/popup and links

 */
.pswp__counter,
.pswp__share-modal {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.pswp__share-modal {
  display: block;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  padding: 10px;
  position: absolute;
  z-index: 1600;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__share-modal--hidden {
  display: none; }

.pswp__share-tooltip {
  z-index: 1620;
  position: absolute;
  background: #FFF;
  top: 56px;
  border-radius: 2px;
  display: block;
  width: auto;
  right: 44px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  -webkit-transform: translateY(6px);
  -ms-transform: translateY(6px);
  transform: translateY(6px);
  -webkit-transition: -webkit-transform 0.25s;
  transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s;
  -webkit-backface-visibility: hidden;
  will-change: transform; }

.pswp__share-tooltip a {
  display: block;
  padding: 8px 12px;
  color: #000;
  text-decoration: none;
  font-size: 14px;
  line-height: 18px; }

.pswp__share-tooltip a:hover {
  text-decoration: none;
  color: #000; }

.pswp__share-tooltip a:first-child {
  /* round corners on the first/last list item */
  border-radius: 2px 2px 0 0; }

.pswp__share-tooltip a:last-child {
  border-radius: 0 0 2px 2px; }

.pswp__share-modal--fade-in {
  opacity: 1; }

.pswp__share-modal--fade-in .pswp__share-tooltip {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0); }

/* increase size of share links on touch devices */
.pswp--touch .pswp__share-tooltip a {
  padding: 16px 12px; }

a.pswp__share--facebook:before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: -12px;
  right: 15px;
  border: 6px solid transparent;
  border-bottom-color: #FFF;
  -webkit-pointer-events: none;
  -moz-pointer-events: none;
  pointer-events: none; }

a.pswp__share--facebook:hover {
  background: #3E5C9A;
  color: #FFF; }

a.pswp__share--facebook:hover:before {
  border-bottom-color: #3E5C9A; }

a.pswp__share--twitter:hover {
  background: #55ACEE;
  color: #FFF; }

a.pswp__share--pinterest:hover {
  background: #CCC;
  color: #CE272D; }

a.pswp__share--download:hover {
  background: #DDD; }

/*

	3. Index indicator ("1 of X" counter)

 */
.pswp__counter {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 13px;
  line-height: 44px;
  color: #FFF;
  opacity: 0.75;
  padding: 0 10px; }

/*

	4. Caption

 */
.pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px; }

.pswp__caption small {
  font-size: 11px;
  color: #BBB; }

.pswp__caption__center {
  text-align: center;
  max-width: 420px;
  margin: 0 auto;
  font-size: 13px;
  padding: 10px;
  line-height: 20px;
  color: #CCC; }

.pswp__caption--empty {
  display: none; }

/* Fake caption element, used to calculate height of next/prev image */
.pswp__caption--fake {
  visibility: hidden; }

/*

	5. Loading indicator (preloader)

	You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR

 */
.pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr; }

.pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px; }

.pswp__preloader--active {
  opacity: 1; }

.pswp__preloader--active .pswp__preloader__icn {
  /* We use .gif in browsers that don't support CSS animation */
  background: url(../img/preloader.gif) 0 0 no-repeat; }

.pswp--css_animation .pswp__preloader--active {
  opacity: 1; }

.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
  -webkit-animation: clockwise 500ms linear infinite;
  animation: clockwise 500ms linear infinite; }

.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }

.pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0; }

.pswp--css_animation .pswp__preloader__cut {
  /*
			The idea of animating inner circle is based on Polymer ("material") loading indicator
			 by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
		*/
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden; }

.pswp--css_animation .pswp__preloader__donut {
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid #FFF;
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0; }

@media screen and (max-width: 1024px) {
  .pswp__preloader {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
    float: right; } }

@-webkit-keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-webkit-keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg); }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0); } }

@keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg); }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0); } }

/*

	6. Additional styles

 */
/* root element of UI */
.pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550; }

/* top black bar with buttons and "1 of X" indicator */
.pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  width: 100%; }

.pswp__caption,
.pswp__top-bar,
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  will-change: opacity;
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  visibility: visible; }

.pswp__top-bar,
.pswp__caption {
  background-color: rgba(0, 0, 0, 0.5); }

/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption {
  background-color: rgba(0, 0, 0, 0.3); }

/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
.pswp__ui--idle .pswp__top-bar {
  opacity: 0; }

.pswp__ui--idle .pswp__button--arrow--left,
.pswp__ui--idle .pswp__button--arrow--right {
  opacity: 0; }

/*
	pswp__ui--hidden class is added when controls are hidden
	e.g. when user taps to toggle visibility of controls
*/
.pswp__ui--hidden .pswp__top-bar,
.pswp__ui--hidden .pswp__caption,
.pswp__ui--hidden .pswp__button--arrow--left,
.pswp__ui--hidden .pswp__button--arrow--right {
  /* Force paint & create composition layer for controls. */
  opacity: 0.001; }

/* pswp__ui--one-slide class is added when there is just one item in gallery */
.pswp__ui--one-slide .pswp__button--arrow--left,
.pswp__ui--one-slide .pswp__button--arrow--right,
.pswp__ui--one-slide .pswp__counter {
  display: none; }

.pswp__element--disabled {
  display: none !important; }

.pswp--minimal--dark .pswp__top-bar {
  background: none; }

/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
	Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  /* create separate layer, to avoid paint on window.onscroll in webkit/blink */
  -webkit-backface-visibility: hidden;
  outline: none; }

.pswp * {
  box-sizing: border-box; }

.pswp img {
  max-width: none; }

/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--open {
  display: block; }

.pswp--zoom-allowed .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.pswp--zoomed-in .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab; }

.pswp--dragging .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing; }

/*
	Background is added as a separate element.
	As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0; }

/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none; }

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  /* for open/close transition */
  -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1), -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp__bg {
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  -webkit-transition: none;
  transition: none; }

.pswp__container,
.pswp__zoom-wrap {
  -webkit-backface-visibility: hidden; }

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden; }

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0; }

/*
	stretched thumbnail or div placeholder element (see below)
	style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
  -webkit-backface-visibility: hidden; }

/*
	div element that matches size of large image
	large image loads on top of it
*/
.pswp__img--placeholder--blank {
  background: #222; }

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0; }

/*
	Error message appears when image is not loaded
	(JS option errorMsg controls markup)
*/
.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #CCC; }

.pswp__error-msg a {
  color: #CCC;
  text-decoration: underline; }

/* font-family: "SegoeUIRegular"; */
@font-face {
  font-family: "SegoeUIRegular";
  src: url("../fonts/SegoeUIRegular/SegoeUIRegular.eot");
  src: url("../fonts/SegoeUIRegular/SegoeUIRegular.eot?#iefix") format("embedded-opentype"), url("../fonts/SegoeUIRegular/SegoeUIRegular.woff") format("woff"), url("../fonts/SegoeUIRegular/SegoeUIRegular.ttf") format("truetype");
  font-style: normal;
  font-weight: normal; }

/* font-family: "SegoeUIBold"; */
@font-face {
  font-family: "SegoeUIBold";
  src: url("../fonts/SegoeUIBold/SegoeUIBold.eot");
  src: url("../fonts/SegoeUIBold/SegoeUIBold.eot?#iefix") format("embedded-opentype"), url("../fonts/SegoeUIBold/SegoeUIBold.woff") format("woff"), url("../fonts/SegoeUIBold/SegoeUIBold.ttf") format("truetype");
  font-style: normal;
  font-weight: normal; }

/* font-family: "SegoeUILight"; */
@font-face {
  font-family: "SegoeUILight";
  src: url("../fonts/SegoeUILight/SegoeUILight.eot");
  src: url("../fonts/SegoeUILight/SegoeUILight.eot?#iefix") format("embedded-opentype"), url("../fonts/SegoeUILight/SegoeUILight.woff") format("woff"), url("../fonts/SegoeUILight/SegoeUILight.ttf") format("truetype");
  font-style: normal;
  font-weight: normal; }

@font-face {
  font-family: 'ralewaylight';
  src: url("../fonts/raleway-light-webfont.eot");
  src: url("../fonts/raleway-light-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/raleway-light-webfont.woff2") format("woff2"), url("../fonts/raleway-light-webfont.woff") format("woff"), url("../fonts/raleway-light-webfont.ttf") format("truetype"), url("../fonts/raleway-light-webfont.svg#ralewaylight") format("svg");
  font-weight: normal;
  font-style: normal; }

/* This stylesheet generated by Transfonter (https://transfonter.org) on July 3, 2017 9:52 AM */
@font-face {
  font-family: 'Futura PT Demi';
  src: url("../fonts/FuturaPT/FuturaPT-Demi.eot");
  src: url("../fonts/FuturaPT/FuturaPT-Demi.eot?#iefix") format("embedded-opentype"), url("../fonts/FuturaPT/FuturaPT-Demi.woff2") format("woff2"), url("../fonts/FuturaPT/FuturaPT-Demi.woff") format("woff"), url("../fonts/FuturaPT/FuturaPT-Demi.ttf") format("truetype"), url("../fonts/FuturaPT/FuturaPT-Demi.svg#FuturaPT-Demi") format("svg");
  font-weight: 600;
  font-style: normal; }

@font-face {
  font-family: 'Futura PT';
  src: url("../fonts/FuturaPT/FuturaPT-Medium.eot");
  src: url("../fonts/FuturaPT/FuturaPT-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/FuturaPT/FuturaPT-Medium.woff2") format("woff2"), url("../fonts/FuturaPT/FuturaPT-Medium.woff") format("woff"), url("../fonts/FuturaPT/FuturaPT-Medium.ttf") format("truetype"), url("../fonts/FuturaPT/FuturaPT-Medium.svg#FuturaPT-Medium") format("svg");
  font-weight: 500;
  font-style: normal; }

@font-face {
  font-family: 'Futura PT Light';
  src: url("../fonts/FuturaPT/FuturaPT-Light.eot");
  src: url("../fonts/FuturaPT/FuturaPT-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/FuturaPT/FuturaPT-Light.woff2") format("woff2"), url("../fonts/FuturaPT/FuturaPT-Light.woff") format("woff"), url("../fonts/FuturaPT/FuturaPT-Light.ttf") format("truetype"), url("../fonts/FuturaPT/FuturaPT-Light.svg#FuturaPT-Light") format("svg");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: 'Futura PT Book';
  src: url("../fonts/FuturaPT/FuturaPT-Book.eot");
  src: url("../fonts/FuturaPT/FuturaPT-Book.eot?#iefix") format("embedded-opentype"), url("../fonts/FuturaPT/FuturaPT-Book.woff2") format("woff2"), url("../fonts/FuturaPT/FuturaPT-Book.woff") format("woff"), url("../fonts/FuturaPT/FuturaPT-Book.ttf") format("truetype"), url("../fonts/FuturaPT/FuturaPT-Book.svg#FuturaPT-Book") format("svg");
  font-weight: normal;
  font-style: normal; }

html, body {
  margin: 0;
  padding: 0;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease; }

body, *, *:after, *:before {
  box-sizing: border-box;
  margin: 0;
  padding: 0; }

a {
  text-decoration: none; }

@-webkit-keyframes swing {
  15% {
    -webkit-transform: translateX(5px);
    transform: translateX(5px); }
  30% {
    -webkit-transform: translateX(-5px);
    transform: translateX(-5px); }
  50% {
    -webkit-transform: translateX(3px);
    transform: translateX(3px); }
  65% {
    -webkit-transform: translateX(-3px);
    transform: translateX(-3px); }
  80% {
    -webkit-transform: translateX(2px);
    transform: translateX(2px); }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

@keyframes swing {
  15% {
    -webkit-transform: translateX(5px);
    transform: translateX(5px); }
  30% {
    -webkit-transform: translateX(-5px);
    transform: translateX(-5px); }
  50% {
    -webkit-transform: translateX(3px);
    transform: translateX(3px); }
  65% {
    -webkit-transform: translateX(-3px);
    transform: translateX(-3px); }
  80% {
    -webkit-transform: translateX(2px);
    transform: translateX(2px); }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

@-webkit-keyframes downUp {
  50% {
    -webkit-transform: translateY(5px);
    transform: translateY(5px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes downUp {
  50% {
    -webkit-transform: translateY(5px);
    transform: translateY(5px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

body {
  background: white;
  color: black; }

.wrapper {
  margin: 0 15%;
  font-family: 'Futura PT Light';
  font-size: 1.2rem;
  font-weight: 300; }

@media (max-width: 770px) {
  .wrapper {
    margin: 0 5%; } }

@media (max-width: 500px) {
  .wrapper {
    margin: 0 1%; } }

.aboutme {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

@media (max-width: 500px) {
  .aboutme {
    margin: 0 10px; } }

.aboutme__logo {
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
              -ms-grid-row-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 20px;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.aboutme__link {
  margin-bottom: 20px;
  font-family: 'Futura PT book';
  color: black;
  font-size: 1rem;
  float: right;
  padding: 3px 13px;
  border-radius: 50px;
  border: 1.8px solid orange;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.aboutme__link:hover {
  background: rgba(255, 165, 0, 0.75);
  border: 1.8px solid black; }

.aboutme__text {
  font-size: 1.3rem;
  width: 100%;
  text-align: justify;
  margin-bottom: 60px; }

@media (max-width: 500px) {
  .aboutme__text {
    font-size: 1.25rem;
    line-height: 1.25; } }

.aboutme__textContainer {
  display: none; }

.aboutme__helpful {
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start;
  margin: 20px 0 60px;
  font-family: 'Futura PT Demi';
  font-size: 1.9rem;
  border-bottom: 2px solid orange; }

.logo {
  height: 100%;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.avatar {
  height: 100%; }

.flat {
  font-weight: 300; }

@media (max-width: 500px) {
  .flat {
    margin: 0; } }

.flat__item {
  margin: 0 0 80px 0;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.flat__item:hover .gallery {
  opacity: 1; }

.flat__item:hover .flat__number {
  -webkit-transform: translate(-10px);
      -ms-transform: translate(-10px);
          transform: translate(-10px);
  opacity: 1; }

.flat__item:hover .flat__number:after {
  left: 10px;
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg); }

.flat__item:hover .flat__description {
  -webkit-transform: translateX(10px);
      -ms-transform: translateX(10px);
          transform: translateX(10px); }

.flat__item:hover .flat__title {
  opacity: 1; }

@media (max-width: 770px) {
  .flat__text {
    margin: 0 5%; } }

@media (max-width: 500px) {
  .flat__text {
    margin: 0 18%; } }

.flat__title {
  font-size: 1rem;
  font-family: 'Futura PT Light';
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
              -ms-grid-row-align: center;
          align-items: center;
  text-align: right;
  margin: 0 5px 10px 0;
  opacity: 0.4;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

@media (max-width: 500px) {
  .flat__title {
    margin: 0 10px 10px; } }

.flat__number {
  font-family: 'ralewaylight', 'roboto', sans-serif;
  font-size: 1.8rem;
  position: relative;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  margin-left: -40px; }

.flat__number:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 75px;
  border-radius: 10px;
  background: orange;
  -webkit-transform: rotate(135deg);
      -ms-transform: rotate(135deg);
          transform: rotate(135deg);
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.flat__description {
  text-align: left;
  margin: -10px 0 30px 10px;
  vertical-align: middle;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  font-size: 1.5rem;
  font-family: 'Futura PT book'; }

@media (max-width: 500px) {
  .flat__description {
    font-size: 1.25rem;
    line-height: 1.15; } }

.flat__showMore {
  font-family: 'Futura PT book';
  color: black;
  font-size: 1rem;
  float: right;
  padding: 3px 13px;
  border-radius: 50px;
  border: 1.8px solid orange;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }

.flat__showMore:hover {
  background: rgba(255, 165, 0, 0.75);
  border: 1.8px solid black; }

@media (max-width: 500px) {
  .flat__showMore {
    margin-right: 5px; } }

.flat__video {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }

.flat__videoBox {
  width: 33.333%;
  float: left; }

@media (max-width: 500px) {
  .flat__videoBox {
    width: 75%;
    float: none;
    margin: auto; } }

.flat__videoFrame {
  border: none;
  width: 100%;
  height: 100%;
  min-height: 24vh;
  padding: 0 2px; }

@media (max-width: 500px) {
  .flat__videoFrame {
    min-height: 32vh; } }

.gallery {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  margin-bottom: 10px;
  -webkit-transition: 0.3s ease-out;
  transition: 0.3s ease-out; }

.gallery__img {
  width: 100%;
  -webkit-transition: 0.15s ease-in;
  transition: 0.15s ease-in;
  border-radius: 1.5px; }

.gallery__link {
  font-size: 0;
  width: 100%; }

.gallery__box {
  margin: 0;
  padding: 0 2px; }

.grid-sizer, .gallery__box {
  width: 33.333%;
  float: left; }

@media (max-width: 500px) {
  .grid-sizer, .gallery__box {
    width: 75%;
    margin: auto; } }

.panorama100 {
  width: 100%; }

.upbutton {
  -webkit-transition: all 1s;
  transition: all 1s;
  position: fixed;
  right: 2%;
  bottom: 8%;
  background: lightgray;
  opacity: 0.5;
  border-radius: 10px;
  z-index: 100; }

.upbutton__link {
  padding: 7px 10px;
  display: block;
  width: 100%;
  height: 100%;
  color: white;
  font-size: 1.3rem; }

.upbutton:hover {
  background: gray; }

/* entire container, keeps perspective */
.flip-container {
  -webkit-perspective: 1000px;
          perspective: 1000px; }

/* flip the pane when hovered */
.flip-container.hover .flipper {
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg); }

.flip-container, .front, .back {
  height: 400px;
  width: 400px; }

@media (max-width: 500px) {
  .flip-container, .front, .back {
    width: 300px;
    height: 300px; } }

/* flip speed goes here */
.flipper {
  -webkit-transition: 0.6s;
  transition: 0.6s;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  position: relative; }

/* hide back of pane during swap */
.front, .back {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-align: center; }

/* front pane, placed above back */
.front {
  z-index: 2;
  /* for firefox 31 */
  -webkit-transform: rotateY(0deg);
          transform: rotateY(0deg); }

/* back, initially hidden pane */
.back {
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg); }

.preloader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: #1e1e1e; }

.preloader__spinner {
  width: 150px;
  height: 150px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }

.preloader__animation {
  width: 150px;
  height: 150px;
  position: relative;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite; }

.preloader__animation, .preloader__animation:before, .preloader__animation:after {
  border: 3px solid transparent;
  border-radius: 50%;
  border-top-color: orange; }

.preloader__animation:before, .preloader__animation:after {
  content: "";
  position: absolute; }

.preloader__animation:before {
  top: 7px;
  bottom: 7px;
  left: 7px;
  right: 7px;
  -webkit-animation: spin 3s linear infinite;
  animation: spin 3s linear infinite; }

.preloader__animation:after {
  top: 15px;
  bottom: 15px;
  left: 15px;
  right: 15px;
  -webkit-animation: spin 1.5s linear infinite;
  animation: spin 1.5s linear infinite; }

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

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

.preloader__percents {
  font-family: 'SegoeUILight';
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
  color: white; }

.gallery__box:nth-child(1n+4) {
  display: none; }

footer {
  margin-bottom: 25px;
  text-align: center; }

footer .contacts {
  margin-top: 15px; }

.contactme {
  display: inline-block;
  font-family: 'Futura PT book';
  font-size: 1.7rem;
  border-bottom: 2px solid orange;
  margin: 0 auto; }

@media (max-width: 500px) {
  .contactme {
    font-size: 1.2rem; } }

.header {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: 'Futura PT Light';
  font-weight: 300;
  border-bottom: 1.5px solid orange;
  margin-top: 7px;
  margin-bottom: 40px;
  padding: 10px 0; }

.contacts {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 0;
  padding: 0;
  font-family: 'Futura PT book'; }

.contacts__box {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.contacts__item {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 5px; }

.contacts__link {
  padding: 0;
  cursor: pointer;
  color: black;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  height: 38px;
  width: 38px;
  font-size: 0.9rem;
  position: relative; }

.contacts__link:hover {
  -webkit-transform: translateY(5px);
      -ms-transform: translateY(5px);
          transform: translateY(5px); }

.contacts__link_tel:hover:before {
  width: 200px;
  content: '675 371 987 (+WhatsApp)';
  position: absolute;
  color: #777;
  top: -23px;
  right: -120px; }

.contacts__link_skype:hover:before {
  content: '@bypablo.estudio';
  position: absolute;
  color: #777;
  top: -23px;
  left: -8px; }

.contacts__link_fb {
  padding-bottom: 4px; }

.contacts__link_email {
  padding-bottom: 4px; }

.contacts__link_email:hover:before {
  content: 'photo@bypablo.ru';
  position: absolute;
  color: #777;
  top: -23px;
  left: -25px; }

.colorSwither {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  text-align: center;
  font-size: 1rem;
  width: 125px; }

@media (max-width: 620px) {
  .colorSwither {
    width: 145px;
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
        -ms-flex-order: -1;
            order: -1; } }

.colorSwither-white {
  padding: 0 5px;
  border-radius: 2px; }

.colorSwither-white:hover {
  color: black;
  background: white; }

.colorSwither-or {
  padding: 0 2px;
  cursor: default; }

.colorSwither-black {
  border-radius: 2px;
  padding: 0 5px;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease; }

.colorSwither-black:hover {
  color: white;
  background: #1e1e1e; }

.en *[lang=ru],
.en *[lang=es],
.en *[lang=cat],
.cat *[lang=en],
.cat *[lang=es],
.cat *[lang=ru],
.ru *[lang=en],
.ru *[lang=es],
.ru *[lang=cat],
.es *[lang=ru],
.es *[lang=cat],
.es *[lang=en] {
  display: none; }

/* Скрываем "не тот" язык */
.en .ru .es, .en .es .ru, .es .ru .en, .es .en .ru,
.ru .en .es, .ru .es .en {
  display: none; }

.language {
  width: 125px; }

@media (max-width: 770px) {
  .language {
    -webkit-box-ordinal-group: -1;
    -webkit-order: -2;
        -ms-flex-order: -2;
            order: -2; } }

/* Переключатели языка */
.lang-switcher {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  font-family: 'SegoeUILight';
  font-size: 1rem;
  box-sizing: border-box;
  cursor: pointer;
  width: 25px; }

.lang-switcher:hover {
  color: orange; }

/* Выделяем активную переключалку тоже с помощью классов родителя */
.en .lang-switcher--en, .cat .lang-switcher--cat, .es .lang-switcher--es,
.ru .lang-switcher--ru {
  color: orange;
  border-bottom: none;
  font-weight: 600;
  cursor: default; }

.price {
  display: block;
  /* смещает только блоки */
  background: orange;
  border-radius: 100px; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnNjc3MiLCJtYWluLmNzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLXNjc3MvX25vcm1hbGl6ZS5zY3NzIiwidmVuZG9yL2RlZmF1bHQtc2tpbi5jc3MiLCJ2ZW5kb3IvcGhvdG9zd2lwZS5jc3MiLCJmb250cy5jc3MiLCJfY29tbW9uLnNjc3MiLCJfaGVhZGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7RUFDUSxrQkFBYztFQUNkLGFBQWEsRUFDcEI7O0FBR0Q7RUFDSSxjQUFhO0VBRWIsK0JBQStCO0VBRS9CLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFRcEI7O0FBekJDO0VBV0Y7SUFTWSxhQUFZLEVBS3ZCLEVBQUE7O0FBekJDO0VBV0Y7SUFZWSxhQUFZLEVBRXZCLEVBQUE7O0FBSUQ7RUFDSSxxQkFBYztFQUFkLHNCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsNkJBQXVCO0VBQXZCLDhCQUF1QjtFQUF2QiwrQkFBdUI7TUFBdkIsMkJBQXVCO1VBQXZCLHVCQUF1QjtFQUN2Qix5QkFBd0I7RUFBeEIsZ0NBQXdCO01BQXhCLHNCQUF3QjtVQUF4Qix3QkFBd0I7RUFDeEIsMEJBQW9CO0VBQXBCLDRCQUFvQjtNQUFwQix1QkFBb0I7VUFBcEIsb0JBQW9CLEVBMkR2Qjs7QUE1RkM7RUE2QkY7SUFPUSxlQUFlLEVBd0R0QixFQUFBOztBQS9ERDtFQVVRLDBCQUFvQjtFQUFwQiw0QkFBb0I7TUFBcEIsdUJBQW9CO2NBQXBCLDJCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIseUJBQXdCO0VBQXhCLGdDQUF3QjtNQUF4QixzQkFBd0I7VUFBeEIsd0JBQXdCO0VBRXhCLG9CQUFvQjtFQUNwQixrQ0FBMEI7RUFBMUIsMEJBQTBCLEVBTzdCOztBQXJCTDtFQXVCUSxvQkFBb0I7RUFFcEIsOEJBQThCO0VBRTFCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFD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QVBqSUM7RU82RkY7SUFZTSxhQUFhO0lBQ2IsNkJBQVU7SUFBVixrQkFBVTtRQUFWLG1CQUFVO1lBQVYsVUFBVSxFQXVCZixFQUFBOztBQXBDRDtFQWdCSSxlQUFlO0VBQ2YsbUJBQW1CLEVBS25COztBQXRCSjtFQW1CUSxhQUFhO0VBQ2Isa0JBQWtCLEVBQ25COztBQXJCUDtFQXdCSSxlQUFlO0VBQ2YsZ0JBQWdCLEVBQ2hCOztBQTFCSjtFQTRCSSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGtDQUEwQjtFQUExQiwwQkFBMEIsRUFLMUI7O0FBbkNKO0VBZ0NRLGFBQWE7RUFDYixvQkFBZSxFQUNoQjs7QUFzQlA7Ozs7Ozs7Ozs7OztFQVlJLGNBQWMsRUFDakI7O0FBRUssNEJBQUE7QUFDTjs7RUFFRSxjQUFjLEVBQ2Y7O0FBRUQ7RUFDRSxhQUFhLEVBSVo7O0FQL0tEO0VPMEtGO0lBR00sOEJBQVU7SUFBVixrQkFBVTtRQUFWLG1CQUFVO1lBQVYsVUFBVSxFQUViLEVBQUE7O0FBRUQseUJBQUE7QUFDRjtFQUNFLDBCQUFrQjtLQUFsQix1QkFBa0I7TUFBbEIsc0JBQWtCO1VBQWxCLGtCQUFrQjtFQUNsQiw0QkFBcUI7RUFBckIsNkJBQXFCO0VBQXJCLDRCQUFxQjtFQUFyQixxQkFBcUI7RUFDckIsNEJBQTRCO0VBQzVCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFlBQVksRUFFYjs7QUFHRDtFQUNFLGNBQWMsRUFDZjs7QUFFQyxvRUFBQTtBQUNGOztFQUVFLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsaUJBQWlCO0VBQ2pCLGdCQUFnQixFQUNqQjs7QUFFRDtFQUNHLGVBQWU7RUFBRSwwQkFBQTtFQU1wQixtQkFBb0I7RUFDcEIscUJBQXFCLEVBR3BCIiwiZmlsZSI6Im1haW4ubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiBtZWRpYU1heFdpZHRoKCR3KSB7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICR3KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbmJvZHl7XHJcbiAgICAgICAgYmFja2dyb3VuZDpyZ2IoMjU1LDI1NSwyNTUpO1xyXG4gICAgICAgIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuXHJcbi53cmFwcGVyIHtcclxuICAgIG1hcmdpbjowIDE1JTtcclxuICAgIC8vIGZvbnQtZmFtaWx5OiAnU2Vnb2VVSUxpZ2h0JztcclxuICAgIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUIExpZ2h0JztcclxuXHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNzcwcHgpIHtcclxuICAgICAgICAgICAgbWFyZ2luOjAgNSU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDUwMHB4KSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjowIDElO1xyXG4gICAgICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4uYWJvdXRtZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDUwMHB4KSB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICB9XHJcbiAgICAmX19sb2dvIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIC8vIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNzcwcHgpIHtcclxuICAgICAgICAgICAgLy8gd2lkdGg6IDYwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg1MDBweCkge1xyXG4gICAgICAgICAgICAvLyB3aWR0aDogODAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2xpbmsge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUIGJvb2snO1xyXG5cclxuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgcGFkZGluZzogM3B4IDEzcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMS44cHggc29saWQgb3JhbmdlO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKG9yYW5nZSwgMC43NSk7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMS44cHggc29saWQgYmxhY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fdGV4dCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcblxyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuICAgICAgICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg1MDBweCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fdGV4dENvbnRhaW5lciB7XHJcbiAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2hlbHBmdWwge1xyXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcblxyXG4gICAgICAgIG1hcmdpbjogMjBweCAwIDYwcHg7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgRGVtaSc7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjlyZW07XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIG9yYW5nZTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuLmxvZ28ge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxufVxyXG5cclxuLmF2YXRhciB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcblxyXG4uZmxhdCB7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNTAwcHgpIHtcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICZfX2l0ZW0ge1xyXG4gICAgICAgIG1hcmdpbjogMCAwIDgwcHggMDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAuZ2FsbGVyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuZmxhdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJl9fbnVtYmVyIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCkgO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICZfX3RpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX190ZXh0IHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDc3MHB4KSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjowIDUlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDUwMHB4KSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjowIDE4JTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAvLyBmb250LWZhbWlseTogJ1NlZ29lVUlMaWdodCc7XHJcbiAgICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBMaWdodCc7XHJcblxyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgbWFyZ2luOiAwIDVweCAxMHB4IDA7XHJcbiAgICAgICAgb3BhY2l0eTogMC40O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNTAwcHgpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjowIDEwcHggMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgICZfX251bWJlciB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdyYWxld2F5bGlnaHQnLCAncm9ib3RvJywgc2Fucy1zZXJpZjtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICAvLyBjb2xvcjogIzk5ODtcclxuICAgICAgICAvLyBvcGFjaXR5OiAwLjQ7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00MHB4O1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDowO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNzVweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBvcmFuZ2U7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2Rlc2NyaXB0aW9uIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIG1hcmdpbjogLTEwcHggMCAzMHB4IDEwcHg7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIC8vIGZvbnQtZmFtaWx5OiBcIkZ1dHVyYSBQVCBCb29rXCI7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgYm9vayc7XHJcbiAgICAgICAgLy8gY29sb3I6ICMzMzM7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg1MDBweCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuICAgICZfX3Nob3dNb3JlIHtcclxuICAgICAgICAvLyBtYXJnaW46IDUwcHggMCAyMHB4O1xyXG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgYm9vayc7XHJcblxyXG4gICAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCAxM3B4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcbiAgICAgICAgYm9yZGVyOiAxLjhweCBzb2xpZCBvcmFuZ2U7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYShvcmFuZ2UsIDAuNzUpO1xyXG4gICAgICAgICAgICBib3JkZXI6IDEuOHB4IHNvbGlkIGJsYWNrO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg1MDBweCkge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3ZpZGVvIHtcclxuICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg1MDBweCkge1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgJl9fdmlkZW9Cb3gge1xyXG4gICAgICAgIHdpZHRoOiAzMy4zMzMlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNTAwcHgpIHtcclxuICAgICAgICB3aWR0aDogNzUlO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDEuNXB4O1xyXG5cclxuICAgIH1cclxuICAgICZfX3ZpZGVvRnJhbWUgIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgLy8gaGVpZ2h0OiBhdXRvO1xyXG4gICAgbWluLWhlaWdodDogMjR2aDtcclxuXHJcbiAgICBwYWRkaW5nOiAwIDJweDtcclxuICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNTAwcHgpIHtcclxubWluLWhlaWdodDogMzJ2aDtcclxuXHJcblxyXG5cclxuICAgIH1cclxuICAgIC8vIG1heC13aWR0aDogNjAwcHg7XHJcbiAgICAvLyBtaW4taGVpZ2h0OiAyNTVweDtcclxuICB9XHJcbn1cclxuXHJcbi5nYWxsZXJ5IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLW91dDtcclxuICAgICAgICAmX19pbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4xNXMgZWFzZS1pbjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMS41cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2xpbmsge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19ib3gge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnB4O1xyXG4gICAgICAgIH1cclxufVxyXG5cclxuLmdyaWQtc2l6ZXIsIC5nYWxsZXJ5X19ib3gge1xyXG4gICAgd2lkdGg6IDMzLjMzMyU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNTAwcHgpIHtcclxuICAgICAgICB3aWR0aDogNzUlO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuXHJcblxyXG59XHJcblxyXG4vLyAucGFub3JhbWE1MCB7XHJcbi8vICAgICAgd2lkdGg6IDY2LjY5JTtcclxuLy8gfVxyXG4ucGFub3JhbWExMDAge1xyXG4gICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5cclxuLnVwYnV0dG9ue1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDFzO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgcmlnaHQ6IDIlO1xyXG4gICAgYm90dG9tOiA4JTtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JheTtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbiAgICAgICAgJl9fbGluayB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGdyYXk7XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4vKiBlbnRpcmUgY29udGFpbmVyLCBrZWVwcyBwZXJzcGVjdGl2ZSAqL1xyXG4uZmxpcC1jb250YWluZXIge1xyXG4gICAgcGVyc3BlY3RpdmU6IDEwMDBweDtcclxufVxyXG4gICAgLyogZmxpcCB0aGUgcGFuZSB3aGVuIGhvdmVyZWQgKi9cclxuICAgICAuZmxpcC1jb250YWluZXIuaG92ZXIgLmZsaXBwZXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xyXG4gICAgfVxyXG5cclxuLmZsaXAtY29udGFpbmVyLCAuZnJvbnQsIC5iYWNrIHtcclxuICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg1MDBweCkge1xyXG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMzAwcHg7XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG4vKiBmbGlwIHNwZWVkIGdvZXMgaGVyZSAqL1xyXG4uZmxpcHBlciB7XHJcbiAgICB0cmFuc2l0aW9uOiAwLjZzO1xyXG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi8qIGhpZGUgYmFjayBvZiBwYW5lIGR1cmluZyBzd2FwICovXHJcbi5mcm9udCwgLmJhY2sge1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLyogZnJvbnQgcGFuZSwgcGxhY2VkIGFib3ZlIGJhY2sgKi9cclxuLmZyb250IHtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICAvKiBmb3IgZmlyZWZveCAzMSAqL1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xyXG59XHJcblxyXG4vKiBiYWNrLCBpbml0aWFsbHkgaGlkZGVuIHBhbmUgKi9cclxuLmJhY2sge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7XHJcbn1cclxuXHJcblxyXG4vLyBQcmVsb2FkZXJcclxuXHJcbi5wcmVsb2FkZXIge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgei1pbmRleDogOTk5OTtcclxuICBiYWNrZ3JvdW5kOiByZ2IoMzAsMzAsMzApOyB9XHJcblxyXG4ucHJlbG9hZGVyX19zcGlubmVyIHtcclxuICB3aWR0aDogMTUwcHg7XHJcbiAgaGVpZ2h0OiAxNTBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cclxuXHJcbi5wcmVsb2FkZXJfX2FuaW1hdGlvbiB7XHJcbiAgd2lkdGg6IDE1MHB4O1xyXG4gIGhlaWdodDogMTUwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcclxuICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyB9XHJcbiAgLnByZWxvYWRlcl9fYW5pbWF0aW9uLCAucHJlbG9hZGVyX19hbmltYXRpb246YmVmb3JlLCAucHJlbG9hZGVyX19hbmltYXRpb246YWZ0ZXIge1xyXG4gICAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiBvcmFuZ2U7IH1cclxuICAucHJlbG9hZGVyX19hbmltYXRpb246YmVmb3JlLCAucHJlbG9hZGVyX19hbmltYXRpb246YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxyXG4gIC5wcmVsb2FkZXJfX2FuaW1hdGlvbjpiZWZvcmUge1xyXG4gICAgdG9wOiA3cHg7XHJcbiAgICBib3R0b206IDdweDtcclxuICAgIGxlZnQ6IDdweDtcclxuICAgIHJpZ2h0OiA3cHg7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAzcyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb246IHNwaW4gM3MgbGluZWFyIGluZmluaXRlOyB9XHJcbiAgLnByZWxvYWRlcl9fYW5pbWF0aW9uOmFmdGVyIHtcclxuICAgIHRvcDogMTVweDtcclxuICAgIGJvdHRvbTogMTVweDtcclxuICAgIGxlZnQ6IDE1cHg7XHJcbiAgICByaWdodDogMTVweDtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDEuNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgYW5pbWF0aW9uOiBzcGluIDEuNXMgbGluZWFyIGluZmluaXRlOyB9XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cclxuXHJcbkBrZXlmcmFtZXMgc3BpbiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cclxuXHJcbi5wcmVsb2FkZXJfX3BlcmNlbnRzIHtcclxuICBmb250LWZhbWlseTogJ1NlZ29lVUlMaWdodCc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gIGNvbG9yOiB3aGl0ZTsgfVxyXG5cclxuXHJcbi5nYWxsZXJ5X19ib3g6bnRoLWNoaWxkKDFuKzQpIHtcclxuZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbmZvb3RlciB7XHJcbiAgLy8gZGlzcGxheTogZmxleDtcclxuICAvLyBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIC8vIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIC8vIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIC5jb250YWN0cyB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG5cclxuICB9XHJcbn1cclxuLmNvbnRhY3RtZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAvLyB3aWR0aDogNDAwcHg7XHJcbiAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvLyBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgYm9vayc7XHJcbiAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBvcmFuZ2U7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDUwMHB4KSB7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gJl9fbGluayB7XHJcbiAgICAgICAgLy8gY29sb3I6IGJsYWNrO1xyXG4gICAgICAgIC8vIC8vIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAvLyBtYXJnaW46IDAgMXB4IDAgNXB4O1xyXG4gICAgICAgIC8vIHBhZGRpbmc6IDNweCAxMHB4O1xyXG4gICAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcbiAgICAgICAgLy8gYm9yZGVyOiAxLjhweCBzb2xpZCBvcmFuZ2U7XHJcbiAgICAgICAgLy8gdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAgICAgICAvLyAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgLy8gICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKG9yYW5nZSwgMC43NSk7XHJcbiAgICAgICAgLy8gICAgICAgICBib3JkZXI6IDEuOHB4IHNvbGlkIGJsYWNrO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vIH1cclxufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBOb3JtYWxpemUuc2NzcyBzZXR0aW5nc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogSW5jbHVkZXMgbGVnYWN5IGJyb3dzZXIgc3VwcG9ydCBJRTYvN1xuICpcbiAqIFNldCB0byBmYWxzZSBpZiB5b3Ugd2FudCB0byBkcm9wIHN1cHBvcnQgZm9yIElFNiBhbmQgSUU3XG4gKi9cbi8qIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICogMy4gQ29ycmVjdHMgdGV4dCByZXNpemluZyBvZGRseSBpbiBJRSA2Lzcgd2hlbiBib2R5IGBmb250LXNpemVgIGlzIHNldCB1c2luZ1xuICogIGBlbWAgdW5pdHMuXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgNi83LzgvOSBhbmQgRmlyZWZveCAzLlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBQcmV2ZW50cyBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cbmE6YWN0aXZlLCBhOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBJbXByb3ZlcyBpbWFnZSBxdWFsaXR5IHdoZW4gc2NhbGVkIGluIElFIDcuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqIENvcnJlY3QgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIElFIDYsIFNhZmFyaSA0LzUsIGFuZCBDaHJvbWUuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKiA0LiBJbXByb3ZlcyBhcHBlYXJhbmNlIGFuZCBjb25zaXN0ZW5jeSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKiA0LiBSZW1vdmVzIGlubmVyIHNwYWNpbmcgaW4gSUUgNyB3aXRob3V0IGFmZmVjdGluZyBub3JtYWwgdGV4dCBpbnB1dHMuXG4gKiAgS25vd24gaXNzdWU6IGlubmVyIHNwYWNpbmcgcmVtYWlucyBpbiBJRSA2LlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICogIEtub3duIGlzc3VlOiBleGNlc3MgcGFkZGluZyByZW1haW5zIGluIElFIDYuXG4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKiAzLiBDb3JyZWN0cyB0ZXh0IG5vdCB3cmFwcGluZyBpbiBGaXJlZm94IDMuXG4gKiA0LiBDb3JyZWN0cyBhbGlnbm1lbnQgZGlzcGxheWVkIG9kZGx5IGluIElFIDYvNy5cbiAqL1xubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiEgUGhvdG9Td2lwZSBEZWZhdWx0IFVJIENTUyBieSBEbWl0cnkgU2VtZW5vdiB8IHBob3Rvc3dpcGUuY29tIHwgTUlUIGxpY2Vuc2UgKi9cbi8qXHJcblxyXG5cdENvbnRlbnRzOlxyXG5cclxuXHQxLiBCdXR0b25zXHJcblx0Mi4gU2hhcmUgbW9kYWwgYW5kIGxpbmtzXHJcblx0My4gSW5kZXggaW5kaWNhdG9yIChcIjEgb2YgWFwiIGNvdW50ZXIpXHJcblx0NC4gQ2FwdGlvblxyXG5cdDUuIExvYWRpbmcgaW5kaWNhdG9yXHJcblx0Ni4gQWRkaXRpb25hbCBzdHlsZXMgKHJvb3QgZWxlbWVudCwgdG9wIGJhciwgaWRsZSBzdGF0ZSwgaGlkZGVuIHN0YXRlLCBldGMuKVxyXG5cclxuKi9cbi8qXHJcblxyXG5cdDEuIEJ1dHRvbnNcclxuXHJcbiAqL1xuLyogPGJ1dHRvbj4gY3NzIHJlc2V0ICovXG4ucHN3cF9fYnV0dG9uIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBvcGFjaXR5OiAwLjc1O1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLnBzd3BfX2J1dHRvbjpmb2N1cyxcbi5wc3dwX19idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5wc3dwX19idXR0b246YWN0aXZlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3BhY2l0eTogMC45OyB9XG5cbi5wc3dwX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLyogcHN3cF9fdWktLW92ZXItY2xvc2UgY2xhc3MgaXQgYWRkZWQgd2hlbiBtb3VzZSBpcyBvdmVyIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgZ2FsbGVyeSAqL1xuLnBzd3BfX3VpLS1vdmVyLWNsb3NlIC5wc3dwX19idXR0b24tLWNsb3NlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ucHN3cF9fYnV0dG9uLFxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvZGVmYXVsdC1za2luLnBuZykgMCAwIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAyNjRweCA4OHB4O1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4OyB9XG5cbkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjEpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjA5Mzc1KSwgKG1pbi1yZXNvbHV0aW9uOiAxMDVkcGkpLCAobWluLXJlc29sdXRpb246IDEuMWRwcHgpIHtcbiAgLyogU2VydmUgU1ZHIHNwcml0ZSBpZiBicm93c2VyIHN1cHBvcnRzIFNWRyBhbmQgcmVzb2x1dGlvbiBpcyBtb3JlIHRoYW4gMTA1ZHBpICovXG4gIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbixcbiAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9kZWZhdWx0LXNraW4uc3ZnKTsgfVxuICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfSB9XG5cbi5wc3dwX19idXR0b24tLWNsb3NlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDRweDsgfVxuXG4ucHN3cF9fYnV0dG9uLS1zaGFyZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00NHB4IC00NHB4OyB9XG5cbi5wc3dwX19idXR0b24tLWZzIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHN3cC0tc3VwcG9ydHMtZnMgLnBzd3BfX2J1dHRvbi0tZnMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucHN3cC0tZnMgLnBzd3BfX2J1dHRvbi0tZnMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDRweCAwOyB9XG5cbi5wc3dwX19idXR0b24tLXpvb20ge1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODhweCAwOyB9XG5cbi5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzJweCAwOyB9XG5cbi8qIG5vIGFycm93cyBvbiB0b3VjaCBzY3JlZW5zICovXG4ucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4ucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXHJcblx0QXJyb3cgYnV0dG9ucyBoaXQgYXJlYVxyXG5cdChpY29uIGlzIGFkZGVkIHRvIDpiZWZvcmUgcHNldWRvLWVsZW1lbnQpXHJcbiovXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgd2lkdGg6IDcwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCB7XG4gIGxlZnQ6IDA7IH1cblxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7IH1cblxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDM1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzJweDtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSB7XG4gIGxlZnQ6IDZweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzOHB4IC00NHB4OyB9XG5cbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICByaWdodDogNnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtNDRweDsgfVxuXG4vKlxyXG5cclxuXHQyLiBTaGFyZSBtb2RhbC9wb3B1cCBhbmQgbGlua3NcclxuXHJcbiAqL1xuLnBzd3BfX2NvdW50ZXIsXG4ucHN3cF9fc2hhcmUtbW9kYWwge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5wc3dwX19zaGFyZS1tb2RhbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxNjAwO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxuXG4ucHN3cF9fc2hhcmUtbW9kYWwtLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnBzd3BfX3NoYXJlLXRvb2x0aXAge1xuICB6LWluZGV4OiAxNjIwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIHRvcDogNTZweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIHJpZ2h0OiA0NHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuXG4ucHN3cF9fc2hhcmUtdG9vbHRpcCBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4OyB9XG5cbi5wc3dwX19zaGFyZS10b29sdGlwIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5wc3dwX19zaGFyZS10b29sdGlwIGE6Zmlyc3QtY2hpbGQge1xuICAvKiByb3VuZCBjb3JuZXJzIG9uIHRoZSBmaXJzdC9sYXN0IGxpc3QgaXRlbSAqL1xuICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDsgfVxuXG4ucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDsgfVxuXG4ucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4ge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiAucHN3cF9fc2hhcmUtdG9vbHRpcCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLyogaW5jcmVhc2Ugc2l6ZSBvZiBzaGFyZSBsaW5rcyBvbiB0b3VjaCBkZXZpY2VzICovXG4ucHN3cC0tdG91Y2ggLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7XG4gIHBhZGRpbmc6IDE2cHggMTJweDsgfVxuXG5hLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTJweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIGJvcmRlcjogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjRkZGO1xuICAtd2Via2l0LXBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtbW96LXBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG5hLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzRTVDOUE7XG4gIGNvbG9yOiAjRkZGOyB9XG5cbmEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmhvdmVyOmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMzRTVDOUE7IH1cblxuYS5wc3dwX19zaGFyZS0tdHdpdHRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM1NUFDRUU7XG4gIGNvbG9yOiAjRkZGOyB9XG5cbmEucHN3cF9fc2hhcmUtLXBpbnRlcmVzdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNDQ0M7XG4gIGNvbG9yOiAjQ0UyNzJEOyB9XG5cbmEucHN3cF9fc2hhcmUtLWRvd25sb2FkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0RERDsgfVxuXG4vKlxyXG5cclxuXHQzLiBJbmRleCBpbmRpY2F0b3IgKFwiMSBvZiBYXCIgY291bnRlcilcclxuXHJcbiAqL1xuLnBzd3BfX2NvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICBjb2xvcjogI0ZGRjtcbiAgb3BhY2l0eTogMC43NTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qXHJcblxyXG5cdDQuIENhcHRpb25cclxuXHJcbiAqL1xuLnBzd3BfX2NhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDQ0cHg7IH1cblxuLnBzd3BfX2NhcHRpb24gc21hbGwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQkJCOyB9XG5cbi5wc3dwX19jYXB0aW9uX19jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNDIwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogI0NDQzsgfVxuXG4ucHN3cF9fY2FwdGlvbi0tZW1wdHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEZha2UgY2FwdGlvbiBlbGVtZW50LCB1c2VkIHRvIGNhbGN1bGF0ZSBoZWlnaHQgb2YgbmV4dC9wcmV2IGltYWdlICovXG4ucHN3cF9fY2FwdGlvbi0tZmFrZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKlxyXG5cclxuXHQ1LiBMb2FkaW5nIGluZGljYXRvciAocHJlbG9hZGVyKVxyXG5cclxuXHRZb3UgY2FuIHBsYXkgd2l0aCBpdCBoZXJlIC0gaHR0cDovL2NvZGVwZW4uaW8vZGltc2VtZW5vdi9wZW4veXlCV29SXHJcblxyXG4gKi9cbi5wc3dwX19wcmVsb2FkZXIge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIycHg7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIGRpcmVjdGlvbjogbHRyOyB9XG5cbi5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbjogMTJweDsgfVxuXG4ucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAvKiBXZSB1c2UgLmdpZiBpbiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgQ1NTIGFuaW1hdGlvbiAqL1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3ByZWxvYWRlci5naWYpIDAgMCBuby1yZXBlYXQ7IH1cblxuLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGNsb2Nrd2lzZSA1MDBtcyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogY2xvY2t3aXNlIDUwMG1zIGxpbmVhciBpbmZpbml0ZTsgfVxuXG4ucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZG9udXQtcm90YXRlIDEwMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKSBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBkb251dC1yb3RhdGUgMTAwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpIGluZmluaXRlOyB9XG5cbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTVweDtcbiAgdG9wOiAxNXB4O1xuICBtYXJnaW46IDA7IH1cblxuLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9fY3V0IHtcbiAgLypcclxuXHRcdFx0VGhlIGlkZWEgb2YgYW5pbWF0aW5nIGlubmVyIGNpcmNsZSBpcyBiYXNlZCBvbiBQb2x5bWVyIChcIm1hdGVyaWFsXCIpIGxvYWRpbmcgaW5kaWNhdG9yXHJcblx0XHRcdCBieSBLZWFudSBMZWUgaHR0cHM6Ly9ibG9nLmtlYW51bGVlLmNvbS8yMDE0LzEwLzIwL3RoZS10YWxlLW9mLXRocmVlLXNwaW5uZXJzLmh0bWxcclxuXHRcdCovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDdweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2RvbnV0IHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjRkZGO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5wc3dwX19wcmVsb2FkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBjbG9ja3dpc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBkb251dC1yb3RhdGUge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZG9udXQtcm90YXRlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4vKlxyXG5cclxuXHQ2LiBBZGRpdGlvbmFsIHN0eWxlc1xyXG5cclxuICovXG4vKiByb290IGVsZW1lbnQgb2YgVUkgKi9cbi5wc3dwX191aSB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDE1NTA7IH1cblxuLyogdG9wIGJsYWNrIGJhciB3aXRoIGJ1dHRvbnMgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yICovXG4ucHN3cF9fdG9wLWJhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDQ0cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5wc3dwX19jYXB0aW9uLFxuLnBzd3BfX3RvcC1iYXIsXG4ucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfVxuXG4vKiBwc3dwLS1oYXNfbW91c2UgY2xhc3MgaXMgYWRkZWQgb25seSB3aGVuIHR3byBzdWJzZXF1ZW50IG1vdXNlbW92ZSBldmVudHMgb2NjdXIgKi9cbi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4ucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLnBzd3BfX3RvcC1iYXIsXG4ucHN3cF9fY2FwdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuXG4vKiBwc3dwX191aS0tZml0IGNsYXNzIGlzIGFkZGVkIHdoZW4gbWFpbiBpbWFnZSBcImZpdHNcIiBiZXR3ZWVuIHRvcCBiYXIgYW5kIGJvdHRvbSBiYXIgKGNhcHRpb24pICovXG4ucHN3cF9fdWktLWZpdCAucHN3cF9fdG9wLWJhcixcbi5wc3dwX191aS0tZml0IC5wc3dwX19jYXB0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpOyB9XG5cbi8qIHBzd3BfX3VpLS1pZGxlIGNsYXNzIGlzIGFkZGVkIHdoZW4gbW91c2UgaXNuJ3QgbW92aW5nIGZvciBzZXZlcmFsIHNlY29uZHMgKEpTIG9wdGlvbiB0aW1lVG9JZGxlKSAqL1xuLnBzd3BfX3VpLS1pZGxlIC5wc3dwX190b3AtYmFyIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4ucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4ucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgb3BhY2l0eTogMDsgfVxuXG4vKlxyXG5cdHBzd3BfX3VpLS1oaWRkZW4gY2xhc3MgaXMgYWRkZWQgd2hlbiBjb250cm9scyBhcmUgaGlkZGVuXHJcblx0ZS5nLiB3aGVuIHVzZXIgdGFwcyB0byB0b2dnbGUgdmlzaWJpbGl0eSBvZiBjb250cm9sc1xyXG4qL1xuLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX3RvcC1iYXIsXG4ucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fY2FwdGlvbixcbi5wc3dwX191aS0taGlkZGVuIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgLyogRm9yY2UgcGFpbnQgJiBjcmVhdGUgY29tcG9zaXRpb24gbGF5ZXIgZm9yIGNvbnRyb2xzLiAqL1xuICBvcGFjaXR5OiAwLjAwMTsgfVxuXG4vKiBwc3dwX191aS0tb25lLXNsaWRlIGNsYXNzIGlzIGFkZGVkIHdoZW4gdGhlcmUgaXMganVzdCBvbmUgaXRlbSBpbiBnYWxsZXJ5ICovXG4ucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbi5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCxcbi5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19jb3VudGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHN3cF9fZWxlbWVudC0tZGlzYWJsZWQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnBzd3AtLW1pbmltYWwtLWRhcmsgLnBzd3BfX3RvcC1iYXIge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi8qISBQaG90b1N3aXBlIG1haW4gQ1NTIGJ5IERtaXRyeSBTZW1lbm92IHwgcGhvdG9zd2lwZS5jb20gfCBNSVQgbGljZW5zZSAqL1xuLypcclxuXHRTdHlsZXMgZm9yIGJhc2ljIFBob3RvU3dpcGUgZnVuY3Rpb25hbGl0eSAoc2xpZGluZyBhcmVhLCBvcGVuL2Nsb3NlIHRyYW5zaXRpb25zKVxyXG4qL1xuLyogcHN3cCA9IHBob3Rvc3dpcGUgKi9cbi5wc3dwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgei1pbmRleDogMTUwMDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiBjcmVhdGUgc2VwYXJhdGUgbGF5ZXIsIHRvIGF2b2lkIHBhaW50IG9uIHdpbmRvdy5vbnNjcm9sbCBpbiB3ZWJraXQvYmxpbmsgKi9cbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLnBzd3AgKiB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ucHN3cCBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogc3R5bGUgaXMgYWRkZWQgd2hlbiBKUyBvcHRpb24gc2hvd0hpZGVPcGFjaXR5IGlzIHNldCB0byB0cnVlICovXG4ucHN3cC0tYW5pbWF0ZV9vcGFjaXR5IHtcbiAgLyogMC4wMDEsIGJlY2F1c2Ugb3BhY2l0eTowIGRvZXNuJ3QgdHJpZ2dlciBQYWludCBhY3Rpb24sIHdoaWNoIGNhdXNlcyBsYWcgYXQgc3RhcnQgb2YgdHJhbnNpdGlvbiAqL1xuICBvcGFjaXR5OiAwLjAwMTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnBzd3AtLXpvb20tYWxsb3dlZCAucHN3cF9faW1nIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47XG4gIGN1cnNvcjogLW1vei16b29tLWluO1xuICBjdXJzb3I6IHpvb20taW47IH1cblxuLnBzd3AtLXpvb21lZC1pbiAucHN3cF9faW1nIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogLW1vei1ncmFiO1xuICBjdXJzb3I6IGdyYWI7IH1cblxuLnBzd3AtLWRyYWdnaW5nIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XG4gIGN1cnNvcjogLW1vei1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxuXG4vKlxyXG5cdEJhY2tncm91bmQgaXMgYWRkZWQgYXMgYSBzZXBhcmF0ZSBlbGVtZW50LlxyXG5cdEFzIGFuaW1hdGluZyBvcGFjaXR5IGlzIG11Y2ggZmFzdGVyIHRoYW4gYW5pbWF0aW5nIHJnYmEoKSBiYWNrZ3JvdW5kLWNvbG9yLlxyXG4qL1xuLnBzd3BfX2JnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxuXG4ucHN3cF9fc2Nyb2xsLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7IH1cblxuLyogUHJldmVudCBzZWxlY3Rpb24gYW5kIHRhcCBoaWdobGlnaHRzICovXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX2ltZyB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuXG4ucHN3cF9fem9vbS13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLyogZm9yIG9wZW4vY2xvc2UgdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7IH1cblxuLnBzd3BfX2JnIHtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1hbmltYXRlZC1pbiAucHN3cF9fYmcsXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5wc3dwX19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2ltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi8qXHJcblx0c3RyZXRjaGVkIHRodW1ibmFpbCBvciBkaXYgcGxhY2Vob2xkZXIgZWxlbWVudCAoc2VlIGJlbG93KVxyXG5cdHN0eWxlIGlzIGFkZGVkIHRvIGF2b2lkIGZsaWNrZXJpbmcgaW4gd2Via2l0L2JsaW5rIHdoZW4gbGF5ZXJzIG92ZXJsYXBcclxuKi9cbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcclxuXHRkaXYgZWxlbWVudCB0aGF0IG1hdGNoZXMgc2l6ZSBvZiBsYXJnZSBpbWFnZVxyXG5cdGxhcmdlIGltYWdlIGxvYWRzIG9uIHRvcCBvZiBpdFxyXG4qL1xuLnBzd3BfX2ltZy0tcGxhY2Vob2xkZXItLWJsYW5rIHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4ucHN3cC0taWUgLnBzd3BfX2ltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7IH1cblxuLypcclxuXHRFcnJvciBtZXNzYWdlIGFwcGVhcnMgd2hlbiBpbWFnZSBpcyBub3QgbG9hZGVkXHJcblx0KEpTIG9wdGlvbiBlcnJvck1zZyBjb250cm9scyBtYXJrdXApXHJcbiovXG4ucHN3cF9fZXJyb3ItbXNnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbWFyZ2luLXRvcDogLThweDtcbiAgY29sb3I6ICNDQ0M7IH1cblxuLnBzd3BfX2Vycm9yLW1zZyBhIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qIGZvbnQtZmFtaWx5OiBcIlNlZ29lVUlSZWd1bGFyXCI7ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiU2Vnb2VVSVJlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9TZWdvZVVJUmVndWxhci9TZWdvZVVJUmVndWxhci5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvU2Vnb2VVSVJlZ3VsYXIvU2Vnb2VVSVJlZ3VsYXIuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvU2Vnb2VVSVJlZ3VsYXIvU2Vnb2VVSVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9TZWdvZVVJUmVndWxhci9TZWdvZVVJUmVndWxhci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKiBmb250LWZhbWlseTogXCJTZWdvZVVJQm9sZFwiOyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlNlZ29lVUlCb2xkXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUJvbGQvU2Vnb2VVSUJvbGQuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL1NlZ29lVUlCb2xkL1NlZ29lVUlCb2xkLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL1NlZ29lVUlCb2xkL1NlZ29lVUlCb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUJvbGQvU2Vnb2VVSUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLyogZm9udC1mYW1pbHk6IFwiU2Vnb2VVSUxpZ2h0XCI7ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiU2Vnb2VVSUxpZ2h0XCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUxpZ2h0L1NlZ29lVUlMaWdodC5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUxpZ2h0L1NlZ29lVUlMaWdodC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9TZWdvZVVJTGlnaHQvU2Vnb2VVSUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUxpZ2h0L1NlZ29lVUlMaWdodC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdyYWxld2F5bGlnaHQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3JhbGV3YXktbGlnaHQtd2ViZm9udC5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3JhbGV3YXktbGlnaHQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LnN2ZyNyYWxld2F5bGlnaHRcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogVGhpcyBzdHlsZXNoZWV0IGdlbmVyYXRlZCBieSBUcmFuc2ZvbnRlciAoaHR0cHM6Ly90cmFuc2ZvbnRlci5vcmcpIG9uIEp1bHkgMywgMjAxNyA5OjUyIEFNICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgRGVtaSc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtRGVtaS5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtRGVtaS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtRGVtaS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULURlbWkuc3ZnI0Z1dHVyYVBULURlbWlcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1NZWRpdW0uZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1NZWRpdW0ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS5zdmcjRnV0dXJhUFQtTWVkaXVtXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBMaWdodCc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtTGlnaHQuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUxpZ2h0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1MaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUxpZ2h0LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtTGlnaHQuc3ZnI0Z1dHVyYVBULUxpZ2h0XCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBCb29rJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1Cb29rLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1Cb29rLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2sud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1Cb29rLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtQm9vay5zdmcjRnV0dXJhUFQtQm9va1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5odG1sLCBib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG5cbmJvZHksICosICo6YWZ0ZXIsICo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTsgfVxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTsgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7IH1cbiAgNjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCk7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZG93blVwIHtcbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IGJsYWNrOyB9XG5cbi53cmFwcGVyIHtcbiAgbWFyZ2luOiAwIDE1JTtcbiAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgTGlnaHQnO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgICAud3JhcHBlciB7XG4gICAgICBtYXJnaW46IDAgNSU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAud3JhcHBlciB7XG4gICAgICBtYXJnaW46IDAgMSU7IH0gfVxuXG4uYWJvdXRtZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgIC5hYm91dG1lIHtcbiAgICAgIG1hcmdpbjogMCAxMHB4OyB9IH1cbiAgLmFib3V0bWVfX2xvZ28ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOyB9XG4gIC5hYm91dG1lX19saW5rIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUIGJvb2snO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDNweCAxM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgYm9yZGVyOiAxLjhweCBzb2xpZCBvcmFuZ2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsgfVxuICAgIC5hYm91dG1lX19saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxNjUsIDAsIDAuNzUpO1xuICAgICAgYm9yZGVyOiAxLjhweCBzb2xpZCBibGFjazsgfVxuICAuYWJvdXRtZV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgICAuYWJvdXRtZV9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7IH0gfVxuICAuYWJvdXRtZV9fdGV4dENvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYWJvdXRtZV9faGVscGZ1bCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBtYXJnaW46IDIwcHggMCA2MHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUIERlbWknO1xuICAgIGZvbnQtc2l6ZTogMS45cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBvcmFuZ2U7IH1cblxuLmxvZ28ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7IH1cblxuLmF2YXRhciB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uZmxhdCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgLmZsYXQge1xuICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLmZsYXRfX2l0ZW0ge1xuICAgIG1hcmdpbjogMCAwIDgwcHggMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOyB9XG4gICAgLmZsYXRfX2l0ZW06aG92ZXIgLmdhbGxlcnkge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5mbGF0X19pdGVtOmhvdmVyIC5mbGF0X19udW1iZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgpO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgLmZsYXRfX2l0ZW06aG92ZXIgLmZsYXRfX251bWJlcjphZnRlciB7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAgIC5mbGF0X19pdGVtOmhvdmVyIC5mbGF0X19kZXNjcmlwdGlvbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7IH1cbiAgICAuZmxhdF9faXRlbTpob3ZlciAuZmxhdF9fdGl0bGUge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgICAuZmxhdF9fdGV4dCB7XG4gICAgICBtYXJnaW46IDAgNSU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAuZmxhdF9fdGV4dCB7XG4gICAgICBtYXJnaW46IDAgMTglOyB9IH1cbiAgLmZsYXRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgTGlnaHQnO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luOiAwIDVweCAxMHB4IDA7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAgIC5mbGF0X190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4IDEwcHg7IH0gfVxuICAuZmxhdF9fbnVtYmVyIHtcbiAgICBmb250LWZhbWlseTogJ3JhbGV3YXlsaWdodCcsICdyb2JvdG8nLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAgIG1hcmdpbi1sZWZ0OiAtNDBweDsgfVxuICAgIC5mbGF0X19udW1iZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICB3aWR0aDogNzVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiBvcmFuZ2U7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsgfVxuICAuZmxhdF9fZGVzY3JpcHRpb24ge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAtMTBweCAwIDMwcHggMTBweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgYm9vayc7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAgIC5mbGF0X19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IH0gfVxuICAuZmxhdF9fc2hvd01vcmUge1xuICAgIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUIGJvb2snO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDNweCAxM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgYm9yZGVyOiAxLjhweCBzb2xpZCBvcmFuZ2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsgfVxuICAgIC5mbGF0X19zaG93TW9yZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTY1LCAwLCAwLjc1KTtcbiAgICAgIGJvcmRlcjogMS44cHggc29saWQgYmxhY2s7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAgIC5mbGF0X19zaG93TW9yZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9IH1cbiAgLmZsYXRfX3ZpZGVvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuZmxhdF9fdmlkZW9Cb3gge1xuICAgIHdpZHRoOiAzMy4zMzMlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgICAuZmxhdF9fdmlkZW9Cb3gge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luOiBhdXRvOyB9IH1cbiAgLmZsYXRfX3ZpZGVvRnJhbWUge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMjR2aDtcbiAgICBwYWRkaW5nOiAwIDJweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgICAgLmZsYXRfX3ZpZGVvRnJhbWUge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnZoOyB9IH1cblxuLmdhbGxlcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRyYW5zaXRpb246IDAuM3MgZWFzZS1vdXQ7IH1cbiAgLmdhbGxlcnlfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogMC4xNXMgZWFzZS1pbjtcbiAgICBib3JkZXItcmFkaXVzOiAxLjVweDsgfVxuICAuZ2FsbGVyeV9fbGluayB7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5nYWxsZXJ5X19ib3gge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDJweDsgfVxuXG4uZ3JpZC1zaXplciwgLmdhbGxlcnlfX2JveCB7XG4gIHdpZHRoOiAzMy4zMzMlO1xuICBmbG9hdDogbGVmdDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAuZ3JpZC1zaXplciwgLmdhbGxlcnlfX2JveCB7XG4gICAgICB3aWR0aDogNzUlO1xuICAgICAgbWFyZ2luOiBhdXRvOyB9IH1cblxuLnBhbm9yYW1hMTAwIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnVwYnV0dG9uIHtcbiAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyJTtcbiAgYm90dG9tOiA4JTtcbiAgYmFja2dyb3VuZDogbGlnaHRncmF5O1xuICBvcGFjaXR5OiAwLjU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHotaW5kZXg6IDEwMDsgfVxuICAudXBidXR0b25fX2xpbmsge1xuICAgIHBhZGRpbmc6IDdweCAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgLnVwYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBncmF5OyB9XG5cbi8qIGVudGlyZSBjb250YWluZXIsIGtlZXBzIHBlcnNwZWN0aXZlICovXG4uZmxpcC1jb250YWluZXIge1xuICBwZXJzcGVjdGl2ZTogMTAwMHB4OyB9XG5cbi8qIGZsaXAgdGhlIHBhbmUgd2hlbiBob3ZlcmVkICovXG4uZmxpcC1jb250YWluZXIuaG92ZXIgLmZsaXBwZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTsgfVxuXG4uZmxpcC1jb250YWluZXIsIC5mcm9udCwgLmJhY2sge1xuICBoZWlnaHQ6IDQwMHB4O1xuICB3aWR0aDogNDAwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgLmZsaXAtY29udGFpbmVyLCAuZnJvbnQsIC5iYWNrIHtcbiAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgIGhlaWdodDogMzAwcHg7IH0gfVxuXG4vKiBmbGlwIHNwZWVkIGdvZXMgaGVyZSAqL1xuLmZsaXBwZXIge1xuICB0cmFuc2l0aW9uOiAwLjZzO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLyogaGlkZSBiYWNrIG9mIHBhbmUgZHVyaW5nIHN3YXAgKi9cbi5mcm9udCwgLmJhY2sge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qIGZyb250IHBhbmUsIHBsYWNlZCBhYm92ZSBiYWNrICovXG4uZnJvbnQge1xuICB6LWluZGV4OiAyO1xuICAvKiBmb3IgZmlyZWZveCAzMSAqL1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7IH1cblxuLyogYmFjaywgaW5pdGlhbGx5IGhpZGRlbiBwYW5lICovXG4uYmFjayB7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpOyB9XG5cbi5wcmVsb2FkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgYmFja2dyb3VuZDogIzFlMWUxZTsgfVxuXG4ucHJlbG9hZGVyX19zcGlubmVyIHtcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cbi5wcmVsb2FkZXJfX2FuaW1hdGlvbiB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IH1cblxuLnByZWxvYWRlcl9fYW5pbWF0aW9uLCAucHJlbG9hZGVyX19hbmltYXRpb246YmVmb3JlLCAucHJlbG9hZGVyX19hbmltYXRpb246YWZ0ZXIge1xuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXItdG9wLWNvbG9yOiBvcmFuZ2U7IH1cblxuLnByZWxvYWRlcl9fYW5pbWF0aW9uOmJlZm9yZSwgLnByZWxvYWRlcl9fYW5pbWF0aW9uOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5wcmVsb2FkZXJfX2FuaW1hdGlvbjpiZWZvcmUge1xuICB0b3A6IDdweDtcbiAgYm90dG9tOiA3cHg7XG4gIGxlZnQ6IDdweDtcbiAgcmlnaHQ6IDdweDtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gM3MgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHNwaW4gM3MgbGluZWFyIGluZmluaXRlOyB9XG5cbi5wcmVsb2FkZXJfX2FuaW1hdGlvbjphZnRlciB7XG4gIHRvcDogMTVweDtcbiAgYm90dG9tOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICByaWdodDogMTVweDtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS41cyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogc3BpbiAxLjVzIGxpbmVhciBpbmZpbml0ZTsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4ucHJlbG9hZGVyX19wZXJjZW50cyB7XG4gIGZvbnQtZmFtaWx5OiAnU2Vnb2VVSUxpZ2h0JztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi5nYWxsZXJ5X19ib3g6bnRoLWNoaWxkKDFuKzQpIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5mb290ZXIge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgZm9vdGVyIC5jb250YWN0cyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuXG4uY29udGFjdG1lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBib29rJztcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBvcmFuZ2U7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgIC5jb250YWN0bWUge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07IH0gfVxuXG4uaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgTGlnaHQnO1xuICBmb250LXdlaWdodDogMzAwO1xuICBib3JkZXItYm90dG9tOiAxLjVweCBzb2xpZCBvcmFuZ2U7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgcGFkZGluZzogMTBweCAwOyB9XG5cbi5jb250YWN0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBib29rJzsgfVxuICAuY29udGFjdHNfX2JveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY29udGFjdHNfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiA1cHg7IH1cbiAgLmNvbnRhY3RzX19saW5rIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jb250YWN0c19fbGluazpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTsgfVxuICAgIC5jb250YWN0c19fbGlua190ZWw6aG92ZXI6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIGNvbnRlbnQ6ICc2NzUgMzcxIDk4NyAoK1doYXRzQXBwKSc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb2xvcjogIzc3NztcbiAgICAgIHRvcDogLTIzcHg7XG4gICAgICByaWdodDogLTEyMHB4OyB9XG4gICAgLmNvbnRhY3RzX19saW5rX3NreXBlOmhvdmVyOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnQGJ5cGFibG8uZXN0dWRpbyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb2xvcjogIzc3NztcbiAgICAgIHRvcDogLTIzcHg7XG4gICAgICBsZWZ0OiAtOHB4OyB9XG4gICAgLmNvbnRhY3RzX19saW5rX2ZiIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7IH1cbiAgICAuY29udGFjdHNfX2xpbmtfZW1haWwge1xuICAgICAgcGFkZGluZy1ib3R0b206IDRweDsgfVxuICAgICAgLmNvbnRhY3RzX19saW5rX2VtYWlsOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdwaG90b0BieXBhYmxvLnJ1JztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb2xvcjogIzc3NztcbiAgICAgICAgdG9wOiAtMjNweDtcbiAgICAgICAgbGVmdDogLTI1cHg7IH1cblxuLmNvbG9yU3dpdGhlciB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB3aWR0aDogMTI1cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYyMHB4KSB7XG4gICAgLmNvbG9yU3dpdGhlciB7XG4gICAgICB3aWR0aDogMTQ1cHg7XG4gICAgICBvcmRlcjogLTE7IH0gfVxuICAuY29sb3JTd2l0aGVyLXdoaXRlIHtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbiAgICAuY29sb3JTd2l0aGVyLXdoaXRlOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4gIC5jb2xvclN3aXRoZXItb3Ige1xuICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY29sb3JTd2l0aGVyLWJsYWNrIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsgfVxuICAgIC5jb2xvclN3aXRoZXItYmxhY2s6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZDogIzFlMWUxZTsgfVxuXG4uZW4gKltsYW5nPXJ1XSxcbi5lbiAqW2xhbmc9ZXNdLFxuLmVuICpbbGFuZz1jYXRdLFxuLmNhdCAqW2xhbmc9ZW5dLFxuLmNhdCAqW2xhbmc9ZXNdLFxuLmNhdCAqW2xhbmc9cnVdLFxuLnJ1ICpbbGFuZz1lbl0sXG4ucnUgKltsYW5nPWVzXSxcbi5ydSAqW2xhbmc9Y2F0XSxcbi5lcyAqW2xhbmc9cnVdLFxuLmVzICpbbGFuZz1jYXRdLFxuLmVzICpbbGFuZz1lbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qINCh0LrRgNGL0LLQsNC10LwgXCLQvdC1INGC0L7RglwiINGP0LfRi9C6ICovXG4uZW4gLnJ1IC5lcywgLmVuIC5lcyAucnUsIC5lcyAucnUgLmVuLCAuZXMgLmVuIC5ydSxcbi5ydSAuZW4gLmVzLCAucnUgLmVzIC5lbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmxhbmd1YWdlIHtcbiAgd2lkdGg6IDEyNXB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NzBweCkge1xuICAgIC5sYW5ndWFnZSB7XG4gICAgICBvcmRlcjogLTI7IH0gfVxuXG4vKiDQn9C10YDQtdC60LvRjtGH0LDRgtC10LvQuCDRj9C30YvQutCwICovXG4ubGFuZy1zd2l0Y2hlciB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZm9udC1mYW1pbHk6ICdTZWdvZVVJTGlnaHQnO1xuICBmb250LXNpemU6IDFyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDI1cHg7IH1cblxuLmxhbmctc3dpdGNoZXI6aG92ZXIge1xuICBjb2xvcjogb3JhbmdlOyB9XG5cbi8qINCS0YvQtNC10LvRj9C10Lwg0LDQutGC0LjQstC90YPRjiDQv9C10YDQtdC60LvRjtGH0LDQu9C60YMg0YLQvtC20LUg0YEg0L/QvtC80L7RidGM0Y4g0LrQu9Cw0YHRgdC+0LIg0YDQvtC00LjRgtC10LvRjyAqL1xuLmVuIC5sYW5nLXN3aXRjaGVyLS1lbiwgLmNhdCAubGFuZy1zd2l0Y2hlci0tY2F0LCAuZXMgLmxhbmctc3dpdGNoZXItLWVzLFxuLnJ1IC5sYW5nLXN3aXRjaGVyLS1ydSB7XG4gIGNvbG9yOiBvcmFuZ2U7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4ucHJpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyog0YHQvNC10YnQsNC10YIg0YLQvtC70YzQutC+INCx0LvQvtC60LggKi9cbiAgYmFja2dyb3VuZDogb3JhbmdlO1xuICBib3JkZXItcmFkaXVzOiAxMDBweDsgfVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5vcm1hbGl6ZS5zY3NzIHNldHRpbmdzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBJbmNsdWRlcyBsZWdhY3kgYnJvd3NlciBzdXBwb3J0IElFNi83XG4gKlxuICogU2V0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIGRyb3Agc3VwcG9ydCBmb3IgSUU2IGFuZCBJRTdcbiAqL1xuXG4kbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8qIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKiAzLiBDb3JyZWN0cyB0ZXh0IHJlc2l6aW5nIG9kZGx5IGluIElFIDYvNyB3aGVuIGJvZHkgYGZvbnQtc2l6ZWAgaXMgc2V0IHVzaW5nXG4gKiAgYGVtYCB1bml0cy5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKmZvbnQtc2l6ZTogMTAwJTsgLyogMyAqL1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDYvNy84LzkgYW5kIEZpcmVmb3ggMy5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKmRpc3BsYXk6IGlubGluZTtcbiAgICAqem9vbTogMTtcbiAgfVxufVxuXG4vKipcbiAqIFByZXZlbnRzIG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmEge1xuICAmOmFjdGl2ZSwgJjpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfTtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5AaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbWFyZ2luOiAwLjgzZW0gMDtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuMTdlbTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG1hcmdpbjogMS4zM2VtIDA7XG4gIH1cblxuICBoNSB7XG4gICAgZm9udC1zaXplOiAwLjgzZW07XG4gICAgbWFyZ2luOiAxLjY3ZW0gMDtcbiAgfVxuXG4gIGg2IHtcbiAgICBmb250LXNpemU6IDAuNjdlbTtcbiAgICBtYXJnaW46IDIuMzNlbSAwO1xuICB9XG59XG5cbi8qKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcblxuICAvKipcbiAgICogQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFIDYvNy5cbiAgICovXG5cbiAgcCxcbiAgcHJlIHtcbiAgICAqbWFyZ2luOiAxZW0gMDtcbiAgfVxuXG4gIC8qXG4gICAqIEFkZHJlc3NlcyBDU1MgcXVvdGVzIG5vdCBzdXBwb3J0ZWQgaW4gSUUgNi83LlxuICAgKi9cblxuICBxIHtcbiAgICAqcXVvdGVzOiBub25lO1xuICB9XG5cbiAgLypcbiAgICogQWRkcmVzc2VzIGBxdW90ZXNgIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpIDQuXG4gICAqL1xuXG4gIHE6YmVmb3JlLFxuICBxOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBjb250ZW50OiBub25lO1xuICB9XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcblxuICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICBMaXN0c1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qXG4gICAqIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcuXG4gICAqL1xuXG4gIGRsLFxuICBtZW51LFxuICBvbCxcbiAgdWwge1xuICAgICptYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgZGQge1xuICAgICptYXJnaW46IDAgMCAwIDQwcHg7XG4gIH1cblxuICAvKlxuICAgKiBBZGRyZXNzZXMgcGFkZGluZ3Mgc2V0IGRpZmZlcmVudGx5IGluIElFIDYvNy5cbiAgICovXG5cbiAgbWVudSxcbiAgb2wsXG4gIHVsIHtcbiAgICAqcGFkZGluZzogMCAwIDAgNDBweDtcbiAgfVxuXG4gIC8qXG4gICAqIENvcnJlY3RzIGxpc3QgaW1hZ2VzIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUUgNy5cbiAgICovXG5cbiAgbmF2IHVsLFxuICBuYXYgb2wge1xuICAgICpsaXN0LXN0eWxlOiBub25lO1xuICAgICpsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICB9XG5cbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqIDIuIEltcHJvdmVzIGltYWdlIHF1YWxpdHkgd2hlbiBzY2FsZWQgaW4gSUUgNy5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKi1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IC8qIDIgKi9cbiAgfVxufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICogQ29ycmVjdCBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gSUUgNiwgU2FmYXJpIDQvNSwgYW5kIENocm9tZS5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICBfZm9udC1mYW1pbHk6ICdjb3VyaWVyIG5ldycsIG1vbm9zcGFjZTtcbiAgfVxuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqIDQuIEltcHJvdmVzIGFwcGVhcmFuY2UgYW5kIGNvbnNpc3RlbmN5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xuICBAaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMyAqL1xuICAgICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAzICovXG4gIH1cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKiA0LiBSZW1vdmVzIGlubmVyIHNwYWNpbmcgaW4gSUUgNyB3aXRob3V0IGFmZmVjdGluZyBub3JtYWwgdGV4dCBpbnB1dHMuXG4gKiAgS25vd24gaXNzdWU6IGlubmVyIHNwYWNpbmcgcmVtYWlucyBpbiBJRSA2LlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xuICBAaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICAgICpvdmVyZmxvdzogdmlzaWJsZTsgIC8qIDQgKi9cbiAgfVxufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKiAgS25vd24gaXNzdWU6IGV4Y2VzcyBwYWRkaW5nIHJlbWFpbnMgaW4gSUUgNi5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICAqaGVpZ2h0OiAxM3B4OyAvKiAzICovXG4gICAgKndpZHRoOiAxM3B4OyAvKiAzICovXG4gIH1cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqIDMuIENvcnJlY3RzIHRleHQgbm90IHdyYXBwaW5nIGluIEZpcmVmb3ggMy5cbiAqIDQuIENvcnJlY3RzIGFsaWdubWVudCBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgNi83LlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMyAqL1xuICAgICptYXJnaW4tbGVmdDogLTdweDsgLyogNCAqL1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59IiwiLyohIFBob3RvU3dpcGUgRGVmYXVsdCBVSSBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovXHJcbi8qXHJcblxyXG5cdENvbnRlbnRzOlxyXG5cclxuXHQxLiBCdXR0b25zXHJcblx0Mi4gU2hhcmUgbW9kYWwgYW5kIGxpbmtzXHJcblx0My4gSW5kZXggaW5kaWNhdG9yIChcIjEgb2YgWFwiIGNvdW50ZXIpXHJcblx0NC4gQ2FwdGlvblxyXG5cdDUuIExvYWRpbmcgaW5kaWNhdG9yXHJcblx0Ni4gQWRkaXRpb25hbCBzdHlsZXMgKHJvb3QgZWxlbWVudCwgdG9wIGJhciwgaWRsZSBzdGF0ZSwgaGlkZGVuIHN0YXRlLCBldGMuKVxyXG5cclxuKi9cclxuLypcclxuXHJcblx0MS4gQnV0dG9uc1xyXG5cclxuICovXHJcbi8qIDxidXR0b24+IGNzcyByZXNldCAqL1xyXG4ucHN3cF9fYnV0dG9uIHtcclxuICB3aWR0aDogNDRweDtcclxuICBoZWlnaHQ6IDQ0cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBib3JkZXI6IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIG9wYWNpdHk6IDAuNzU7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxyXG4gIC5wc3dwX19idXR0b246Zm9jdXMsXHJcbiAgLnBzd3BfX2J1dHRvbjpob3ZlciB7XHJcbiAgICBvcGFjaXR5OiAxOyB9XHJcbiAgLnBzd3BfX2J1dHRvbjphY3RpdmUge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIG9wYWNpdHk6IDAuOTsgfVxyXG4gIC5wc3dwX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJvcmRlcjogMDsgfVxyXG5cclxuLyogcHN3cF9fdWktLW92ZXItY2xvc2UgY2xhc3MgaXQgYWRkZWQgd2hlbiBtb3VzZSBpcyBvdmVyIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgZ2FsbGVyeSAqL1xyXG4ucHN3cF9fdWktLW92ZXItY2xvc2UgLnBzd3BfX2J1dHRvbi0tY2xvc2Uge1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuXHJcbi5wc3dwX19idXR0b24sXHJcbi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcclxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XHJcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9kZWZhdWx0LXNraW4ucG5nKSAwIDAgbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjY0cHggODhweDtcclxuICB3aWR0aDogNDRweDtcclxuICBoZWlnaHQ6IDQ0cHg7IH1cclxuXHJcbkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjEpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjA5Mzc1KSwgKG1pbi1yZXNvbHV0aW9uOiAxMDVkcGkpLCAobWluLXJlc29sdXRpb246IDEuMWRwcHgpIHtcclxuICAvKiBTZXJ2ZSBTVkcgc3ByaXRlIGlmIGJyb3dzZXIgc3VwcG9ydHMgU1ZHIGFuZCByZXNvbHV0aW9uIGlzIG1vcmUgdGhhbiAxMDVkcGkgKi9cclxuICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24sXHJcbiAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXHJcbiAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZGVmYXVsdC1za2luLnN2Zyk7IH1cclxuICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxyXG4gIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7IH0gfVxyXG5cclxuLnBzd3BfX2J1dHRvbi0tY2xvc2Uge1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTQ0cHg7IH1cclxuXHJcbi5wc3dwX19idXR0b24tLXNoYXJlIHtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDRweCAtNDRweDsgfVxyXG5cclxuLnBzd3BfX2J1dHRvbi0tZnMge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5wc3dwLS1zdXBwb3J0cy1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XHJcbiAgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcbi5wc3dwLS1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ0cHggMDsgfVxyXG5cclxuLnBzd3BfX2J1dHRvbi0tem9vbSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODhweCAwOyB9XHJcblxyXG4ucHN3cC0tem9vbS1hbGxvd2VkIC5wc3dwX19idXR0b24tLXpvb20ge1xyXG4gIGRpc3BsYXk6IGJsb2NrOyB9XHJcblxyXG4ucHN3cC0tem9vbWVkLWluIC5wc3dwX19idXR0b24tLXpvb20ge1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzJweCAwOyB9XHJcblxyXG4vKiBubyBhcnJvd3Mgb24gdG91Y2ggc2NyZWVucyAqL1xyXG4ucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXHJcbi5wc3dwLS10b3VjaCAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxyXG5cclxuLypcclxuXHRBcnJvdyBidXR0b25zIGhpdCBhcmVhXHJcblx0KGljb24gaXMgYWRkZWQgdG8gOmJlZm9yZSBwc2V1ZG8tZWxlbWVudClcclxuKi9cclxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXHJcbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxuICB0b3A6IDUwJTtcclxuICBtYXJnaW4tdG9wOiAtNTBweDtcclxuICB3aWR0aDogNzBweDtcclxuICBoZWlnaHQ6IDEwMHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB9XHJcblxyXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCB7XHJcbiAgbGVmdDogMDsgfVxyXG5cclxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcclxuICByaWdodDogMDsgfVxyXG5cclxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxyXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICB0b3A6IDM1cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gIGhlaWdodDogMzBweDtcclxuICB3aWR0aDogMzJweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cclxuXHJcbi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSB7XHJcbiAgbGVmdDogNnB4O1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzhweCAtNDRweDsgfVxyXG5cclxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XHJcbiAgcmlnaHQ6IDZweDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtNDRweDsgfVxyXG5cclxuLypcclxuXHJcblx0Mi4gU2hhcmUgbW9kYWwvcG9wdXAgYW5kIGxpbmtzXHJcblxyXG4gKi9cclxuLnBzd3BfX2NvdW50ZXIsXHJcbi5wc3dwX19zaGFyZS1tb2RhbCB7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cclxuXHJcbi5wc3dwX19zaGFyZS1tb2RhbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxNjAwO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxyXG5cclxuLnBzd3BfX3NoYXJlLW1vZGFsLS1oaWRkZW4ge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5wc3dwX19zaGFyZS10b29sdGlwIHtcclxuICB6LWluZGV4OiAxNjIwO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gIHRvcDogNTZweDtcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgcmlnaHQ6IDQ0cHg7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXM7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxyXG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7IH1cclxuICAgIC5wc3dwX19zaGFyZS10b29sdGlwIGE6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIGNvbG9yOiAjMDAwOyB9XHJcbiAgICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmZpcnN0LWNoaWxkIHtcclxuICAgICAgLyogcm91bmQgY29ybmVycyBvbiB0aGUgZmlyc3QvbGFzdCBsaXN0IGl0ZW0gKi9cclxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7IH1cclxuICAgIC5wc3dwX19zaGFyZS10b29sdGlwIGE6bGFzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4OyB9XHJcblxyXG4ucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4ge1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuICAucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4gLnBzd3BfX3NoYXJlLXRvb2x0aXAge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XHJcblxyXG4vKiBpbmNyZWFzZSBzaXplIG9mIHNoYXJlIGxpbmtzIG9uIHRvdWNoIGRldmljZXMgKi9cclxuLnBzd3AtLXRvdWNoIC5wc3dwX19zaGFyZS10b29sdGlwIGEge1xyXG4gIHBhZGRpbmc6IDE2cHggMTJweDsgfVxyXG5cclxuYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogLTEycHg7XHJcbiAgcmlnaHQ6IDE1cHg7XHJcbiAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0ZGRjtcclxuICAtd2Via2l0LXBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIC1tb3otcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cclxuXHJcbmEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjM0U1QzlBO1xyXG4gIGNvbG9yOiAjRkZGOyB9XHJcbiAgYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6aG92ZXI6YmVmb3JlIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMzRTVDOUE7IH1cclxuXHJcbmEucHN3cF9fc2hhcmUtLXR3aXR0ZXI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICM1NUFDRUU7XHJcbiAgY29sb3I6ICNGRkY7IH1cclxuXHJcbmEucHN3cF9fc2hhcmUtLXBpbnRlcmVzdDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogI0NDQztcclxuICBjb2xvcjogI0NFMjcyRDsgfVxyXG5cclxuYS5wc3dwX19zaGFyZS0tZG93bmxvYWQ6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNEREQ7IH1cclxuXHJcbi8qXHJcblxyXG5cdDMuIEluZGV4IGluZGljYXRvciAoXCIxIG9mIFhcIiBjb3VudGVyKVxyXG5cclxuICovXHJcbi5wc3dwX19jb3VudGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgaGVpZ2h0OiA0NHB4O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBsaW5lLWhlaWdodDogNDRweDtcclxuICBjb2xvcjogI0ZGRjtcclxuICBvcGFjaXR5OiAwLjc1O1xyXG4gIHBhZGRpbmc6IDAgMTBweDsgfVxyXG5cclxuLypcclxuXHJcblx0NC4gQ2FwdGlvblxyXG5cclxuICovXHJcbi5wc3dwX19jYXB0aW9uIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICBib3R0b206IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLWhlaWdodDogNDRweDsgfVxyXG4gIC5wc3dwX19jYXB0aW9uIHNtYWxsIHtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIGNvbG9yOiAjQkJCOyB9XHJcblxyXG4ucHN3cF9fY2FwdGlvbl9fY2VudGVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWF4LXdpZHRoOiA0MjBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBsaW5lLWhlaWdodDogMjBweDtcclxuICBjb2xvcjogI0NDQzsgfVxyXG5cclxuLnBzd3BfX2NhcHRpb24tLWVtcHR5IHtcclxuICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4vKiBGYWtlIGNhcHRpb24gZWxlbWVudCwgdXNlZCB0byBjYWxjdWxhdGUgaGVpZ2h0IG9mIG5leHQvcHJldiBpbWFnZSAqL1xyXG4ucHN3cF9fY2FwdGlvbi0tZmFrZSB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XHJcblxyXG4vKlxyXG5cclxuXHQ1LiBMb2FkaW5nIGluZGljYXRvciAocHJlbG9hZGVyKVxyXG5cclxuXHRZb3UgY2FuIHBsYXkgd2l0aCBpdCBoZXJlIC0gaHR0cDovL2NvZGVwZW4uaW8vZGltc2VtZW5vdi9wZW4veXlCV29SXHJcblxyXG4gKi9cclxuLnBzd3BfX3ByZWxvYWRlciB7XHJcbiAgd2lkdGg6IDQ0cHg7XHJcbiAgaGVpZ2h0OiA0NHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogNTAlO1xyXG4gIG1hcmdpbi1sZWZ0OiAtMjJweDtcclxuICBvcGFjaXR5OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcclxuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XHJcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XHJcbiAgZGlyZWN0aW9uOiBsdHI7IH1cclxuXHJcbi5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIG1hcmdpbjogMTJweDsgfVxyXG5cclxuLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcclxuICBvcGFjaXR5OiAxOyB9XHJcbiAgLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XHJcbiAgICAvKiBXZSB1c2UgLmdpZiBpbiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgQ1NTIGFuaW1hdGlvbiAqL1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wcmVsb2FkZXIuZ2lmKSAwIDAgbm8tcmVwZWF0OyB9XHJcblxyXG4ucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUge1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgICAgICBhbmltYXRpb246IGNsb2Nrd2lzZSA1MDBtcyBsaW5lYXIgaW5maW5pdGU7IH1cclxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQge1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSkgaW5maW5pdGU7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbjogZG9udXQtcm90YXRlIDEwMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKSBpbmZpbml0ZTsgfVxyXG5cclxuLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIG9wYWNpdHk6IDAuNzU7XHJcbiAgd2lkdGg6IDE0cHg7XHJcbiAgaGVpZ2h0OiAxNHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxNXB4O1xyXG4gIHRvcDogMTVweDtcclxuICBtYXJnaW46IDA7IH1cclxuXHJcbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2N1dCB7XHJcbiAgLypcclxuXHRcdFx0VGhlIGlkZWEgb2YgYW5pbWF0aW5nIGlubmVyIGNpcmNsZSBpcyBiYXNlZCBvbiBQb2x5bWVyIChcIm1hdGVyaWFsXCIpIGxvYWRpbmcgaW5kaWNhdG9yXHJcblx0XHRcdCBieSBLZWFudSBMZWUgaHR0cHM6Ly9ibG9nLmtlYW51bGVlLmNvbS8yMDE0LzEwLzIwL3RoZS10YWxlLW9mLXRocmVlLXNwaW5uZXJzLmh0bWxcclxuXHRcdCovXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA3cHg7XHJcbiAgaGVpZ2h0OiAxNHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cclxuXHJcbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2RvbnV0IHtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxNHB4O1xyXG4gIGhlaWdodDogMTRweDtcclxuICBib3JkZXI6IDJweCBzb2xpZCAjRkZGO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgbWFyZ2luOiAwOyB9XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuICAucHN3cF9fcHJlbG9hZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XHJcblxyXG5Aa2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZG9udXQtcm90YXRlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTsgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxyXG5cclxuQGtleWZyYW1lcyBkb251dC1yb3RhdGUge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpOyB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XHJcblxyXG4vKlxyXG5cclxuXHQ2LiBBZGRpdGlvbmFsIHN0eWxlc1xyXG5cclxuICovXHJcbi8qIHJvb3QgZWxlbWVudCBvZiBVSSAqL1xyXG4ucHN3cF9fdWkge1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XHJcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICBvcGFjaXR5OiAxO1xyXG4gIHotaW5kZXg6IDE1NTA7IH1cclxuXHJcbi8qIHRvcCBibGFjayBiYXIgd2l0aCBidXR0b25zIGFuZCBcIjEgb2YgWFwiIGluZGljYXRvciAqL1xyXG4ucHN3cF9fdG9wLWJhciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIGhlaWdodDogNDRweDtcclxuICB3aWR0aDogMTAwJTsgfVxyXG5cclxuLnBzd3BfX2NhcHRpb24sXHJcbi5wc3dwX190b3AtYmFyLFxyXG4ucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxyXG4ucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfVxyXG5cclxuLyogcHN3cC0taGFzX21vdXNlIGNsYXNzIGlzIGFkZGVkIG9ubHkgd2hlbiB0d28gc3Vic2VxdWVudCBtb3VzZW1vdmUgZXZlbnRzIG9jY3VyICovXHJcbi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXHJcbi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XHJcblxyXG4ucHN3cF9fdG9wLWJhcixcclxuLnBzd3BfX2NhcHRpb24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxyXG5cclxuLyogcHN3cF9fdWktLWZpdCBjbGFzcyBpcyBhZGRlZCB3aGVuIG1haW4gaW1hZ2UgXCJmaXRzXCIgYmV0d2VlbiB0b3AgYmFyIGFuZCBib3R0b20gYmFyIChjYXB0aW9uKSAqL1xyXG4ucHN3cF9fdWktLWZpdCAucHN3cF9fdG9wLWJhcixcclxuLnBzd3BfX3VpLS1maXQgLnBzd3BfX2NhcHRpb24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsgfVxyXG5cclxuLyogcHN3cF9fdWktLWlkbGUgY2xhc3MgaXMgYWRkZWQgd2hlbiBtb3VzZSBpc24ndCBtb3ZpbmcgZm9yIHNldmVyYWwgc2Vjb25kcyAoSlMgb3B0aW9uIHRpbWVUb0lkbGUpICovXHJcbi5wc3dwX191aS0taWRsZSAucHN3cF9fdG9wLWJhciB7XHJcbiAgb3BhY2l0eTogMDsgfVxyXG5cclxuLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxyXG4ucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcclxuICBvcGFjaXR5OiAwOyB9XHJcblxyXG4vKlxyXG5cdHBzd3BfX3VpLS1oaWRkZW4gY2xhc3MgaXMgYWRkZWQgd2hlbiBjb250cm9scyBhcmUgaGlkZGVuXHJcblx0ZS5nLiB3aGVuIHVzZXIgdGFwcyB0byB0b2dnbGUgdmlzaWJpbGl0eSBvZiBjb250cm9sc1xyXG4qL1xyXG4ucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fdG9wLWJhcixcclxuLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2NhcHRpb24sXHJcbi5wc3dwX191aS0taGlkZGVuIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxyXG4ucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xyXG4gIC8qIEZvcmNlIHBhaW50ICYgY3JlYXRlIGNvbXBvc2l0aW9uIGxheWVyIGZvciBjb250cm9scy4gKi9cclxuICBvcGFjaXR5OiAwLjAwMTsgfVxyXG5cclxuLyogcHN3cF9fdWktLW9uZS1zbGlkZSBjbGFzcyBpcyBhZGRlZCB3aGVuIHRoZXJlIGlzIGp1c3Qgb25lIGl0ZW0gaW4gZ2FsbGVyeSAqL1xyXG4ucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcclxuLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0LFxyXG4ucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fY291bnRlciB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLnBzd3BfX2VsZW1lbnQtLWRpc2FibGVkIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbi5wc3dwLS1taW5pbWFsLS1kYXJrIC5wc3dwX190b3AtYmFyIHtcclxuICBiYWNrZ3JvdW5kOiBub25lOyB9XHJcbiIsIi8qISBQaG90b1N3aXBlIG1haW4gQ1NTIGJ5IERtaXRyeSBTZW1lbm92IHwgcGhvdG9zd2lwZS5jb20gfCBNSVQgbGljZW5zZSAqL1xyXG4vKlxyXG5cdFN0eWxlcyBmb3IgYmFzaWMgUGhvdG9Td2lwZSBmdW5jdGlvbmFsaXR5IChzbGlkaW5nIGFyZWEsIG9wZW4vY2xvc2UgdHJhbnNpdGlvbnMpXHJcbiovXHJcbi8qIHBzd3AgPSBwaG90b3N3aXBlICovXHJcbi5wc3dwIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xyXG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcclxuICB6LWluZGV4OiAxNTAwO1xyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxuICAvKiBjcmVhdGUgc2VwYXJhdGUgbGF5ZXIsIHRvIGF2b2lkIHBhaW50IG9uIHdpbmRvdy5vbnNjcm9sbCBpbiB3ZWJraXQvYmxpbmsgKi9cclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBvdXRsaW5lOiBub25lOyB9XHJcbiAgLnBzd3AgKiB7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cclxuICAucHN3cCBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiBub25lOyB9XHJcblxyXG4vKiBzdHlsZSBpcyBhZGRlZCB3aGVuIEpTIG9wdGlvbiBzaG93SGlkZU9wYWNpdHkgaXMgc2V0IHRvIHRydWUgKi9cclxuLnBzd3AtLWFuaW1hdGVfb3BhY2l0eSB7XHJcbiAgLyogMC4wMDEsIGJlY2F1c2Ugb3BhY2l0eTowIGRvZXNuJ3QgdHJpZ2dlciBQYWludCBhY3Rpb24sIHdoaWNoIGNhdXNlcyBsYWcgYXQgc3RhcnQgb2YgdHJhbnNpdGlvbiAqL1xyXG4gIG9wYWNpdHk6IDAuMDAxO1xyXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xyXG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cclxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XHJcblxyXG4ucHN3cC0tb3BlbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcbi5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2ltZyB7XHJcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cclxuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcclxuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcclxuICBjdXJzb3I6IHpvb20taW47IH1cclxuXHJcbi5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2ltZyB7XHJcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cclxuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcclxuICBjdXJzb3I6IC1tb3otZ3JhYjtcclxuICBjdXJzb3I6IGdyYWI7IH1cclxuXHJcbi5wc3dwLS1kcmFnZ2luZyAucHN3cF9faW1nIHtcclxuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xyXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcclxuICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XHJcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxyXG5cclxuLypcclxuXHRCYWNrZ3JvdW5kIGlzIGFkZGVkIGFzIGEgc2VwYXJhdGUgZWxlbWVudC5cclxuXHRBcyBhbmltYXRpbmcgb3BhY2l0eSBpcyBtdWNoIGZhc3RlciB0aGFuIGFuaW1hdGluZyByZ2JhKCkgYmFja2dyb3VuZC1jb2xvci5cclxuKi9cclxuLnBzd3BfX2JnIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6ICMwMDA7XHJcbiAgb3BhY2l0eTogMDtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxyXG5cclxuLnBzd3BfX3Njcm9sbC13cmFwIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cclxuXHJcbi5wc3dwX19jb250YWluZXIsXHJcbi5wc3dwX196b29tLXdyYXAge1xyXG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XHJcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7IH1cclxuXHJcbi8qIFByZXZlbnQgc2VsZWN0aW9uIGFuZCB0YXAgaGlnaGxpZ2h0cyAqL1xyXG4ucHN3cF9fY29udGFpbmVyLFxyXG4ucHN3cF9faW1nIHtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxyXG5cclxuLnBzd3BfX3pvb20td3JhcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XHJcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xyXG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cclxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XHJcblxyXG4ucHN3cF9fYmcge1xyXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xyXG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cclxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XHJcblxyXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX2JnLFxyXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xyXG4gIHRyYW5zaXRpb246IG5vbmU7IH1cclxuXHJcbi5wc3dwX19jb250YWluZXIsXHJcbi5wc3dwX196b29tLXdyYXAge1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XHJcblxyXG4ucHN3cF9faXRlbSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG4ucHN3cF9faW1nIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwOyB9XHJcblxyXG4vKlxyXG5cdHN0cmV0Y2hlZCB0aHVtYm5haWwgb3IgZGl2IHBsYWNlaG9sZGVyIGVsZW1lbnQgKHNlZSBiZWxvdylcclxuXHRzdHlsZSBpcyBhZGRlZCB0byBhdm9pZCBmbGlja2VyaW5nIGluIHdlYmtpdC9ibGluayB3aGVuIGxheWVycyBvdmVybGFwXHJcbiovXHJcbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyIHtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxyXG5cclxuLypcclxuXHRkaXYgZWxlbWVudCB0aGF0IG1hdGNoZXMgc2l6ZSBvZiBsYXJnZSBpbWFnZVxyXG5cdGxhcmdlIGltYWdlIGxvYWRzIG9uIHRvcCBvZiBpdFxyXG4qL1xyXG4ucHN3cF9faW1nLS1wbGFjZWhvbGRlci0tYmxhbmsge1xyXG4gIGJhY2tncm91bmQ6ICMyMjI7IH1cclxuXHJcbi5wc3dwLS1pZSAucHN3cF9faW1nIHtcclxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwOyB9XHJcblxyXG4vKlxyXG5cdEVycm9yIG1lc3NhZ2UgYXBwZWFycyB3aGVuIGltYWdlIGlzIG5vdCBsb2FkZWRcclxuXHQoSlMgb3B0aW9uIGVycm9yTXNnIGNvbnRyb2xzIG1hcmt1cClcclxuKi9cclxuLnBzd3BfX2Vycm9yLW1zZyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiA1MCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBsaW5lLWhlaWdodDogMTZweDtcclxuICBtYXJnaW4tdG9wOiAtOHB4O1xyXG4gIGNvbG9yOiAjQ0NDOyB9XHJcblxyXG4ucHN3cF9fZXJyb3ItbXNnIGEge1xyXG4gIGNvbG9yOiAjQ0NDO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XHJcbiIsIlxuLyogZm9udC1mYW1pbHk6IFwiU2Vnb2VVSVJlZ3VsYXJcIjsgKi9cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNlZ29lVUlSZWd1bGFyXCI7XG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9TZWdvZVVJUmVndWxhci9TZWdvZVVJUmVndWxhci5lb3RcIik7XG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9TZWdvZVVJUmVndWxhci9TZWdvZVVJUmVndWxhci5lb3Q/I2llZml4XCIpZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgdXJsKFwiLi4vZm9udHMvU2Vnb2VVSVJlZ3VsYXIvU2Vnb2VVSVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHVybChcIi4uL2ZvbnRzL1NlZ29lVUlSZWd1bGFyL1NlZ29lVUlSZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi8qIGZvbnQtZmFtaWx5OiBcIlNlZ29lVUlCb2xkXCI7ICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJTZWdvZVVJQm9sZFwiO1xuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUJvbGQvU2Vnb2VVSUJvbGQuZW90XCIpO1xuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvU2Vnb2VVSUJvbGQvU2Vnb2VVSUJvbGQuZW90PyNpZWZpeFwiKWZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHVybChcIi4uL2ZvbnRzL1NlZ29lVUlCb2xkL1NlZ29lVUlCb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICB1cmwoXCIuLi9mb250cy9TZWdvZVVJQm9sZC9TZWdvZVVJQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi8qIGZvbnQtZmFtaWx5OiBcIlNlZ29lVUlMaWdodFwiOyAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiU2Vnb2VVSUxpZ2h0XCI7XG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9TZWdvZVVJTGlnaHQvU2Vnb2VVSUxpZ2h0LmVvdFwiKTtcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1NlZ29lVUlMaWdodC9TZWdvZVVJTGlnaHQuZW90PyNpZWZpeFwiKWZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHVybChcIi4uL2ZvbnRzL1NlZ29lVUlMaWdodC9TZWdvZVVJTGlnaHQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHVybChcIi4uL2ZvbnRzL1NlZ29lVUlMaWdodC9TZWdvZVVJTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5cblxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ3JhbGV3YXlsaWdodCc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL3JhbGV3YXktbGlnaHQtd2ViZm9udC5lb3QnKTtcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3JhbGV3YXktbGlnaHQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvcmFsZXdheS1saWdodC13ZWJmb250LnN2ZyNyYWxld2F5bGlnaHQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59XG5cblxuLyogVGhpcyBzdHlsZXNoZWV0IGdlbmVyYXRlZCBieSBUcmFuc2ZvbnRlciAoaHR0cHM6Ly90cmFuc2ZvbnRlci5vcmcpIG9uIEp1bHkgMywgMjAxNyA5OjUyIEFNICovXG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnRnV0dXJhIFBUIERlbWknO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtRGVtaS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1EZW1pLnN2ZyNGdXR1cmFQVC1EZW1pJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQnO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1NZWRpdW0uZW90Jyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULU1lZGl1bS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtTWVkaXVtLnN2ZyNGdXR1cmFQVC1NZWRpdW0nKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBMaWdodCc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUxpZ2h0LmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1MaWdodC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvRnV0dXJhUFQvRnV0dXJhUFQtTGlnaHQuc3ZnI0Z1dHVyYVBULUxpZ2h0JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgQm9vayc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2suZW90Jyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2suZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9GdXR1cmFQVC9GdXR1cmFQVC1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2sud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2sudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0Z1dHVyYVBUL0Z1dHVyYVBULUJvb2suc3ZnI0Z1dHVyYVBULUJvb2snKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufSIsImh0bWwsIGJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbmJvZHksICosICo6YWZ0ZXIsKjpiZWZvcmV7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxufVxuXG5hIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBtZWRpYU1heFdpZHRoKCR3KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkdykge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbiAgfVxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7XG4gIH1cbiAgNjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCk7XG4gIH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG5cbkBrZXlmcmFtZXMgZG93blVwIHtcbiAgICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gIH1cblxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuIiwiLmhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmb250LWZhbWlseTogJ0Z1dHVyYSBQVCBMaWdodCc7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBib3JkZXItYm90dG9tOiAxLjVweCBzb2xpZCBvcmFuZ2U7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgcGFkZGluZzogMTBweCAwO1xyXG4gICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDUwMHB4KSB7XHJcbiAgICAgIH1cclxufVxyXG5cclxuLmNvbnRhY3RzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICdGdXR1cmEgUFQgYm9vayc7XHJcblxyXG4gICAgJl9fYm94IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgZGlzcGxheTpmbGV4O1xyXG4gICAgICAgIG1hcmdpbjogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgICZfX2xpbmsge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcclxuICAgICAgICBoZWlnaHQ6IDM4cHg7XHJcbiAgICAgICAgd2lkdGg6IDM4cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgJjpob3ZlciB7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICZfdGVsIHtcclxuICAgICAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgY29udGVudDogJzY3NSAzNzEgOTg3ICgrV2hhdHNBcHApJztcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBjb2xvcjogIzc3NztcclxuICAgICAgICAgICAgdG9wOiAtMjNweDtcclxuICAgICAgICAgICAgcmlnaHQ6IC0xMjBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZfdmsge1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmX3NreXBlIHtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogJ0BieXBhYmxvLmVzdHVkaW8nO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgICAgICAgICB0b3A6IC0yM3B4O1xyXG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJl9mYiB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJl9lbWFpbCB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgY29udGVudDogJ3Bob3RvQGJ5cGFibG8ucnUnO1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBjb2xvcjogIzc3NztcclxuICAgICAgICAgICAgICB0b3A6IC0yM3B4O1xyXG4gICAgICAgICAgICAgIGxlZnQ6IC0yNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNvbG9yU3dpdGhlciB7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC1zaXplOiAxcmVtO1xyXG4gIHdpZHRoOiAxMjVweDtcclxuICAgIEBpbmNsdWRlIG1lZGlhTWF4V2lkdGgoNzAwcHgpIHtcclxuXHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYU1heFdpZHRoKDYyMHB4KSB7XHJcbiAgICAgIHdpZHRoOiAxNDVweDtcclxuICAgICAgb3JkZXI6IC0xO1xyXG4gICAgfVxyXG4gICYtd2hpdGUge1xyXG4gICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgfVxyXG4gICB9XHJcbiAgJi1vciB7XHJcbiAgICBwYWRkaW5nOiAwIDJweDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgfVxyXG4gICYtYmxhY2sge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiKDMwLDMwLDMwKTtcclxuICAgICAgfVxyXG4gICB9XHJcbn1cclxuXHJcbi8vIC5lbiA6bGFuZyhydSksXHJcbi8vIC5lbiA6bGFuZyhlcyksXHJcbi8vIC5lcyA6bGFuZyhydSksXHJcbi8vIC5lcyA6bGFuZyhlbiksXHJcbi8vIC5ydSA6bGFuZyhlbiksXHJcbi8vIC5ydSA6bGFuZyhlcykge1xyXG4vLyAgICAgZGlzcGxheTogbm9uZTtcclxuLy8gfVxyXG5cclxuLy8gLmVuICpbbGFuZz1ydV0sXHJcbi8vIC5lbiAqW2xhbmc9ZXNdLFxyXG4vLyAucnUgKltsYW5nPWVuXSxcclxuLy8gLnJ1ICpbbGFuZz1lc10sXHJcbi8vIC5lcyAqW2xhbmc9cnVdLFxyXG4vLyAuZXMgKltsYW5nPWVuXSB7XHJcbi8vICAgICBkaXNwbGF5OiBub25lO1xyXG4vLyB9XHJcblxyXG4uZW4gKltsYW5nPXJ1XSxcclxuLmVuICpbbGFuZz1lc10sXHJcbi5lbiAqW2xhbmc9Y2F0XSxcclxuLmNhdCAqW2xhbmc9ZW5dLFxyXG4uY2F0ICpbbGFuZz1lc10sXHJcbi5jYXQgKltsYW5nPXJ1XSxcclxuLnJ1ICpbbGFuZz1lbl0sXHJcbi5ydSAqW2xhbmc9ZXNdLFxyXG4ucnUgKltsYW5nPWNhdF0sXHJcbi5lcyAqW2xhbmc9cnVdLFxyXG4uZXMgKltsYW5nPWNhdF0sXHJcbi5lcyAqW2xhbmc9ZW5dIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbiAgICAgIC8qINCh0LrRgNGL0LLQsNC10LwgXCLQvdC1INGC0L7RglwiINGP0LfRi9C6ICovXHJcbi5lbiAucnUgLmVzLCAuZW4gLmVzIC5ydSwgLmVzIC5ydSAuZW4sIC5lcyAuZW4gLnJ1LFxyXG4ucnUgLmVuIC5lcywgLnJ1IC5lcyAuZW4ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5sYW5ndWFnZSB7XHJcbiAgd2lkdGg6IDEyNXB4O1xyXG4gICAgQGluY2x1ZGUgbWVkaWFNYXhXaWR0aCg3NzBweCkge1xyXG4gICAgICBvcmRlcjogLTI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiDQn9C10YDQtdC60LvRjtGH0LDRgtC10LvQuCDRj9C30YvQutCwICovXHJcbi5sYW5nLXN3aXRjaGVyIHtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBmb250LWZhbWlseTogJ1NlZ29lVUlMaWdodCc7XHJcbiAgZm9udC1zaXplOiAxcmVtO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHdpZHRoOiAyNXB4O1xyXG5cclxufVxyXG5cclxuXHJcbi5sYW5nLXN3aXRjaGVyOmhvdmVyIHtcclxuICBjb2xvcjogb3JhbmdlO1xyXG59XHJcblxyXG4gIC8qINCS0YvQtNC10LvRj9C10Lwg0LDQutGC0LjQstC90YPRjiDQv9C10YDQtdC60LvRjtGH0LDQu9C60YMg0YLQvtC20LUg0YEg0L/QvtC80L7RidGM0Y4g0LrQu9Cw0YHRgdC+0LIg0YDQvtC00LjRgtC10LvRjyAqL1xyXG4uZW4gLmxhbmctc3dpdGNoZXItLWVuLCAuY2F0IC5sYW5nLXN3aXRjaGVyLS1jYXQsIC5lcyAubGFuZy1zd2l0Y2hlci0tZXMsXHJcbi5ydSAubGFuZy1zd2l0Y2hlci0tcnUge1xyXG4gIGNvbG9yOiBvcmFuZ2U7XHJcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuLnByaWNlIHtcclxuICAgZGlzcGxheTogYmxvY2s7IC8qINGB0LzQtdGJ0LDQtdGCINGC0L7Qu9GM0LrQviDQsdC70L7QutC4ICovXHJcbiAgLy8gbWFyZ2luLWxlZnQ6IGF1dG87XHJcbi8vIGZsb2F0OiByaWdodDtcclxuLy8gYm90dG9tOiA1JTtcclxuLy8gcmlnaHQ6IDA7XHJcblxyXG5iYWNrZ3JvdW5kOiBvcmFuZ2UgO1xyXG5ib3JkZXItcmFkaXVzOiAxMDBweDtcclxuXHJcblxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
