.wrapper {
  position: relative;
  max-width: 1200px;
  margin: auto; }

.wrapper-lg {
  position: relative;
  width: 100%;
  margin: auto; }

.content-form .wrapper {
  width: 90%; }

/*
 * Line colors for MultiSites
 */
.include-line--blue:after {
  display: block;
  width: 150px;
  height: 7px;
  margin: 30px 0;
  background: #019ddd;
  content: ''; }

.include-line--green:after {
  display: block;
  width: 150px;
  height: 7px;
  margin: 30px 0;
  background: #1ba59a;
  content: ''; }

.include-line--darkgreen:after {
  display: block;
  width: 150px;
  height: 7px;
  margin: 30px 0;
  background: #005f69;
  content: ''; }

/*
 * Menu background colors
 */
.menu-color--blue {
  background: #019ddd; }

.menu-color--green {
  background: #1ba59a; }

.menu-color--darkgreen {
  background: #1ba59a; }

/*
 * Standard buttons
 */
.button--blue {
  background: #019ddd; }

.button--green {
  background: #1ba59a; }
  .button--green .slideshow__title {
    color: #fff; }

.button--darkgreen {
  background: #005f69; }
  .button--darkgreen .slideshow__title {
    color: #fff; }

.button-alt--blue {
  border: 2px solid #019ddd;
  color: #019ddd; }
  .button-alt--blue:hover {
    background: #019ddd;
    color: #fff; }

.button-alt--green {
  border: 2px solid #1ba59a;
  color: #1ba59a; }
  .button-alt--green:hover {
    background: #1ba59a;
    color: #fff; }

.button-alt--darkgreen {
  border: 2px solid #005f69;
  color: #005f69; }
  .button-alt--darkgreen:hover {
    background: #005f69;
    color: #fff; }

/*
 * Appointment buttons
 */
.appointment-button--blue {
  background: linear-gradient(180deg, #019ddd 0%, #0093cf 100%); }

.appointment-button--green {
  background: linear-gradient(180deg, #1ba59a 0%, #129288 100%); }

.appointment-button--darkgreen {
  background: linear-gradient(180deg, #005f69 0%, #004e56 100%); }

/*
 * Treatment teaser items
 */
.include-listitem--blue::before {
  display: inline-block;
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 3px;
  transition: width 280ms 280ms;
  background-color: #019ddd;
  content: ''; }

.include-listitem--blue::after {
  display: inline-block;
  position: absolute;
  right: -6px;
  bottom: -5.5px;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 1ms;
  transition: transform 280ms 1ms;
  transition: transform 280ms 1ms, -webkit-transform 280ms 1ms;
  border-width: 4.5px 0 4.5px 6px;
  border-style: solid;
  border-color: transparent transparent transparent #019ddd;
  content: ''; }

.include-listitem--blue:hover::before {
  width: 100%;
  transition: width 280ms 1ms; }

.include-listitem--blue:hover::after {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 280ms;
  transition: transform 280ms 280ms;
  transition: transform 280ms 280ms, -webkit-transform 280ms 280ms; }

.include-listitem--blue.is-active::before {
  width: 100%;
  transition: width 280ms 1ms; }

.include-listitem--blue.is-active::after {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 280ms;
  transition: transform 280ms 280ms;
  transition: transform 280ms 280ms, -webkit-transform 280ms 280ms; }

.include-listitem--green::before {
  display: inline-block;
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 3px;
  transition: width 280ms 280ms;
  background-color: #1ba59a;
  content: ''; }

.include-listitem--green::after {
  display: inline-block;
  position: absolute;
  right: -6px;
  bottom: -5.5px;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 1ms;
  transition: transform 280ms 1ms;
  transition: transform 280ms 1ms, -webkit-transform 280ms 1ms;
  border-width: 4.5px 0 4.5px 6px;
  border-style: solid;
  border-color: transparent transparent transparent #1ba59a;
  content: ''; }

.include-listitem--green:hover::before {
  width: 100%;
  transition: width 280ms 1ms; }

.include-listitem--green:hover::after {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 280ms;
  transition: transform 280ms 280ms;
  transition: transform 280ms 280ms, -webkit-transform 280ms 280ms; }

.include-listitem--green.is-active::before {
  width: 100%;
  transition: width 280ms 1ms; }

.include-listitem--green.is-active::after {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 280ms;
  transition: transform 280ms 280ms;
  transition: transform 280ms 280ms, -webkit-transform 280ms 280ms; }

.include-listitem--darkgreen::before {
  display: inline-block;
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 3px;
  transition: width 280ms 280ms;
  background-color: #005f69;
  content: ''; }

.include-listitem--darkgreen::after {
  display: inline-block;
  position: absolute;
  right: -6px;
  bottom: -5.5px;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 1ms;
  transition: transform 280ms 1ms;
  transition: transform 280ms 1ms, -webkit-transform 280ms 1ms;
  border-width: 4.5px 0 4.5px 6px;
  border-style: solid;
  border-color: transparent transparent transparent #005f69;
  content: ''; }

.include-listitem--darkgreen:hover::before {
  width: 100%;
  transition: width 280ms 1ms; }

.include-listitem--darkgreen:hover::after {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 280ms;
  transition: transform 280ms 280ms;
  transition: transform 280ms 280ms, -webkit-transform 280ms 280ms; }

.include-listitem--darkgreen.is-active::before {
  width: 100%;
  transition: width 280ms 1ms; }

.include-listitem--darkgreen.is-active::after {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition: -webkit-transform 280ms 280ms;
  transition: transform 280ms 280ms;
  transition: transform 280ms 280ms, -webkit-transform 280ms 280ms; }

/*
 * Link colors
 */
.color--blue {
  color: #019ddd; }

.color--green {
  color: #1ba59a; }

.color--darkgreen {
  color: #005f69; }

/*
 * Team overlay hovers
 */
.opacity--blue {
  background: rgba(1, 157, 221, 0.6); }

.opacity--green {
  background: rgba(27, 165, 154, 0.6); }

.opacity--darkgreen {
  background: rgba(0, 95, 105, 0.6); }

/*
 * Menu item hovers
 */
.menu-item-hover--blue {
  position: relative; }
  .menu-item-hover--blue:after {
    display: inline-block;
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 4px;
    transition: opacity 140ms;
    background-color: #019ddd;
    content: '';
    opacity: 0; }
  .menu-item-hover--blue:hover:after {
    opacity: 1; }

.menu-item-hover--green {
  position: relative; }
  .menu-item-hover--green:after {
    display: inline-block;
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 4px;
    transition: opacity 140ms;
    background-color: #1ba59a;
    content: '';
    opacity: 0; }
  .menu-item-hover--green:hover:after {
    opacity: 1; }

.menu-item-hover--darkgreen {
  position: relative; }
  .menu-item-hover--darkgreen:after {
    display: inline-block;
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 4px;
    transition: opacity 140ms;
    background-color: #005f69;
    content: '';
    opacity: 0; }
  .menu-item-hover--darkgreen:hover:after {
    opacity: 1; }

.form-line--blue::after {
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 70px;
  height: 6px;
  transition: width 140ms;
  background-color: #019ddd;
  content: ''; }

.form-line--blue.is-active {
  opacity: 1; }
  .form-line--blue.is-active::after {
    width: 150px; }

.form-line--green::after {
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 70px;
  height: 6px;
  transition: width 140ms;
  background-color: #1ba59a;
  content: ''; }

.form-line--green.is-active {
  opacity: 1; }
  .form-line--green.is-active::after {
    width: 150px; }

.form-line--darkgreen::after {
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 70px;
  height: 6px;
  transition: width 140ms;
  background-color: #005f69;
  content: ''; }

.form-line--darkgreen.is-active {
  opacity: 1; }
  .form-line--darkgreen.is-active::after {
    width: 150px; }

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block; }

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */ }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none; }

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none; }

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto; }

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none; }

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none; }

/*
 *  Owl Carousel - Core
 */
.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1; }
  .owl-carousel .owl-stage {
    position: relative;
    touch-action: manipulation;
    -moz-backface-visibility: hidden;
    /* fix firefox animation glitch */ }
  .owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0; }
  .owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    /* fix for flashing background */
    -webkit-transform: translate3d(0px, 0px, 0px); }
  .owl-carousel .owl-wrapper,
  .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0); }
  .owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none; }
  .owl-carousel .owl-item img {
    display: block;
    width: 100%; }
  .owl-carousel .owl-nav.disabled,
  .owl-carousel .owl-dots.disabled {
    display: none; }
  .owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-dot {
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel .owl-nav button.owl-prev,
  .owl-carousel .owl-nav button.owl-next,
  .owl-carousel button.owl-dot {
    background: none;
    color: inherit;
    border: none;
    padding: 0 !important;
    font: inherit; }
  .owl-carousel.owl-loaded {
    display: block; }
  .owl-carousel.owl-loading {
    opacity: 0;
    display: block; }
  .owl-carousel.owl-hidden {
    opacity: 0; }
  .owl-carousel.owl-refresh .owl-item {
    visibility: hidden; }
  .owl-carousel.owl-drag .owl-item {
    touch-action: pan-y;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    cursor: -webkit-grab;
    cursor: grab; }
  .owl-carousel.owl-rtl {
    direction: rtl; }
  .owl-carousel.owl-rtl .owl-item {
    float: right; }

/* No Js */
.no-js .owl-carousel {
  display: block; }

/*
 *  Owl Carousel - Animate Plugin
 */
.owl-carousel .animated {
  -webkit-animation-duration: 1000ms;
          animation-duration: 1000ms;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.owl-carousel .owl-animated-in {
  z-index: 0; }

.owl-carousel .owl-animated-out {
  z-index: 1; }

.owl-carousel .fadeOut {
  -webkit-animation-name: fadeOut;
          animation-name: fadeOut; }

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

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

/*
 * 	Owl Carousel - Auto Height Plugin
 */
.owl-height {
  transition: height 500ms ease-in-out; }

/*
 * 	Owl Carousel - Lazy Load Plugin
 */
.owl-carousel .owl-item {
  /**
			This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
			calculation of the height of the owl-item that breaks page layouts
		 */ }
  .owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition: opacity 400ms ease; }
  .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
    max-height: 0; }
  .owl-carousel .owl-item img.owl-lazy {
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d; }

/*
 * 	Owl Carousel - Video Plugin
 */
.owl-carousel .owl-video-wrapper {
  position: relative;
  height: 100%;
  background: #000; }

.owl-carousel .owl-video-play-icon {
  position: absolute;
  height: 80px;
  width: 80px;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: url("owl.video.play.png") no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  transition: -webkit-transform 100ms ease;
  transition: transform 100ms ease;
  transition: transform 100ms ease, -webkit-transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  -webkit-transform: scale(1.3, 1.3);
          transform: scale(1.3, 1.3); }

.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
  display: none; }

.owl-carousel .owl-video-tn {
  opacity: 0;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 400ms ease; }

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1;
  height: 100%;
  width: 100%; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * Remove margin and padding from every selector including their
 * psuedo selectors.
 *
 * 1. More sensible default box sizing.
 *    (css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice).
 */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
  /* 1 */ }

/**
 * Set height of the document to maxium viewport height.
 *
 * 1. Set root font size to 10.
 */
html {
  height: 100vh;
  font-size: 62.5%;
  /* 1 */
  box-sizing: border-box; }

/**
 * Set minimal height of the body to maximum viewport height to
 * match the document's height.
 *
 * 1. Firefox 25+.
 * 2. Chrome 5+.
 */
body {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2em;
  min-height: 100vh;
  background-color: #fff;
  color: #455462;
  font-family: "Source Sans Pro";
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  /* 1 */
  -webkit-font-smoothing: antialiased;
  /* 2 */ }

/* ==========================================================================
   Reset
   ========================================================================== */
/**
 * Custom user agent resets and overrides that are not present in
 * Normalize 8.0.0. This mostly removes some annoying margin and padding
 * defaults, border radius, and outlines.
 */
a {
  color: inherit;
  text-decoration: none; }

/**
 * 1. Remove border radius on Chrome 62.0+ on macOS.
 */
button {
  border: 0;
  border-radius: 0;
  /* 1 */
  outline: none;
  background: none;
  cursor: pointer; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

figure {
  margin: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit; }

hr {
  margin: 0;
  padding: 0; }

/**
 * 1. Remove white space.
 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  /* 1 */ }

/**
 * 1. Remove inherited user agent appearance.
 */
input,
select,
textarea {
  max-width: 100%;
  border: 0;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  /* 1 */ }

/**
 * 1. Only allow vertical resizing to prevent the textarea
 *    from overflowing the container.
 */
textarea {
  resize: vertical; }

ul,
ol {
  margin: 0;
  padding: 0;
  list-style-type: none; }

p {
  margin: 0; }

/**
 * 1. Collapse borders to prevent double sided borders.
 */
table {
  max-width: 100%;
  border-collapse: collapse;
  /* 1 */ }

strong {
  font-weight: 700; }

/* ==========================================================================
   Container
   ========================================================================== */
/**
 * The container object centers an element in the document.
 */
.container {
  max-width: calc(1024px + 50.66667px);
  padding: 0 25.33333px;
  width: 100%;
  margin: 0 auto; }

/* ==========================================================================
   Content Constraint
   ========================================================================== */
/**
 * The content constraint is a constraint for all the content within
 * the document. It can be manipulated by CSS or JavaScript without
 * influencing the body.
 */
.content-constraint {
  position: relative;
  min-height: 100vh;
  margin-top: 100px; }

/* ==========================================================================
   Flex
   ========================================================================== */
/**
 * Example of a flex based column grid layout in practice:
 *
 * <div class="row">
 *   <div class="col col-xs-6 col-sm-12"></div>
 *   <div class="col col-xs-6 col-sm-12"></div>
 * </div>
 *
 * This example will create a row with two columns each filling half the width
 * of the row on all media, but will convert to a full width column on the
 * small `-sm` breakpoint alias, which is mobile only. Refer to
 * `settings/_definitions.scss` for all breakpoint alias.
 */
/**
 * Flex object.
 *
 * Tip: Use flex on a column to make the box the same height as the column.
 */
.flex {
  display: flex; }

/**
 * Flex object with a column based layout system.
 */
.row {
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap;
  margin: 0 -12.66667px; }

/**
 * Box, the inside of a column.
 */
.box {
  flex: 1; }

/**
       * Column 1 for the `xs` breakpoint.
       */
.col-xs-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `xs` breakpoint.
         */
.offset-xs-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `xs` breakpoint.
       */
.col-xs-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `xs` breakpoint.
         */
.offset-xs-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `xs` breakpoint.
       */
.col-xs-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `xs` breakpoint.
         */
.offset-xs-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `xs` breakpoint.
       */
.col-xs-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `xs` breakpoint.
         */
.offset-xs-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `xs` breakpoint.
       */
.col-xs-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `xs` breakpoint.
         */
.offset-xs-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `xs` breakpoint.
       */
.col-xs-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `xs` breakpoint.
         */
.offset-xs-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `xs` breakpoint.
       */
.col-xs-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `xs` breakpoint.
         */
.offset-xs-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `xs` breakpoint.
       */
.col-xs-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `xs` breakpoint.
         */
.offset-xs-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `xs` breakpoint.
       */
.col-xs-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `xs` breakpoint.
         */
.offset-xs-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `xs` breakpoint.
       */
.col-xs-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `xs` breakpoint.
         */
.offset-xs-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `xs` breakpoint.
       */
.col-xs-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `xs` breakpoint.
         */
.offset-xs-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `xs` breakpoint.
       */
.col-xs-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the xs breakpoint.
       */
.align-xs-stretch {
  align-items: stretch; }

/**
       * Align `center` for the xs breakpoint.
       */
.align-xs-center {
  align-items: center; }

/**
       * Align `flex-start` for the xs breakpoint.
       */
.align-xs-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the xs breakpoint.
       */
.align-xs-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the xs breakpoint.
       */
.align-xs-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the xs breakpoint.
       */
.justify-xs-start {
  justify-content: start; }

/**
       * Justify `center` for the xs breakpoint.
       */
.justify-xs-center {
  justify-content: center; }

/**
       * Justify `space-between` for the xs breakpoint.
       */
.justify-xs-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the xs breakpoint.
       */
.justify-xs-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the xs breakpoint.
       */
.justify-xs-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the xs breakpoint.
       */
.bleed-xs-left {
  padding-left: 0; }

/**
       * Bleed right for the xs breakpoint.
       */
.bleed-xs-right {
  padding-right: 0; }

/**
     * Order first for the `xs` breakpoint.
     */
.first-xs {
  order: -1; }

/**
     * Order last for the `xs` breakpoint.
     */
.last-xs {
  order: 1; }

/**
     * Reverse order for the `xs` breakpoint.
     */
.reverse-xs {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `sm` breakpoint.
       */
.col-sm-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `sm` breakpoint.
         */
.offset-sm-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `sm` breakpoint.
       */
.col-sm-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `sm` breakpoint.
         */
.offset-sm-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `sm` breakpoint.
       */
.col-sm-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `sm` breakpoint.
         */
.offset-sm-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `sm` breakpoint.
       */
.col-sm-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `sm` breakpoint.
         */
.offset-sm-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `sm` breakpoint.
       */
.col-sm-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `sm` breakpoint.
         */
.offset-sm-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `sm` breakpoint.
       */
.col-sm-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `sm` breakpoint.
         */
.offset-sm-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `sm` breakpoint.
       */
.col-sm-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `sm` breakpoint.
         */
.offset-sm-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `sm` breakpoint.
       */
.col-sm-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `sm` breakpoint.
         */
.offset-sm-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `sm` breakpoint.
       */
.col-sm-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `sm` breakpoint.
         */
.offset-sm-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `sm` breakpoint.
       */
.col-sm-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `sm` breakpoint.
         */
.offset-sm-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `sm` breakpoint.
       */
.col-sm-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `sm` breakpoint.
         */
.offset-sm-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `sm` breakpoint.
       */
.col-sm-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the sm breakpoint.
       */
.align-sm-stretch {
  align-items: stretch; }

/**
       * Align `center` for the sm breakpoint.
       */
.align-sm-center {
  align-items: center; }

/**
       * Align `flex-start` for the sm breakpoint.
       */
.align-sm-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the sm breakpoint.
       */
.align-sm-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the sm breakpoint.
       */
.align-sm-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the sm breakpoint.
       */
.justify-sm-start {
  justify-content: start; }

/**
       * Justify `center` for the sm breakpoint.
       */
.justify-sm-center {
  justify-content: center; }

/**
       * Justify `space-between` for the sm breakpoint.
       */
.justify-sm-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the sm breakpoint.
       */
.justify-sm-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the sm breakpoint.
       */
.justify-sm-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the sm breakpoint.
       */
.bleed-sm-left {
  padding-left: 0; }

/**
       * Bleed right for the sm breakpoint.
       */
.bleed-sm-right {
  padding-right: 0; }

/**
     * Order first for the `sm` breakpoint.
     */
.first-sm {
  order: -1; }

/**
     * Order last for the `sm` breakpoint.
     */
.last-sm {
  order: 1; }

/**
     * Reverse order for the `sm` breakpoint.
     */
.reverse-sm {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `md` breakpoint.
       */
.col-md-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `md` breakpoint.
         */
.offset-md-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `md` breakpoint.
       */
.col-md-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `md` breakpoint.
         */
.offset-md-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `md` breakpoint.
       */
.col-md-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `md` breakpoint.
         */
.offset-md-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `md` breakpoint.
       */
.col-md-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `md` breakpoint.
         */
.offset-md-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `md` breakpoint.
       */
.col-md-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `md` breakpoint.
         */
.offset-md-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `md` breakpoint.
       */
.col-md-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `md` breakpoint.
         */
.offset-md-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `md` breakpoint.
       */
.col-md-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `md` breakpoint.
         */
.offset-md-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `md` breakpoint.
       */
.col-md-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `md` breakpoint.
         */
.offset-md-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `md` breakpoint.
       */
.col-md-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `md` breakpoint.
         */
.offset-md-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `md` breakpoint.
       */
.col-md-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `md` breakpoint.
         */
.offset-md-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `md` breakpoint.
       */
.col-md-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `md` breakpoint.
         */
.offset-md-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `md` breakpoint.
       */
.col-md-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the md breakpoint.
       */
.align-md-stretch {
  align-items: stretch; }

/**
       * Align `center` for the md breakpoint.
       */
.align-md-center {
  align-items: center; }

/**
       * Align `flex-start` for the md breakpoint.
       */
.align-md-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the md breakpoint.
       */
.align-md-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the md breakpoint.
       */
.align-md-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the md breakpoint.
       */
.justify-md-start {
  justify-content: start; }

/**
       * Justify `center` for the md breakpoint.
       */
.justify-md-center {
  justify-content: center; }

/**
       * Justify `space-between` for the md breakpoint.
       */
.justify-md-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the md breakpoint.
       */
.justify-md-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the md breakpoint.
       */
.justify-md-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the md breakpoint.
       */
.bleed-md-left {
  padding-left: 0; }

/**
       * Bleed right for the md breakpoint.
       */
.bleed-md-right {
  padding-right: 0; }

/**
     * Order first for the `md` breakpoint.
     */
.first-md {
  order: -1; }

/**
     * Order last for the `md` breakpoint.
     */
.last-md {
  order: 1; }

/**
     * Reverse order for the `md` breakpoint.
     */
.reverse-md {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `lg` breakpoint.
       */
.col-lg-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `lg` breakpoint.
         */
.offset-lg-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `lg` breakpoint.
       */
.col-lg-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `lg` breakpoint.
         */
.offset-lg-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `lg` breakpoint.
       */
.col-lg-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `lg` breakpoint.
         */
.offset-lg-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `lg` breakpoint.
       */
.col-lg-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `lg` breakpoint.
         */
.offset-lg-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `lg` breakpoint.
       */
.col-lg-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `lg` breakpoint.
         */
.offset-lg-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `lg` breakpoint.
       */
.col-lg-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `lg` breakpoint.
         */
.offset-lg-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `lg` breakpoint.
       */
.col-lg-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `lg` breakpoint.
         */
.offset-lg-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `lg` breakpoint.
       */
.col-lg-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `lg` breakpoint.
         */
.offset-lg-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `lg` breakpoint.
       */
.col-lg-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `lg` breakpoint.
         */
.offset-lg-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `lg` breakpoint.
       */
.col-lg-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `lg` breakpoint.
         */
.offset-lg-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `lg` breakpoint.
       */
.col-lg-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `lg` breakpoint.
         */
.offset-lg-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `lg` breakpoint.
       */
.col-lg-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the lg breakpoint.
       */
.align-lg-stretch {
  align-items: stretch; }

/**
       * Align `center` for the lg breakpoint.
       */
.align-lg-center {
  align-items: center; }

/**
       * Align `flex-start` for the lg breakpoint.
       */
.align-lg-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the lg breakpoint.
       */
.align-lg-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the lg breakpoint.
       */
.align-lg-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the lg breakpoint.
       */
.justify-lg-start {
  justify-content: start; }

/**
       * Justify `center` for the lg breakpoint.
       */
.justify-lg-center {
  justify-content: center; }

/**
       * Justify `space-between` for the lg breakpoint.
       */
.justify-lg-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the lg breakpoint.
       */
.justify-lg-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the lg breakpoint.
       */
.justify-lg-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the lg breakpoint.
       */
.bleed-lg-left {
  padding-left: 0; }

/**
       * Bleed right for the lg breakpoint.
       */
.bleed-lg-right {
  padding-right: 0; }

/**
     * Order first for the `lg` breakpoint.
     */
.first-lg {
  order: -1; }

/**
     * Order last for the `lg` breakpoint.
     */
.last-lg {
  order: 1; }

/**
     * Reverse order for the `lg` breakpoint.
     */
.reverse-lg {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `xl` breakpoint.
       */
.col-xl-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `xl` breakpoint.
         */
.offset-xl-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `xl` breakpoint.
       */
.col-xl-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `xl` breakpoint.
         */
.offset-xl-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `xl` breakpoint.
       */
.col-xl-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `xl` breakpoint.
         */
.offset-xl-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `xl` breakpoint.
       */
.col-xl-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `xl` breakpoint.
         */
.offset-xl-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `xl` breakpoint.
       */
.col-xl-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `xl` breakpoint.
         */
.offset-xl-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `xl` breakpoint.
       */
.col-xl-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `xl` breakpoint.
         */
.offset-xl-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `xl` breakpoint.
       */
.col-xl-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `xl` breakpoint.
         */
.offset-xl-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `xl` breakpoint.
       */
.col-xl-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `xl` breakpoint.
         */
.offset-xl-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `xl` breakpoint.
       */
.col-xl-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `xl` breakpoint.
         */
.offset-xl-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `xl` breakpoint.
       */
.col-xl-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `xl` breakpoint.
         */
.offset-xl-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `xl` breakpoint.
       */
.col-xl-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `xl` breakpoint.
         */
.offset-xl-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `xl` breakpoint.
       */
.col-xl-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the xl breakpoint.
       */
.align-xl-stretch {
  align-items: stretch; }

/**
       * Align `center` for the xl breakpoint.
       */
.align-xl-center {
  align-items: center; }

/**
       * Align `flex-start` for the xl breakpoint.
       */
.align-xl-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the xl breakpoint.
       */
.align-xl-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the xl breakpoint.
       */
.align-xl-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the xl breakpoint.
       */
.justify-xl-start {
  justify-content: start; }

/**
       * Justify `center` for the xl breakpoint.
       */
.justify-xl-center {
  justify-content: center; }

/**
       * Justify `space-between` for the xl breakpoint.
       */
.justify-xl-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the xl breakpoint.
       */
.justify-xl-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the xl breakpoint.
       */
.justify-xl-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the xl breakpoint.
       */
.bleed-xl-left {
  padding-left: 0; }

/**
       * Bleed right for the xl breakpoint.
       */
.bleed-xl-right {
  padding-right: 0; }

/**
     * Order first for the `xl` breakpoint.
     */
.first-xl {
  order: -1; }

/**
     * Order last for the `xl` breakpoint.
     */
.last-xl {
  order: 1; }

/**
     * Reverse order for the `xl` breakpoint.
     */
.reverse-xl {
  flex-direction: row-reverse; }

/* ==========================================================================
   Section
   ========================================================================== */
/**
 * Main element.
 */
.breadcrumbs {
  width: 100%;
  margin-top: 180px; }
  .breadcrumbs .wrapper {
    width: 90%; }
  .breadcrumbs svg {
    margin: 0 3px;
    color: #019ddd;
    font-size: 12px; }
  .breadcrumbs a {
    margin: 0 5px; }
    .breadcrumbs a:nth-child(1) {
      margin: 0 5px 0 0; }
  .breadcrumbs span:nth-last-child(3) {
    display: inline-block;
    margin-left: 5px; }

.wrapper-lg + .breadcrumbs {
  position: static;
  width: 100%;
  margin-top: 20px; }

/**
 * Primary.
 */
.button-blue {
  display: inline-block;
  padding: 10px 19px;
  transition: background-color 140ms;
  border-radius: 5px;
  background: #019ddd;
  color: #fff; }
  .button-blue:hover {
    background-color: #018bc4; }

/**
 * Transparent with black border.
 */
.button-trans {
  display: inline-block;
  padding: 9px 19px;
  transition: background-color 140ms, color 140ms;
  border: 1px solid #000;
  border-radius: 5px; }
  .button-trans:hover {
    background-color: #000;
    color: #fff; }

/* ==========================================================================
   CMS Output
   ========================================================================== */
/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 *
 * 1. Exclude last childs.
 */
.cms-output > *:not(:last-child) {
  margin-bottom: 1em;
  /* 1 */ }

.cms-output ul {
  list-style-type: disc; }

.cms-output ol {
  list-style-type: decimal; }

.cms-output p > a {
  color: #000; }
  .cms-output p > a:hover {
    text-decoration: underline; }

.contact-teaser {
  margin: 75px 0; }
  @media only screen and (max-width: 899px) {
    .contact-teaser {
      margin: 0;
      padding: 20px 0 0;
      border-top: 1px solid #d1d8de;
      border-bottom: 1px solid #d1d8de; } }
  @media only screen and (max-width: 1199px) {
    .contact-teaser .wrapper {
      width: 90%; } }
  .contact-teaser .ct__title {
    position: relative;
    top: 71px;
    margin-bottom: 22px;
    color: #001f46;
    font-size: 34px;
    font-weight: bold;
    line-height: 42px; }
    @media only screen and (max-width: 899px) {
      .contact-teaser .ct__title {
        top: 0;
        font-size: 28px; } }
  .contact-teaser .ct__column {
    width: calc(25% - 10px); }
    @media only screen and (max-width: 899px) {
      .contact-teaser .ct__column {
        width: 100%; } }
    @media only screen and (min-width: 900px) and (max-width: 1199px) {
      .contact-teaser .ct__column {
        width: calc(33.3334% - 20px); } }

.ct__wrapper {
  display: flex;
  flex-wrap: wrap; }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .ct__wrapper {
      justify-content: space-between; } }
  @media only screen and (min-width: 900px) {
    .ct__wrapper {
      display: flex !important; } }

.ct__maps {
  margin-top: 75px;
  border-radius: 8px;
  overflow: hidden; }
  @media only screen and (max-width: 599px) {
    .ct__maps {
      margin-top: 0; }
      .ct__maps iframe {
        width: calc(100% + 40px) !important;
        margin-left: -20px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ct__maps {
      display: block;
      margin-top: 0; }
      .ct__maps iframe {
        max-width: 100%;
        height: 250px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ct__maps {
      display: none; } }
  @media only screen and (min-width: 1200px) {
    .ct__maps.ct__column {
      width: 256px;
      margin-right: 30px; } }
  .ct__maps iframe {
    height: 250px; }
    @media only screen and (min-width: 1200px) {
      .ct__maps iframe {
        width: 256px; } }

.ct__title-content {
  position: relative;
  cursor: pointer; }
  .ct__title-content .ct__toggle {
    position: absolute;
    top: 12px;
    right: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
    font-size: 20px; }
    @media only screen and (min-width: 900px) {
      .ct__title-content .ct__toggle {
        display: none; } }
  .ct__title-content .ct__toggle-active {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    transition: all 350ms ease; }

.ct__left,
.ct__right {
  padding-top: 68px;
  color: #455462;
  font-size: 16px;
  font-weight: 300;
  line-height: 32px; }
  @media only screen and (max-width: 599px) {
    .ct__left,
    .ct__right {
      padding-top: 30px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ct__left,
    .ct__right {
      padding-top: 0; } }

.ct__editor-left a {
  display: block;
  margin-bottom: 20px;
  color: #019ddd;
  text-decoration: underline; }

.ct__editor-left .button {
  display: table;
  margin-bottom: 20px;
  padding: 0 8px;
  border-radius: 5px;
  color: #fff;
  font-size: 18px;
  font-style: italic; }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ct__editor-left .button {
      font-size: 15px; } }
  .ct__editor-left .button::before {
    display: none;
    font-family: 'Font Awesome 5 Pro';
    font-weight: 900;
    content: '\f540'; }
  .ct__editor-left .button svg {
    margin-right: 10px; }

.ct__appointment {
  display: table;
  margin-top: 10px;
  padding: 10px 15px;
  transition: opacity 140ms;
  border-radius: 5px;
  color: #fff;
  box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.13); }
  .ct__appointment:hover {
    opacity: 0.75; }

/*
 * Additional rules for this element
 */
.double-column + .contact-teaser {
  margin: -60px 0 75px; }

.background-color-grey + .contact-teaser {
  margin-top: 65px; }

.ct__element-is-active {
  display: none !important; }

.content-form {
  padding: 130px 0; }

/* ==========================================================================
   Datepicker
   ========================================================================== */
.ui-datepicker {
  margin-top: 5px;
  transition: background-color 140ms ease-in;
  background-color: #fff; }

.ui-datepicker .ui-state-default {
  line-height: 24px;
  text-align: center; }

.ui-datepicker .ui-state-hover {
  transition: background-color 140ms ease-in; }

.ui-datepicker .ui-state-active {
  background-color: #000;
  color: #fff;
  font-weight: font-weight("bold"); }

.ui-datepicker .ui-state-highlight {
  background-color: #000;
  color: #fff;
  font-weight: font-weight("bold"); }

.ui-datepicker .ui-corner-all::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  line-height: 26px;
  text-align: center; }

.ui-datepicker .ui-corner-all {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  transition: background-color 140ms ease-in;
  cursor: pointer; }

.ui-datepicker .ui-datepicker-next::before {
  display: none;
  font-family: "Font Awesome 5 Regular";
  content: '\f105'; }

.ui-datepicker .ui-datepicker-prev::before {
  display: none;
  font-family: "Font Awesome 5 Regular";
  content: '\f104'; }

.ui-datepicker .ui-corner-all .ui-icon {
  display: none; }

.ui-datepicker .ui-datepicker-next.ui-state-hover {
  right: 2px; }

.ui-datepicker .ui-datepicker-prev.ui-state-hover {
  left: 2px; }

.ui-datepicker .ui-corner-all.ui-state-hover {
  top: 2px;
  transition: background-color 140ms ease-in; }

.ui-datepicker .ui-datepicker-title select {
  display: inline-block;
  min-height: 25px;
  margin: 1px 4px;
  padding: 0 10px;
  background-color: #fff;
  font-weight: font-weight("light");
  line-height: 25px;
  -webkit-appearance: menulist;
     -moz-appearance: menulist;
          appearance: menulist; }

@media only screen and (max-width: 599px) {
  .double-column.background-color-grey {
    padding: 0; } }

.double-column .wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  @media only screen and (max-width: 1199px) {
    .double-column .wrapper {
      width: 90%; } }

.double-column .button-trans {
  margin-top: 30px; }

.dc__column {
  position: relative;
  width: 48%;
  padding: 20px 0; }
  @media only screen and (max-width: 899px) {
    .dc__column {
      width: 100%; } }
  .dc__column:nth-child(1) {
    padding-right: 5%; }
  @media only screen and (max-width: 899px) {
    .dc__column:nth-child(2) {
      padding-top: 10px; } }
  .dc__column .dc__column-title {
    margin-bottom: 30px; }
    @media only screen and (max-width: 899px) {
      .dc__column .dc__column-title {
        margin-bottom: 0; } }
  .dc__column .dc__title {
    position: relative;
    color: #001f46;
    font-size: 40px;
    font-weight: bold;
    line-height: 50px; }
    @media only screen and (max-width: 899px) {
      .dc__column .dc__title {
        font-size: 30px;
        line-height: 38px; } }
    @media only screen and (min-width: 900px) and (max-width: 1199px) {
      .dc__column .dc__title {
        font-size: 35px; } }

.dc__editor {
  color: #455462;
  font-size: 16px;
  line-height: 32px; }
  .dc__editor p {
    margin-bottom: 25px; }
  .dc__editor .button-parking {
    display: table;
    margin-bottom: 20px;
    padding: 0 8px;
    border-radius: 3px;
    color: #fff;
    font-size: 18px;
    font-style: italic; }
    @media only screen and (min-width: 600px) and (max-width: 899px) {
      .dc__editor .button-parking {
        font-size: 15px; } }
    .dc__editor .button-parking::before {
      display: none;
      font-family: 'Font Awesome 5 Pro';
      font-weight: 900;
      content: '\f540'; }
    .dc__editor .button-parking svg {
      margin-right: 10px; }
  .dc__editor ul li {
    margin-bottom: 10px; }
    .dc__editor ul li svg {
      margin-right: 20px;
      color: #019ddd; }
    .dc__editor ul li:before {
      display: none;
      margin: 0 25px 0 -15px;
      padding-left: 20px;
      font-family: 'Font Awesome 5 Free';
      font-weight: 900;
      content: '\f00c'; }

.dc__left .dc__editor img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 200px;
  border-radius: 5px;
  font-family: 'object-fit:cover';
  -o-object-fit: cover;
     object-fit: cover; }
  @media only screen and (max-width: 899px) {
    .dc__left .dc__editor img {
      position: static; } }

.dc__left table {
  width: 100% !important; }
  .dc__left table td {
    width: 50%; }
    @media only screen and (max-width: 599px) {
      .dc__left table td {
        display: block;
        width: 99.9%;
        clear: both;
        box-sizing: border-box; } }

.dc__right img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 200px;
  border-radius: 5px;
  font-family: 'object-fit:cover';
  -o-object-fit: cover;
     object-fit: cover; }
  @media only screen and (max-width: 899px) {
    .dc__right img {
      position: static; } }

.dc__right .dc__title {
  width: 340px; }

.dc__right table {
  width: 100%; }

.background-color-grey {
  padding: 150px 0;
  background: linear-gradient(180deg, #f9fbfb 0%, #f2f4f5 100%); }

.wrapper-lg + .double-column {
  margin-bottom: 100px; }

@media only screen and (max-width: 899px) {
  .treatment-teasers-content .dc__right {
    padding-top: 0; } }

.header + .default-content .default-content {
  margin-top: 50px; }
  @media only screen and (max-width: 899px) {
    .header + .default-content .default-content {
      margin-top: 40px; } }
  .header + .default-content .default-content img {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 5px;
    -o-object-fit: cover;
       object-fit: cover; }
    @media only screen and (max-width: 899px) {
      .header + .default-content .default-content img {
        position: static;
        width: 100%;
        height: 200px; } }
  .header + .default-content .default-content .dc__column {
    width: 45%; }
    @media only screen and (max-width: 899px) {
      .header + .default-content .default-content .dc__column {
        width: 100%; } }
  @media only screen and (max-width: 899px) {
    .header + .default-content .default-content .dc__right {
      padding: 0; } }

@media only screen and (max-width: 899px) {
  .team + .double-column .wrapper {
    width: 100%; } }

.team + .double-column img {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 90%;
  height: 100%;
  border-radius: 5px;
  -o-object-fit: cover;
     object-fit: cover; }
  @media only screen and (max-width: 899px) {
    .team + .double-column img {
      position: static;
      width: 100%; } }
  @media only screen and (max-width: 599px) {
    .team + .double-column img {
      margin-top: -20px; } }

.team + .double-column .dc__column:nth-child(1) {
  padding-right: 0; }

.team + .double-column .dc__column:nth-child(2) {
  padding-top: 15px; }
  @media only screen and (max-width: 899px) {
    .team + .double-column .dc__column:nth-child(2) {
      width: 90%;
      margin: auto; } }

.dc__title {
  position: relative;
  color: #001f46;
  font-size: 40px;
  font-weight: bold;
  line-height: 50px; }
  @media only screen and (max-width: 899px) {
    .dc__title {
      font-size: 30px;
      line-height: 38px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .dc__title {
      font-size: 35px; } }

.default {
  width: 90%;
  max-width: 650px;
  margin: 40px auto 80px; }
  @media only screen and (min-width: 1200px) {
    .default {
      margin: 40px auto 120px; } }

@media only screen and (min-width: 1200px) {
  .default + .contact-teaser {
    margin: -50px 0 75px; } }

@media only screen and (max-width: 899px) {
  .double-column + .background-color-grey {
    padding: 120px 0 !important; } }

.slideshow + .double-column {
  margin-top: 100px; }
  @media only screen and (max-width: 899px) {
    .slideshow + .double-column {
      margin-top: 10px; } }

.footer {
  padding: 50px 0;
  border-top: 1px solid #d1d8de;
  color: #455462; }
  .footer .wrapper {
    display: flex;
    flex-wrap: wrap;
    font-weight: 300; }
    @media only screen and (min-width: 600px) and (max-width: 1199px) {
      .footer .wrapper {
        width: 90%; } }
  @media only screen and (max-width: 599px) {
    .footer .f__column {
      width: 100% !important;
      margin: 20px auto;
      text-align: center; } }
  .footer .f__column:nth-child(1) {
    align-items: center;
    width: 25%; }
  .footer .f__column:nth-child(2) {
    width: 55%; }
  .footer .f__column:nth-child(3) {
    align-items: center;
    width: 20%;
    padding-top: 10px; }
    @media only screen and (min-width: 600px) {
      .footer .f__column:nth-child(3) {
        text-align: right; } }
  .footer .f__logo {
    display: inline-flex;
    align-items: center;
    justify-content: space-between; }
    .footer .f__logo img {
      max-height: 50px;
      margin-right: 40px; }
    .footer .f__logo:nth-child(1) img {
      margin-right: 10px; }
    .footer .f__logo:nth-child(2) img, .footer .f__logo:nth-child(3) img {
      max-height: 30px; }
  .footer .f__logo-text {
    max-width: 200px;
    line-height: 26px; }
    @media only screen and (max-width: 899px) {
      .footer .f__logo-text {
        display: none; } }

.footer__mobile {
  display: flex;
  position: fixed;
  right: 0;
  bottom: 10px;
  left: 0;
  flex-wrap: nowrap;
  width: 96%;
  height: 60px;
  margin: auto;
  border-radius: 3px;
  background: #fff;
  font-weight: 500;
  box-shadow: 0 0 13px 0 rgba(0, 0, 0, 0.23);
  z-index: 40; }
  @media only screen and (min-width: 600px) {
    .footer__mobile {
      display: none; } }
  .footer__mobile .fm__column {
    width: 25%;
    margin: 10px 0;
    border-right: 1px solid #d1d8de;
    color: #001f46;
    font-size: 12px;
    text-align: center; }
    .footer__mobile .fm__column svg {
      display: block;
      margin: auto;
      color: #019ddd;
      font-size: 13px; }
    .footer__mobile .fm__column:nth-last-child(1) {
      border-right: 0; }

/* ==========================================================================
   Gform
   ========================================================================== */
select::-ms-expand {
  display: none; }

.form__switch {
  display: flex;
  flex-wrap: wrap;
  margin: -20px;
  margin-bottom: 0; }

.form__switch-item {
  font-size: 34px;
  font-size: 3.4rem;
  line-height: 1.23529em;
  display: inline-block;
  position: relative;
  width: calc(100% / 3 - 40px);
  margin: 20px 20px 90px;
  padding-bottom: 30px;
  transition: opacity 140ms;
  color: #00274e;
  font-weight: 900;
  opacity: 0.26; }
  @media only screen and (max-width: 1199px) {
    .form__switch-item {
      font-size: 22px;
      font-size: 2.2rem;
      line-height: 1.54545em;
      width: 100%;
      margin-top: 0;
      margin-bottom: 20px; } }

.form__item {
  display: none; }
  .form__item.is-active {
    display: block; }
  @media only screen and (min-width: 600px) {
    .form__item:nth-child(1) .gform_intro-text {
      width: 66.6667%; } }
  @media only screen and (min-width: 600px) {
    .form__item:nth-child(2) .gform_intro-text {
      width: 66.6667%;
      margin: 0 auto;
      text-align: center; } }
  @media only screen and (min-width: 600px) {
    .form__item:nth-child(3) .gform_intro-text {
      width: 66.6667%;
      margin-left: auto;
      text-align: right; } }

/**
 * Form field.
 */
.gfield {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  margin-bottom: 25px; }
  .gfield.hidden_label > .gfield_label {
    display: none; }
  .gfield.hidden_label > .ginput_container {
    width: 100%; }
  .gfield p {
    margin-bottom: 25px; }

/**
 * HTML.
 */
.gform_html p {
  margin-bottom: 30px; }
  .gform_html p:nth-last-child(1) {
    margin-bottom: 0; }

/**
 * Hide section.
 */
.gform_hide {
  display: none; }

/**
 * Body.
 */
.gform_body {
  margin-bottom: 30px; }

/**
 * Columns.
 */
.gform_columns {
  display: flex;
  flex-wrap: wrap;
  margin: -30px; }

.gform_column {
  width: 50%;
  padding: 30px; }
  @media only screen and (max-width: 899px) {
    .gform_column {
      width: 100%; } }

/**
 * Section.
 */
.gsection_title {
  color: #455462;
  font-size: 20px;
  font-weight: 900; }

/**
 * Form label.
 */
.gfield_label {
  display: inline-block;
  width: 180px;
  margin-bottom: 5px; }
  @media only screen and (max-width: 599px) {
    .gfield_label {
      width: 100%; } }

/**
 * Container.
 */
.ginput_container {
  width: calc(100% - 180px); }
  @media only screen and (max-width: 599px) {
    .ginput_container {
      width: 100%; } }

/**
 * Container [select]
 */
.ginput_container_select {
  position: relative; }
  .ginput_container_select .gfield_select {
    display: block;
    width: 100%;
    height: 40px;
    padding: 0 15px;
    border: 1px solid #c2cacf;
    border-radius: 2px;
    background-color: #fff;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08); }
  .ginput_container_select::after {
    display: none;
    font-family: "Font Awesome 5 Solid";
    content: '\f0d7'; }
  .ginput_container_select > .inline-icon {
    position: absolute;
    top: 11px;
    right: 20px;
    font-size: 16px; }

/**
 * Input fields.
 */
.ginput_container input[type=text],
.ginput_container input[type=mail],
.ginput_container input[type=email],
.ginput_container input[type=phone],
.ginput_container input[type=tel],
.ginput_container textarea,
.ginput_container .gform__upload {
  display: block;
  width: 100%;
  padding: 11px 15px;
  border-radius: 2px;
  background-color: #f4f7f9;
  box-shadow: inset 0 1px 5px 0 rgba(0, 0, 0, 0.06); }

select::ms-expand {
  display: none;
  /* IE 8 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  /* IE 5-7 */
  filter: alpha(opacity=0);
  /* Good browsers :) */
  opacity: 0; }

/**
 * Radiobutton.
 */
.gfield_radio > li {
  display: block;
  margin-bottom: 5px; }

.gfield_radio input[type=radio],
.gfield_checkbox input[type=checkbox] {
  display: none; }

.gfield_radio input[type=radio] + label::before {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 20px;
  transition: background-color 140ms, border 140ms;
  border: 1px solid #c2cacf;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: inset 0 1px 5px 0 rgba(0, 0, 0, 0.06), 0 2px 4px 0 rgba(0, 0, 0, 0.08);
  content: '';
  vertical-align: -1px; }

.gfield_radio input[type=radio]:checked + label::before {
  border: 1px solid #019ddd;
  background-color: #019ddd; }

.paincomplaint_fields {
  display: none;
  width: 100%; }
  .paincomplaint_fields .gfield {
    margin-bottom: 10px;
    padding-left: 34px; }
    .paincomplaint_fields .gfield:first-child {
      margin-top: 10px; }

/**
 * Checkbox.
 */
.gfield_checkbox input[type=checkbox] + label::before {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-top: 8px;
  margin-right: 15px;
  transition: background-color 140ms, border 140ms;
  border: 1px solid #c2cacf;
  border-radius: 2px;
  background-color: #fff;
  box-shadow: inset 0 1px 5px 0 rgba(0, 0, 0, 0.06), 0 2px 4px 0 rgba(0, 0, 0, 0.08);
  content: '';
  vertical-align: -1px; }
  @media only screen and (max-width: 599px) {
    .gfield_checkbox input[type=checkbox] + label::before {
      width: 20px; } }

.gfield_checkbox input[type=checkbox]:checked + label::before {
  border: 1px solid #019ddd;
  background-color: #019ddd; }
  @media only screen and (max-width: 599px) {
    .gfield_checkbox input[type=checkbox]:checked + label::before {
      width: 20px; } }

/**
 * Upload.
 */
.ginput_container input[type=file] {
  display: none; }

.gform__upload {
  position: relative;
  height: 40px;
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15; }
  .gform__upload::after {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: '\f093'; }
  .gform__upload > .inline-icon {
    position: absolute;
    right: 20px;
    color: #455462;
    pointer-events: none; }

.ginput_container_fileupload .screen-reader-text {
  color: #455462;
  font-size: 14px;
  font-style: italic; }

/**
 * Other.
 */
.gfield_other input[type=text] {
  width: calc(100% - 34px);
  margin-left: 34px; }

#gform_submit_button_1 {
  padding: 18px 20px;
  box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.13); }

#field_1_35::after,
#field_1_36::after {
  display: block;
  width: 100%;
  color: #d1d8de;
  font-style: italic;
  text-align: right;
  content: 'Uw voorkeur wordt indien mogelijk gevolgd.'; }

#label_1_24_1 {
  display: flex;
  margin-top: -29px; }

.ginput_container_select .practioner__select {
  position: relative;
  padding-top: 38px; }
  .ginput_container_select .practioner__select.is-active {
    display: block; }
  .ginput_container_select .practioner__select.is-active .js-show-dentist {
    display: block; }
    .ginput_container_select .practioner__select.is-active .js-show-dentist.is-last {
      border-bottom: 1px solid #b2babd; }

.practioner__select > span:not(.practioner__select-title) {
  display: none;
  position: relative;
  left: -15px;
  width: calc(100% + 30px);
  padding: 0 14px;
  border: 1px solid #b2babd;
  border-bottom: 0;
  background: #fff;
  cursor: default;
  z-index: 10;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .practioner__select > span:not(.practioner__select-title):hover {
    background: #019ddd;
    color: #fff; }
  .practioner__select > span:not(.practioner__select-title).is-active {
    background-color: #019ddd;
    color: #fff; }

.practioner__select-title {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 4px 0 0 16px;
  z-index: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.gform-hide-field {
  opacity: 0;
  z-index: -1; }

.gform_column--second #input_1_17 option, .gform_column--second #input_9_17 option, .gform_column--second #input_4_17 option {
  display: block; }

.gform_column--second option:not(.js-show-dentist):not(.js-show-treatment-day):not(.js-show-treatment-time) {
  display: none; }

/* General GF Date Picker */
#ui-datepicker-div {
  display: none;
  width: 300px;
  padding: 20px;
  background: #FFF;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-shadow: 0px 3px 5px 0px rgba(50, 50, 50, 0.75); }
  #ui-datepicker-div .ui-icon {
    color: transparent;
    cursor: pointer;
    font-size: 0px; }
  #ui-datepicker-div .ui-icon:before {
    color: #019ddd;
    font-family: "FontAwesome";
    font-size: 18px; }
  #ui-datepicker-div .ui-datepicker-prev {
    float: left;
    width: 10%; }
    #ui-datepicker-div .ui-datepicker-prev .ui-icon:before {
      content: '\f060'; }
    #ui-datepicker-div .ui-datepicker-prev.ui-state-disabled {
      display: none; }
  #ui-datepicker-div .ui-datepicker-next {
    float: right;
    width: 10%; }
    #ui-datepicker-div .ui-datepicker-next .ui-icon:before {
      content: '\f061';
      float: right; }
    #ui-datepicker-div .ui-datepicker-next.ui-state-disabled {
      display: none; }
  #ui-datepicker-div .ui-datepicker-title select {
    float: left;
    width: 70%; }
  #ui-datepicker-div .ui-datepicker-title .ui-datepicker-month {
    margin: 0px 5% 6px; }
  #ui-datepicker-div .ui-datepicker-title .ui-datepicker-year {
    margin: 0px 15% 6px; }
  #ui-datepicker-div .ui-datepicker-today {
    background-color: #019ddd;
    border-radius: 4px; }
    #ui-datepicker-div .ui-datepicker-today a {
      color: #FFF; }
  #ui-datepicker-div table {
    width: 100%; }
    #ui-datepicker-div table td, #ui-datepicker-div table th {
      text-align: center; }
    #ui-datepicker-div table td a {
      display: block;
      padding: 5px; }

.gform_wrapper .validation_error {
  position: absolute;
  top: -50px;
  color: #d20000;
  font-weight: 600;
  font-size: 20px; }
  @media only screen and (max-width: 599px) {
    .gform_wrapper .validation_error {
      top: -80px; } }

.gfield_description.validation_message {
  color: #d20000;
  font-weight: 600; }

.default-content .google-maps {
  padding: 0;
  background: linear-gradient(180deg, #f9fbfb 0%, #f2f4f5 100%); }

.google-maps {
  margin-top: 130px; }

.gm__editor {
  width: 90%;
  margin: auto;
  padding: 60px 0;
  color: #455462;
  font-size: 18px;
  font-style: italic;
  line-height: 23px;
  text-align: center; }
  .gm__editor a {
    color: #019ddd; }
    .gm__editor a:before {
      display: none;
      font-family: 'Font Awesome 5 Free';
      font-weight: 900;
      content: '\f095'; }
    .gm__editor a svg {
      margin: 0 5px; }

.gm__maps iframe {
  width: 100%; }

.body-load {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #fff;
  z-index: 9999; }

.header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  height: auto;
  min-height: 107px;
  transition: opacity 140ms 1000ms;
  background: #fff;
  opacity: 0;
  z-index: 45;
  -webkit-animation: fadeInLogo 1500ms ease;
          animation: fadeInLogo 1500ms ease;
  -webkit-animation-delay: 1000ms;
          animation-delay: 1000ms; }
  .header.header-loaded {
    opacity: 1; }
  .header img {
    height: 95px; }
    @media only screen and (min-width: 600px) and (max-width: 1199px) {
      .header img {
        height: 80px; } }
  .header .wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
    @media only screen and (max-width: 1199px) {
      .header .wrapper {
        justify-content: space-between;
        width: 95%; } }
  @media (min-width: 1220px) {
    .header .main-menu-container {
      display: block !important;
      text-transform: uppercase; } }
  @media (max-width: 1220px) {
    .header .main-menu-container {
      display: none;
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 99; }
      .header .main-menu-container .main-menu {
        width: 100%;
        height: 100%;
        margin-top: 150px;
        overflow-y: scroll; }
        .header .main-menu-container .main-menu li {
          display: block;
          width: 100%;
          margin-bottom: 30px;
          margin-left: 0;
          color: #fff;
          font-size: 18px;
          text-align: center; }
          .header .main-menu-container .main-menu li:nth-child(1) {
            color: #001f46;
            font-size: 22px;
            font-weight: bold; }
          .header .main-menu-container .main-menu li button {
            display: initial;
            margin-left: 10px; } }
  .header .main-menu-container button {
    display: none; }
  .header .main-menu-container .close-btn {
    position: absolute;
    top: 38px;
    right: 58px;
    color: #fff;
    font-size: 12px;
    cursor: pointer; }
    @media (min-width: 1220px) {
      .header .main-menu-container .close-btn {
        display: none; } }
    .header .main-menu-container .close-btn svg {
      display: block;
      position: relative;
      top: 5px;
      left: 5px;
      font-size: 30px; }
  .header .js-main-menu-button {
    display: none;
    position: relative;
    margin-left: 20px; }
    @media only screen and (max-width: 599px) {
      .header .js-main-menu-button {
        position: absolute;
        top: 0;
        right: 25px; } }
    @media (max-width: 1220px) {
      .header .js-main-menu-button {
        display: inline-flex; } }
    .header .js-main-menu-button svg {
      font-size: 30px; }
    .header .js-main-menu-button .js-main-menu-button-text {
      display: none; }
    .header .js-main-menu-button::after {
      display: table;
      position: absolute;
      top: 30px;
      left: -2px;
      font-size: 12px;
      content: 'MENU'; }
  @media (max-width: 1220px) {
    .header .header__language-switcher {
      position: absolute;
      right: 10px; } }
  .header .current-menu-item:not(:first-child) {
    font-weight: bold; }

@media (max-width: 1220px) {
  .main-menu-container--blue {
    background: #019ddd; } }

@media (max-width: 1220px) {
  .main-menu-container--green {
    background: #1ba59a; } }

@media (max-width: 1220px) {
  .main-menu-container--darkgreen {
    background: #1ba59a; } }

/**
 * Header logo.
 */
.header__logo {
  display: flex;
  align-items: flex-end; }
  @media only screen and (max-width: 1199px) {
    .header__logo {
      flex-wrap: wrap;
      justify-content: flex-end; } }
  .header__logo img {
    margin-right: 5px; }
    @media only screen and (min-width: 600px) {
      .header__logo img {
        margin-top: 5px; } }

.header__logo-text {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.30769em;
  position: relative;
  bottom: 11px;
  color: #6889aa;
  font-weight: bold;
  text-transform: uppercase; }
  @media only screen and (max-width: 1199px) {
    .header__logo-text {
      right: 15px; } }
  @media only screen and (max-width: 1199px) {
    .header__logo-text.margin-top-10 {
      right: 7px;
      margin-top: 10px; } }

/**
 * Header columns.
 */
@media only screen and (max-width: 599px) {
  .header__column:nth-child(1) {
    width: 46% !important; }
  .header__column:nth-child(2) {
    width: 30% !important; } }

.header__column:nth-child(1) {
  width: 20%; }

.header__column:nth-child(2) {
  position: relative;
  justify-content: flex-end;
  width: 80%; }
  @media (max-width: 1220px) and (min-width: 600px) {
    .header__column:nth-child(2) {
      display: flex; } }

.header__upper {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%; }
  @media (max-width: 1220px) and (min-width: 600px) {
    .header__upper {
      width: auto; } }
  .header__upper svg {
    margin-right: 7px;
    color: #019ddd;
    cursor: pointer; }
  .header__upper .search-form {
    margin-right: 30px; }
    @media (max-width: 1220px) {
      .header__upper .search-form {
        display: none; } }
    @media only screen and (max-width: 899px) {
      .header__upper .search-form {
        display: inline-flex;
        transition: opacity 140ms;
        opacity: 0;
        pointer-events: none; }
        .header__upper .search-form.is-active {
          opacity: 1;
          pointer-events: all; } }
    .header__upper .search-form svg {
      color: #455462;
      cursor: pointer; }
    @media only screen and (min-width: 900px) {
      .header__upper .search-form input {
        display: inline;
        width: 0;
        transition: width 140ms; } }
    .header__upper .search-form input.is-active {
      width: 150px; }
  .header__upper .header__mail,
  .header__upper .header__phone {
    display: flex;
    align-items: center;
    margin-right: 30px;
    color: #6889aa; }
    @media (max-width: 1220px) {
      .header__upper .header__mail,
      .header__upper .header__phone {
        display: none; } }
  .header__upper .header__mail {
    height: 30px; }
    .header__upper .header__mail:hover .header__mail-text {
      max-width: 300px;
      transition: max-width 400ms ease-in; }
  .header__upper .header__phone {
    height: 30px; }
    .header__upper .header__phone:hover .header__phone-text {
      max-width: 300px;
      transition: max-width 400ms ease-in; }
  .header__upper .header__mail-text,
  .header__upper .header__phone-text {
    display: inline-block;
    width: 100%;
    max-width: 0;
    transition: max-width 200ms ease-out;
    overflow: hidden; }
  .header__upper .header__rush {
    display: block;
    width: 100px;
    padding: 3px 0;
    transition: background-color 140ms, color 140ms;
    border: 2px solid #d20000;
    border-radius: 3px;
    background: #d20000;
    color: #fff;
    font-size: 14px;
    line-height: 18px;
    text-align: center; }
    @media only screen and (max-width: 599px) {
      .header__upper .header__rush {
        display: none; } }
    @media (max-width: 1220px) and (min-width: 600px) {
      .header__upper .header__rush {
        padding: 4px 0; } }
    .header__upper .header__rush svg {
      margin-right: 0;
      margin-left: 10px;
      transition: color 140ms;
      color: #fff;
      font-size: 11px; }
    .header__upper .header__rush:hover {
      background-color: #fff;
      color: #d20000; }
      .header__upper .header__rush:hover svg {
        color: #d20000; }

.header__appointment {
  display: inline-block;
  width: 100px;
  margin-left: 30px;
  padding: 3px 0;
  transition: background-color 140ms, color 140ms;
  border-radius: 3px;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  text-align: center; }
  @media only screen and (max-width: 599px) {
    .header__appointment {
      display: none; } }
  @media (max-width: 1220px) and (min-width: 600px) {
    .header__appointment {
      margin-top: 10px !important;
      margin-left: 5px;
      padding: 4px 0; } }

.header__lower {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  margin-bottom: 10px; }
  @media (max-width: 1220px) and (min-width: 900px) {
    .header__lower {
      margin-right: 85px; } }
  @media (max-width: 1220px) and (min-width: 600px) {
    .header__lower {
      width: auto;
      margin-top: 0; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .header__lower {
      margin-right: 45px; } }
  .header__lower .main-menu {
    margin-top: 2px; }
    .header__lower .main-menu li {
      display: inline-flex;
      margin-left: 30px;
      color: #001f46;
      font-size: 15px;
      line-height: 19px; }
      .header__lower .main-menu li a {
        position: relative;
        z-index: 2; }

.header__icons-portrait {
  display: none;
  position: fixed;
  top: 140px;
  left: 20px;
  z-index: 40; }
  @media (max-width: 1220px) and (min-width: 600px) {
    .header__icons-portrait {
      display: block; } }
  .header__icons-portrait a {
    display: table; }
  .header__icons-portrait .icons-portrait__email,
  .header__icons-portrait .icons-portrait__phone {
    width: 45px;
    height: 37px;
    margin-bottom: 15px;
    background: #fff;
    color: #019ddd;
    line-height: 37px;
    text-align: center;
    box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.12); }

.search-is-active {
  width: 175px; }

/**
 * Header with shadow.
 */
.header--shadow {
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.12); }

/*
 * Submenu rules
 */
.submenu-container {
  position: absolute;
  width: 80px;
  height: 46px;
  transition: all 350ms ease; }
  @media only screen and (min-width: 1200px) {
    .submenu-container {
      display: block !important; } }
  @media only screen and (max-width: 899px) {
    .submenu-container {
      display: none;
      position: static;
      width: 100%;
      height: auto;
      margin: auto;
      padding-top: 0; } }
  .submenu-container .wrapper {
    margin: auto; }
  .submenu-container .menu-item-has-children .submenu-container .submenu {
    margin-top: 50px;
    opacity: 0;
    z-index: -1; }
    @media only screen and (max-width: 899px) {
      .submenu-container .menu-item-has-children .submenu-container .submenu a {
        margin-top: 10px;
        font-size: 14px; } }
  .submenu-container .menu-item-has-children:hover .submenu-container .submenu {
    opacity: 1;
    z-index: 9; }

.submenu--blue {
  background: #019ddd; }

.submenu--green {
  background: #1ba59a; }
  .submenu--green a {
    color: #fff; }

.submenu--darkgreen {
  background: #005f69; }
  .submenu--darkgreen a {
    color: #fff; }

.submenu {
  position: fixed;
  top: 107px;
  right: 0;
  left: 0;
  padding: 20px 0;
  transition: all 500ms ease;
  font-size: 15px;
  text-transform: capitalize;
  opacity: 0;
  z-index: -1; }
  @media only screen and (max-width: 899px) {
    .submenu {
      position: static;
      transition: all 500ms ease;
      opacity: 1; } }
  .submenu .wrapper {
    justify-content: initial; }
  .submenu li {
    margin-left: 0 !important;
    padding: 0 8px;
    border-right: 1px solid #fff;
    text-align: center;
    text-transform: capitalize; }
    @media only screen and (max-width: 899px) {
      .submenu li {
        border-right: 0; } }
    .submenu li:hover a {
      color: #fff;
      text-decoration: underline; }
    .submenu li:nth-last-child(1) {
      border-right: 0; }

@media only screen and (min-width: 900px) {
  .menu-item-has-children:hover .submenu {
    display: block;
    transition: all 500ms ease;
    opacity: 1;
    z-index: 99; } }

.submenu-container-is-active {
  display: block !important;
  transition: all 500ms ease; }

.language-switch {
  margin-right: 20px; }
  @media only screen and (max-width: 599px) {
    .language-switch {
      display: flex;
      position: fixed;
      top: 15px;
      right: 35px;
      justify-content: space-between;
      width: 70px;
      z-index: 100; } }
  @media only screen and (min-width: 600px) {
    .language-switch {
      display: flex !important;
      flex-direction: row-reverse; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .language-switch {
      flex-wrap: wrap; } }
  @media only screen and (max-width: 899px) {
    .language-switch {
      margin-right: 0; } }

.language-switch__item {
  position: relative;
  margin-left: 15px;
  padding-right: 25px;
  transition: opacity 140ms;
  opacity: 0.5; }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .language-switch__item {
      padding-right: 0; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .language-switch__item {
      width: 100%; } }
  @media only screen and (max-width: 899px) {
    .language-switch__item {
      margin: 0; } }
  @media only screen and (max-width: 599px) {
    .language-switch__item:first-child {
      margin-left: 0; } }
  .language-switch__item:first-child:after {
    display: inline-block;
    position: absolute;
    top: -2px;
    right: 5px;
    content: 'NL'; }
    @media only screen and (min-width: 600px) and (max-width: 1199px) {
      .language-switch__item:first-child:after {
        display: none; } }
  @media only screen and (min-width: 600px) {
    .language-switch__item:last-child {
      margin-left: 0; } }
  .language-switch__item:last-child:after {
    display: inline-block;
    position: absolute;
    top: -2px;
    right: 5px;
    content: 'EN'; }
    @media only screen and (min-width: 600px) and (max-width: 1199px) {
      .language-switch__item:last-child:after {
        display: none; } }
  .language-switch__item:hover, .language-switch__item.is-active {
    opacity: 1; }

.language-switch__link {
  height: 26px;
  font-size: 0;
  display: flex;
  align-items: center; }
  .language-switch__link::before {
    display: inline-block;
    width: 24px;
    height: 16px;
    margin-right: 5px;
    background: url("../images/EN-flag.jpg");
    background-size: contain;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.19);
    content: ''; }

.language-switch__link--nl::before {
  background: url("../images/NL-flag.jpg");
  background-size: contain; }

.opening-hours {
  position: relative;
  width: 25%;
  padding-left: 25px; }
  @media only screen and (max-width: 899px) {
    .opening-hours {
      width: 100%;
      margin-top: 50px;
      padding: 20px 0;
      border-top: 1px solid #d1d8de;
      border-left: 0; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .opening-hours {
      width: calc(33.3334% - 20px); } }

.oh__title {
  position: relative;
  margin-bottom: 25px;
  color: #001f46;
  font-size: 34px;
  font-weight: bold;
  line-height: 42px; }
  @media only screen and (max-width: 899px) {
    .oh__title {
      display: block;
      margin-bottom: 0;
      font-size: 28px;
      cursor: pointer; } }
  .oh__title svg {
    display: none;
    position: absolute;
    top: 5px;
    right: 3px;
    cursor: pointer; }
    @media only screen and (max-width: 899px) {
      .oh__title svg {
        display: block; } }

.oh__content {
  position: relative; }
  @media only screen and (min-width: 900px) {
    .oh__content {
      display: block !important; } }
  @media only screen and (max-width: 899px) {
    .oh__content {
      display: none;
      margin-top: 20px; } }
  .oh__content::before {
    display: inline-block;
    position: absolute;
    top: -55px;
    left: -25px;
    width: 1px;
    height: calc(100% + 55px);
    border: 1px solid #dadee2;
    content: ''; }

.oh__toggle {
  margin-top: 5px;
  transition: all 350ms ease;
  font-size: 20px; }

.oh__toggle-active {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  transition: all 350ms ease; }

.oh__row {
  display: flex;
  flex-wrap: wrap;
  color: #455462;
  font-size: 16px; }
  .oh__row .oh__day {
    width: 40%; }
  .oh__row .oh__time {
    font-weight: bold; }
  .oh__row .oh__notation {
    display: inline-flex;
    font-weight: normal; }

/* ==========================================================================
   Pagination
   ========================================================================== */
.pagination {
  text-align: center; }
  .pagination .screen-reader-text {
    display: none; }

/**
 * Numbers.
 */
.page-numbers {
  margin: 0 5px;
  color: #019ddd; }
  .page-numbers.current {
    color: #001f46;
    font-weight: bold; }

@media only screen and (max-width: 599px) {
  .search-form {
    display: inline-flex;
    position: fixed;
    right: 0;
    bottom: 90px;
    left: 0;
    width: 90%;
    margin: auto !important;
    box-shadow: 0 0 13px 0 rgba(0, 0, 0, 0.23);
    z-index: 99; }
    .search-form svg {
      position: absolute;
      top: 10px;
      right: 0; }
    .search-form input {
      width: 90%;
      height: 35px;
      padding: 0 10px; }
    .search-form button {
      width: 10%;
      height: 35px;
      background: #fff;
      color: #000; } }

/* ==========================================================================
   Search results
   ========================================================================== */
/**
 * Results.
 */
.search-results {
  padding: 100px 0; }
  @media only screen and (max-width: 899px) {
    .search-results {
      padding: 50px 0; } }
  .search-results .wrapper {
    padding: 0 15px; }

/**
 * Loop.
 */
.search-results__loop {
  flex-wrap: wrap;
  margin: 50px -15px; }

/**
 * Search item.
 */
.search-item {
  width: calc(50% - 30px);
  margin: 15px;
  padding: 25px;
  transition: border 250ms ease;
  border: 1px solid #d1d8de; }
  @media only screen and (max-width: 899px) {
    .search-item {
      width: 100%; } }
  .search-item:hover {
    border: 1px solid #019ddd; }

.search-item__label {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.25em;
  margin-bottom: 15px;
  color: #001f46;
  font-weight: 700; }

@media only screen and (min-width: 900px) {
  .slideshow-wrapper {
    height: 700px; } }

.slideshow {
  position: relative;
  width: 100%;
  margin-bottom: 50px; }
  .slideshow.owl-carousel {
    display: block;
    transition: opacity 140ms 1000ms;
    opacity: 0; }
    .slideshow.owl-carousel.owl-loaded {
      opacity: 1; }
  .slideshow .owl-dots {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    max-width: 500px;
    margin-top: -20px;
    margin-right: 190px;
    margin-left: auto;
    text-align: center;
    z-index: 9; }
    @media only screen and (max-width: 599px) {
      .slideshow .owl-dots {
        width: 100%;
        margin-top: 20px; } }
    @media only screen and (min-width: 600px) and (max-width: 1199px) {
      .slideshow .owl-dots {
        margin-right: 40px; } }
    .slideshow .owl-dots .owl-dot {
      width: 6px;
      height: 6px;
      margin: 0 2px;
      transition: width 140ms, height 140ms;
      border-radius: 100%;
      background: #d1d8de; }
      .slideshow .owl-dots .owl-dot:hover {
        width: 8px;
        height: 8px; }
    .slideshow .owl-dots .active {
      width: 10px;
      height: 10px;
      background: #b2babd; }
  .slideshow .next {
    position: absolute;
    right: 30px;
    bottom: 40%;
    transition: all 250ms ease;
    color: #fff;
    font-size: 16px; }
    @media only screen and (max-width: 599px) {
      .slideshow .next {
        display: none; } }

.slideshow__slide-content {
  position: relative;
  width: 81%;
  padding-right: 25px; }
  @media only screen and (max-width: 599px) {
    .slideshow__slide-content {
      width: 100%; }
      .slideshow__slide-content:after {
        display: none !important; } }
  .slideshow__slide-content:after {
    display: block;
    position: absolute;
    top: 0;
    right: -40px;
    bottom: 0;
    width: 2px;
    background: #d1d8de;
    content: '';
    opacity: 0.7; }

.slideshow__item {
  height: 700px;
  z-index: 9999; }
  @media only screen and (max-width: 899px) {
    .slideshow__item {
      height: auto; } }
  .slideshow__item.no-link .slideshow__slide-content:after {
    display: none; }
  .slideshow__item.no-link svg {
    display: none; }

.slideshow__image img {
  position: relative;
  width: 100%;
  height: 600px;
  z-index: -1;
  -o-object-fit: cover;
     object-fit: cover; }
  @media only screen and (max-width: 599px) {
    .slideshow__image img {
      height: 300px; } }

.slideshow__slide {
  position: absolute;
  right: 15%;
  bottom: 45px;
  width: 100%;
  max-width: 500px;
  height: auto;
  padding: 50px;
  border-radius: 5px;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.14); }
  @media only screen and (max-width: 599px) {
    .slideshow__slide {
      position: static;
      width: 90%;
      margin: -50px auto auto;
      padding: 30px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .slideshow__slide {
      right: 40px; } }

.slideshow__slide:hover .next {
  right: 25px;
  transition: all 250ms ease; }

.slideshow__subtitle {
  margin-bottom: 10px;
  color: #fff;
  font-size: 18px;
  font-weight: bold; }

.slideshow__title {
  margin-bottom: 15px;
  color: #001f46;
  font-size: 34px;
  font-weight: bold; }
  @media only screen and (max-width: 599px) {
    .slideshow__title {
      font-size: 28px; } }

.slideshow__editor {
  color: #fff;
  font-size: 18px;
  line-height: 32px; }
  .slideshow__editor ul,
  .slideshow__editor ol {
    padding-left: 23px; }
  .slideshow__editor ul {
    list-style-type: disc; }

.double-column + .wrapper-lg .slideshow {
  margin-top: 100px; }

.no-link .slideshow__slide-content {
  width: 100%;
  padding-right: 0; }

.team {
  margin: 130px 0; }
  @media only screen and (max-width: 899px) {
    .team {
      margin: 80px 0; } }
  .team .team__title {
    position: absolute;
    width: 345px;
    color: #001f46;
    font-size: 34px;
    font-weight: bold;
    line-height: 42px; }
    @media (max-width: 560px) {
      .team .team__title {
        position: static !important; } }
    @media only screen and (min-width: 600px) and (max-width: 1199px) {
      .team .team__title {
        margin-left: 40px; } }
    @media only screen and (max-width: 599px) {
      .team .team__title {
        position: static;
        margin-left: 20px; } }

.team__loop {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  justify-content: space-between; }

.team__loop-wrapper {
  position: relative;
  width: 100%;
  height: 540px; }
  @media only screen and (max-width: 1199px) {
    .team__loop-wrapper {
      width: calc(100% - 80px);
      margin-right: 40px;
      margin-left: 40px; } }
  @media only screen and (max-width: 599px) {
    .team__loop-wrapper {
      width: calc(100% - 20px);
      height: 450px;
      margin-right: 10px;
      margin-left: 10px; } }

.team-slider__slide {
  display: flex;
  position: absolute;
  flex-wrap: wrap;
  width: 100%;
  transition: opacity 280ms 1ms;
  opacity: 0; }
  .team-slider__slide.is-active {
    transition: opacity 280ms 280ms;
    opacity: 1; }

.team-member {
  position: relative;
  margin: 10px;
  z-index: 1; }
  .team-member img {
    width: 100%;
    height: 250px;
    border-radius: 5px;
    -o-object-fit: cover;
       object-fit: cover; }
    @media only screen and (max-width: 599px) {
      .team-member img {
        height: 220px; } }
  .team-member:hover .tm__overlay {
    transition: 350ms ease;
    opacity: 1; }

.desktop .team-member {
  width: calc(20% - 20px); }
  .desktop .team-member:nth-child(1) {
    margin-left: calc(40% + 10px); }

.tablet-landscape .team-member {
  width: calc(25% - 20px); }
  .tablet-landscape .team-member:nth-child(1) {
    margin-left: calc(50% + 10px); }

.tablet-portrait .team-member {
  width: calc(33.3334% - 20px); }
  .tablet-portrait .team-member:nth-child(1) {
    margin-left: calc(66.6667% + 10px); }

.tm__body {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  height: 100%;
  padding: 0 20px; }

/**
 * Dots.
 */
.team-slider__dots {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 50px -2px -2px; }

.team-slider__dot {
  width: 6px;
  height: 6px;
  margin: 2px;
  transition: width 140ms, height 140ms;
  border-radius: 50%;
  background-color: #b2babd;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .team-slider__dot:hover {
    width: 8px;
    height: 8px; }
  .team-slider__dot.is-active {
    width: 10px;
    height: 10px; }

/**
 * Nav.
 */
.team-slider__nav {
  display: flex;
  position: absolute;
  top: calc(50% - 60px);
  right: -80px;
  left: -80px;
  justify-content: space-between;
  width: calc(100% + 160px);
  height: 0; }
  @media only screen and (max-width: 1300px) {
    .team-slider__nav {
      right: -50px;
      left: -50px;
      width: calc(100% + 100px); } }
  @media only screen and (max-width: 1199px) {
    .team-slider__nav {
      right: 0;
      left: 0;
      width: 100%; } }
  @media only screen and (max-width: 599px) {
    .team-slider__nav {
      position: static;
      justify-content: center;
      margin-top: 20px; } }

.team-slider__nav-prev {
  display: flex;
  align-items: center;
  height: 49px;
  padding-right: 30px;
  transition: 140ms;
  border-right: 2px solid #d1d8de;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  @media only screen and (max-width: 1199px) {
    .team-slider__nav-prev {
      padding-right: 20px;
      padding-left: 10px; } }
  @media only screen and (max-width: 599px) {
    .team-slider__nav-prev {
      border-right: 0; } }
  .team-slider__nav-prev::before {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: '\f104'; }
  .team-slider__nav-prev > .inline-icon {
    color: #019ddd;
    font-size: 18px; }
  .team-slider__nav-prev:hover {
    padding-right: 20px;
    padding-left: 10px; }

.team-slider__nav-next {
  display: flex;
  align-items: center;
  height: 49px;
  padding-left: 30px;
  transition: 140ms;
  border-left: 2px solid #d1d8de;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  @media only screen and (max-width: 1199px) {
    .team-slider__nav-next {
      padding-right: 10px;
      padding-left: 20px; } }
  @media only screen and (max-width: 599px) {
    .team-slider__nav-next {
      border-left: 0; } }
  .team-slider__nav-next::before {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: '\f105'; }
  .team-slider__nav-next > .inline-icon {
    color: #019ddd;
    font-size: 18px; }
  .team-slider__nav-next:hover {
    padding-right: 10px;
    padding-left: 20px; }

.phone .team-member {
  width: calc(50% - 20px); }

.tm__overlay {
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  height: 100%;
  transition: 350ms ease;
  border-radius: 5px;
  text-align: center;
  opacity: 0; }
  .tm__overlay .tm__function {
    color: #fff;
    font-size: 16px;
    line-height: 32px; }
  .tm__overlay .tm__name {
    margin-bottom: 25px;
    color: #fff;
    font-size: 20px;
    font-weight: bold;
    line-height: 25px; }
    @media only screen and (max-width: 899px) {
      .tm__overlay .tm__name {
        margin-bottom: 15px;
        font-size: 16px; } }
  .tm__overlay .tm__appointment-this,
  .tm__overlay .tm__appointment {
    display: block;
    margin-bottom: 20px;
    padding: 10px 20px;
    border-radius: 5px;
    background: #fff;
    color: #019ddd; }
    @media only screen and (min-width: 1200px) {
      .tm__overlay .tm__appointment-this,
      .tm__overlay .tm__appointment {
        transition: opacity 250ms ease;
        opacity: 0.8; }
        .tm__overlay .tm__appointment-this:hover,
        .tm__overlay .tm__appointment:hover {
          opacity: 1; } }
    @media only screen and (max-width: 899px) {
      .tm__overlay .tm__appointment-this,
      .tm__overlay .tm__appointment {
        padding: 3px 5px;
        font-size: 13px; } }

.treatments-teaser {
  background: linear-gradient(180deg, #f9fbfb 0%, #f2f4f5 100%); }
  .treatments-teaser .wrapper {
    width: 100%; }
    @media only screen and (max-width: 899px) {
      .treatments-teaser .wrapper {
        width: 90%; }
        .treatments-teaser .wrapper:nth-child(2) {
          width: 100%; } }

/**
 * Columns.
 */
.treatments-teaser__columns {
  display: flex;
  flex-wrap: wrap; }

.treatments-teaser__column {
  width: 50%; }
  @media only screen and (max-width: 899px) {
    .treatments-teaser__column {
      width: 100%; } }

.treatments-teaser__column--left {
  padding-top: 100px;
  padding-right: 135px;
  padding-bottom: 100px; }
  @media only screen and (max-width: 1199px) {
    .treatments-teaser__column--left {
      padding-right: 25px; } }
  @media only screen and (max-width: 899px) {
    .treatments-teaser__column--left {
      padding-right: 0;
      padding-left: 0 !important; } }

.treatments-teaser__column--right {
  padding-bottom: 100px;
  background-color: #fff; }
  @media only screen and (max-width: 899px) {
    .treatments-teaser__column--right {
      display: none; } }

/**
 * Title.
 */
.treatments-teaser__title {
  position: relative;
  max-width: 374px;
  margin-bottom: 50px;
  color: #001f46;
  font-size: 34px;
  font-weight: 700;
  line-height: 42px; }

/**
 * Category.
 */
.treatments-teaser__category {
  margin-bottom: 35px; }

.treatments-teaser__category-title {
  font-size: 17px;
  font-size: 1.7rem;
  line-height: 1.52941em;
  color: #001f46;
  font-weight: 600; }
  @media only screen and (max-width: 599px) {
    .treatments-teaser__category-title {
      margin-left: 23px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .treatments-teaser__category-title {
      margin-left: 30px; } }

/**
 * List.
 */
.treatment__list {
  display: flex;
  flex-wrap: wrap;
  margin: -10px -30px; }
  @media only screen and (max-width: 599px) {
    .treatment__list {
      margin: 10px 4px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .treatment__list {
      margin: 0; } }

.treatment__list-item {
  width: 50%;
  padding: 10px 30px; }
  @media only screen and (max-width: 599px) {
    .treatment__list-item {
      width: 100%;
      padding: 10px 20px; } }
  .treatment__list-item a {
    display: inline-block;
    position: relative;
    width: 100%;
    padding-bottom: 5px;
    border-bottom: 3px solid #d1d8de; }
    @media only screen and (max-width: 899px) {
      .treatment__list-item a::before, .treatment__list-item a::after {
        display: none; } }

/**
 * Treatment item.
 */
.treatment-item__image {
  height: 460px; }
  @media only screen and (max-width: 1199px) {
    .treatment-item__image {
      height: 400px; } }
  .treatment-item__image img {
    width: 100%;
    height: 100%; }

/**
 * Body.
 */
.treatment-item__body {
  margin-bottom: 20px;
  padding-top: 70px;
  padding-left: 70px; }

/**
 * Title.
 */
.treatment-item__title {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em;
  margin-bottom: 10px;
  color: #001f46;
  font-weight: bold; }

/**
 * Teaser.
 */
.treatment-item__teaser {
  margin-bottom: 30px; }

/**
 * CTA.
 */
.treatment-item__cta {
  display: flex;
  flex-wrap: wrap;
  margin: -3px; }
  .treatment-item__cta > a {
    margin: 3px; }

/**
 * Description.
 */
.treatment__description {
  display: flex;
  margin-top: 25px;
  padding-left: 70px; }

.treatment__company {
  margin-top: 1px;
  margin-right: 5px; }

.treatment__description-by {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 105px; }

.treatment__description-by-company {
  width: 100%;
  max-width: 145px; }

/*
 * Additional rules for this element
 */
.double-column + .treatments-teaser {
  margin-top: 120px; }

.contact-teaser + .treatments-teaser {
  margin-top: 90px; }
  @media only screen and (max-width: 899px) {
    .contact-teaser + .treatments-teaser {
      margin-top: 0; }
      .contact-teaser + .treatments-teaser .treatments-teaser__column {
        padding-top: 0; } }

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

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

/* ==========================================================================
   Color
   ========================================================================== */
/**
 * Color utility classes.
 */
/**
       * `color` black-100 color utility.
       */
.color-black-100 {
  color: black; }

/**
       * `background-color` black-100 color utility.
       */
.background-color-black-100 {
  background-color: black; }

/**
       * `color` white-100 color utility.
       */
.color-white-100 {
  color: white; }

/**
       * `background-color` white-100 color utility.
       */
.background-color-white-100 {
  background-color: white; }

/* ==========================================================================
   Object Fit
   ========================================================================== */
/**
 * Object fit.
 *
 * 1. Font family polyfill with (https://github.com/bfred-it/object-fit-images).
 */
/**
   * `object-fit` fill utility class.
   */
.fill {
  font-family: "object-fit: fill;";
  /* 1 */
  -o-object-fit: fill;
     object-fit: fill; }

/**
   * `object-fit` contain utility class.
   */
.contain {
  font-family: "object-fit: contain;";
  /* 1 */
  -o-object-fit: contain;
     object-fit: contain; }

/**
   * `object-fit` cover utility class.
   */
.cover {
  font-family: "object-fit: cover;";
  /* 1 */
  -o-object-fit: cover;
     object-fit: cover; }

/**
   * `object-fit` none utility class.
   */
.none {
  font-family: "object-fit: none;";
  /* 1 */
  -o-object-fit: none;
     object-fit: none; }

/**
   * `object-fit` scale-down utility class.
   */
.scale-down {
  font-family: "object-fit: scale-down;";
  /* 1 */
  -o-object-fit: scale-down;
     object-fit: scale-down; }

/* ==========================================================================
   Position
   ========================================================================== */
/**
 * Position utility class.
 */
.static {
  position: static; }

.relative {
  position: relative; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.sticky {
  position: -webkit-sticky;
  position: sticky; }

/* ==========================================================================
   Text
   ========================================================================== */
/**
 * Font family utility classes.
 */
.text-xs-default {
  font-family: "Source Sans Pro"; }

.text-sm-default {
  font-family: "Source Sans Pro"; }

.text-md-default {
  font-family: "Source Sans Pro"; }

.text-lg-default {
  font-family: "Source Sans Pro"; }

.text-xl-default {
  font-family: "Source Sans Pro"; }

/**
 * Text size utility classes.
 */
.text-xs-h1 {
  font-size: 32px;
  font-size: 3.2rem;
  line-height: 1.5625em; }

.text-xs-h2 {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.21429em; }

.text-xs-h3 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.20833em; }

.text-xs-h4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.45455em; }

.text-xs-h5 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em; }

.text-xs-h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.77778em; }

.text-xs-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2em; }

.text-sm-h1 {
  font-size: 32px;
  font-size: 3.2rem;
  line-height: 1.5625em; }

.text-sm-h2 {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.21429em; }

.text-sm-h3 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.20833em; }

.text-sm-h4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.45455em; }

.text-sm-h5 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em; }

.text-sm-h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.77778em; }

.text-sm-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2em; }

.text-md-h1 {
  font-size: 32px;
  font-size: 3.2rem;
  line-height: 1.5625em; }

.text-md-h2 {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.21429em; }

.text-md-h3 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.20833em; }

.text-md-h4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.45455em; }

.text-md-h5 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em; }

.text-md-h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.77778em; }

.text-md-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2em; }

.text-lg-h1 {
  font-size: 32px;
  font-size: 3.2rem;
  line-height: 1.5625em; }

.text-lg-h2 {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.21429em; }

.text-lg-h3 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.20833em; }

.text-lg-h4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.45455em; }

.text-lg-h5 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em; }

.text-lg-h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.77778em; }

.text-lg-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2em; }

.text-xl-h1 {
  font-size: 32px;
  font-size: 3.2rem;
  line-height: 1.5625em; }

.text-xl-h2 {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.21429em; }

.text-xl-h3 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.20833em; }

.text-xl-h4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.45455em; }

.text-xl-h5 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em; }

.text-xl-h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.77778em; }

.text-xl-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2em; }

/**
 * Text alignment utility classes.
 */
.text-xs-left {
  text-align: left; }

.text-xs-right {
  text-align: right; }

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

.text-sm-left {
  text-align: left; }

.text-sm-right {
  text-align: right; }

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

.text-md-left {
  text-align: left; }

.text-md-right {
  text-align: right; }

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

.text-lg-left {
  text-align: left; }

.text-lg-right {
  text-align: right; }

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

.text-xl-left {
  text-align: left; }

.text-xl-right {
  text-align: right; }

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

/**
 * Font weight utility classes.
 *
 * 1. Multiply looped integer by 100 for correct font weight value.
 */
.text-xs-100 {
  font-weight: 100; }

.text-xs-200 {
  font-weight: 200; }

.text-xs-300 {
  font-weight: 300; }

.text-xs-400 {
  font-weight: 400; }

.text-xs-500 {
  font-weight: 500; }

.text-xs-600 {
  font-weight: 600; }

.text-xs-700 {
  font-weight: 700; }

.text-xs-800 {
  font-weight: 800; }

.text-xs-900 {
  font-weight: 900; }

.text-sm-100 {
  font-weight: 100; }

.text-sm-200 {
  font-weight: 200; }

.text-sm-300 {
  font-weight: 300; }

.text-sm-400 {
  font-weight: 400; }

.text-sm-500 {
  font-weight: 500; }

.text-sm-600 {
  font-weight: 600; }

.text-sm-700 {
  font-weight: 700; }

.text-sm-800 {
  font-weight: 800; }

.text-sm-900 {
  font-weight: 900; }

.text-md-100 {
  font-weight: 100; }

.text-md-200 {
  font-weight: 200; }

.text-md-300 {
  font-weight: 300; }

.text-md-400 {
  font-weight: 400; }

.text-md-500 {
  font-weight: 500; }

.text-md-600 {
  font-weight: 600; }

.text-md-700 {
  font-weight: 700; }

.text-md-800 {
  font-weight: 800; }

.text-md-900 {
  font-weight: 900; }

.text-lg-100 {
  font-weight: 100; }

.text-lg-200 {
  font-weight: 200; }

.text-lg-300 {
  font-weight: 300; }

.text-lg-400 {
  font-weight: 400; }

.text-lg-500 {
  font-weight: 500; }

.text-lg-600 {
  font-weight: 600; }

.text-lg-700 {
  font-weight: 700; }

.text-lg-800 {
  font-weight: 800; }

.text-lg-900 {
  font-weight: 900; }

.text-xl-100 {
  font-weight: 100; }

.text-xl-200 {
  font-weight: 200; }

.text-xl-300 {
  font-weight: 300; }

.text-xl-400 {
  font-weight: 400; }

.text-xl-500 {
  font-weight: 500; }

.text-xl-600 {
  font-weight: 600; }

.text-xl-700 {
  font-weight: 700; }

.text-xl-800 {
  font-weight: 800; }

.text-xl-900 {
  font-weight: 900; }

/**
 * Text transform uitlity classes.
 */
.text-xs-capitalize {
  text-transform: capitalize; }

.text-xs-uppercase {
  text-transform: uppercase; }

.text-xs-lowercase {
  text-transform: lowercase; }

.text-xs-none {
  text-transform: none; }

.text-xs-full-width {
  text-transform: full-width; }

.text-sm-capitalize {
  text-transform: capitalize; }

.text-sm-uppercase {
  text-transform: uppercase; }

.text-sm-lowercase {
  text-transform: lowercase; }

.text-sm-none {
  text-transform: none; }

.text-sm-full-width {
  text-transform: full-width; }

.text-md-capitalize {
  text-transform: capitalize; }

.text-md-uppercase {
  text-transform: uppercase; }

.text-md-lowercase {
  text-transform: lowercase; }

.text-md-none {
  text-transform: none; }

.text-md-full-width {
  text-transform: full-width; }

.text-lg-capitalize {
  text-transform: capitalize; }

.text-lg-uppercase {
  text-transform: uppercase; }

.text-lg-lowercase {
  text-transform: lowercase; }

.text-lg-none {
  text-transform: none; }

.text-lg-full-width {
  text-transform: full-width; }

.text-xl-capitalize {
  text-transform: capitalize; }

.text-xl-uppercase {
  text-transform: uppercase; }

.text-xl-lowercase {
  text-transform: lowercase; }

.text-xl-none {
  text-transform: none; }

.text-xl-full-width {
  text-transform: full-width; }

/* ==========================================================================
   Vertical Rhythm
   ========================================================================== */
.vr-0 {
  margin-bottom: 0px; }

.vr-8 {
  margin-bottom: 8px; }

.vr-16 {
  margin-bottom: 16px; }

.vr-24 {
  margin-bottom: 24px; }

.vr-32 {
  margin-bottom: 32px; }

.vr-40 {
  margin-bottom: 40px; }

.vr-48 {
  margin-bottom: 48px; }

.vr-56 {
  margin-bottom: 56px; }

.vr-64 {
  margin-bottom: 64px; }

.vr-72 {
  margin-bottom: 72px; }

.vr-80 {
  margin-bottom: 80px; }

/* ==========================================================================
   Z-index
   ========================================================================== */
/**
 * Utility classes for manipulating stacking order in HTML.
 */
.z-index-0 {
  z-index: 0; }

.z-index-1 {
  z-index: 10; }

.z-index-2 {
  z-index: 20; }

.z-index-3 {
  z-index: 30; }

.z-index-4 {
  z-index: 40; }

.z-index-5 {
  z-index: 50; }

.z-index-6 {
  z-index: 60; }

.z-index-7 {
  z-index: 70; }

.z-index-8 {
  z-index: 80; }

.z-index-9 {
  z-index: 90; }

.z-index-10 {
  z-index: 100; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNldHRpbmdzL193cmFwcGVyLnNjc3MiLCJzZXR0aW5ncy9fdGhlbWUtc2V0dGluZ3Muc2NzcyIsInNldHRpbmdzL19jb2xvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplLmNzcyIsIm1haW4uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fY29yZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYW5pbWF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYXV0b2hlaWdodC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fbGF6eWxvYWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX3ZpZGVvLnNjc3MiLCJnZW5lcmljL19iYXNlLnNjc3MiLCJ0b29scy9fbWl4aW5zLnNjc3MiLCJzZXR0aW5ncy9fdHlwb2dyYXBoeS5zY3NzIiwidG9vbHMvX2Z1bmN0aW9ucy5zY3NzIiwiZ2VuZXJpYy9fcmVzZXQuc2NzcyIsIm9iamVjdHMvX2NvbnRhaW5lci5zY3NzIiwic2V0dGluZ3MvX2RlZmluaXRpb25zLnNjc3MiLCJvYmplY3RzL19jb250ZW50LWNvbnN0cmFpbnQuc2NzcyIsIm9iamVjdHMvX2ZsZXguc2NzcyIsIm9iamVjdHMvX3NlY3Rpb24uc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX2Ntcy1vdXRwdXQuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRhY3QtdGVhc2VyLnNjc3MiLCJjb21wb25lbnRzL19jb250ZW50LWZvcm0uc2NzcyIsImNvbXBvbmVudHMvX2RhdGVwaWNrZXIuc2NzcyIsImNvbXBvbmVudHMvX2RvdWJsZS1jb2x1bW4uc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fZ2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvX2dvb2dsZS1tYXBzLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX2xhbmd1YWdlLXN3aXRjaC5zY3NzIiwiY29tcG9uZW50cy9fb3BlbmluZy1ob3Vycy5zY3NzIiwiY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fc2VhcmNoLWZvcm0uc2NzcyIsImNvbXBvbmVudHMvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJjb21wb25lbnRzL19zbGlkZXNob3cuc2NzcyIsImNvbXBvbmVudHMvX3RlYW0uc2NzcyIsImNvbXBvbmVudHMvX3RyZWF0bWVudHMuc2NzcyIsInV0aWxpdGllcy9fYW5pbWF0aW9ucy5zY3NzIiwidXRpbGl0aWVzL19jb2xvci5zY3NzIiwidXRpbGl0aWVzL19vYmplY3QtZml0LnNjc3MiLCJ1dGlsaXRpZXMvX3Bvc2l0aW9uLnNjc3MiLCJ1dGlsaXRpZXMvX3RleHQuc2NzcyIsInV0aWxpdGllcy9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCJ1dGlsaXRpZXMvX3otaW5kZXguc2NzcyIsInNldHRpbmdzL196LWluZGV4LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7RUFDRSxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLGFBQVksRUFDYjs7QUFFRDtFQUNFLG1CQUFrQjtFQUNsQixZQUFXO0VBRVgsYUFBWSxFQUNiOztBQUVEO0VBQ0UsV0FBVSxFQUNYOztBQ25CRDs7R0FFRztBQUVIO0VBRUksZUFBYztFQUNkLGFBQVk7RUFDWixZQUFXO0VBQ1gsZUFBYztFQUNkLG9CQ2NxQjtFRGJyQixZQUFXLEVBQ1o7O0FBR0g7RUFFSSxlQUFjO0VBQ2QsYUFBWTtFQUNaLFlBQVc7RUFDWCxlQUFjO0VBQ2Qsb0JDa0JzQjtFRGpCdEIsWUFBVyxFQUNaOztBQUdIO0VBRUksZUFBYztF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LGtCRTlCK0I7RUZtQy9CLHNCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkN2Q1E7RUR3Q1Isa0JFOUIrQjtFRm1DL0IsdUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ3RDUTtFRHVDUixrQkU5QitCO0VGbUMvQix1QkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDckNRO0VEc0NSLGtCRTlCK0I7RUZtQy9CLHVCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkNwQ1E7RURxQ1IsZ0JFOUIrQjtFRm1DL0IsbUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ25DUTtFRG9DUixrQkU5QitCO0VGbUMvQix1QkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDbENPO0VEbUNQLGtCRTlCK0I7RUZtQy9CLGlCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkN4Q1E7RUR5Q1Isa0JFOUIrQjtFRm1DL0Isc0JBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ3ZDUTtFRHdDUixrQkU5QitCO0VGbUMvQix1QkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDdENRO0VEdUNSLGtCRTlCK0I7RUZtQy9CLHVCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkNyQ1E7RURzQ1Isa0JFOUIrQjtFRm1DL0IsdUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ3BDUTtFRHFDUixnQkU5QitCO0VGbUMvQixtQkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDbkNRO0VEb0NSLGtCRTlCK0I7RUZtQy9CLHVCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkNsQ087RURtQ1Asa0JFOUIrQjtFRm1DL0IsaUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ3hDUTtFRHlDUixrQkU5QitCO0VGbUMvQixzQkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDdkNRO0VEd0NSLGtCRTlCK0I7RUZtQy9CLHVCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkN0Q1E7RUR1Q1Isa0JFOUIrQjtFRm1DL0IsdUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ3JDUTtFRHNDUixrQkU5QitCO0VGbUMvQix1QkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDcENRO0VEcUNSLGdCRTlCK0I7RUZtQy9CLG1CQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkNuQ1E7RURvQ1Isa0JFOUIrQjtFRm1DL0IsdUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ2xDTztFRG1DUCxrQkU5QitCO0VGbUMvQixpQkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDeENRO0VEeUNSLGtCRTlCK0I7RUZtQy9CLHNCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkN2Q1E7RUR3Q1Isa0JFOUIrQjtFRm1DL0IsdUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ3RDUTtFRHVDUixrQkU5QitCO0VGbUMvQix1QkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDckNRO0VEc0NSLGtCRTlCK0I7RUZtQy9CLHVCQUFnRCxFZ0M5QjdDOztBQUZEO0VoQzBCRixnQkNwQ1E7RURxQ1IsZ0JFOUIrQjtFRm1DL0IsbUJBQWdELEVnQzlCN0M7O0FBRkQ7RWhDMEJGLGdCQ25DUTtFRG9DUixrQkU5QitCO0VGbUMvQix1QkFBZ0QsRWdDOUI3Qzs7QUFGRDtFaEMwQkYsZ0JDbENPO0VEbUNQLGtCRTlCK0I7RUZtQy9CLGlCQUFnRCxFZ0M5QjdDOztBQU1QOztHQUVHO0FBS0c7RUFDRSxpQkFGb0IsRUFHckI7O0FBRkQ7RUFDRSxrQkFGMkIsRUFHNUI7O0FBRkQ7RUFDRSxtQkFGbUMsRUFHcEM7O0FBRkQ7RUFDRSxpQkFGb0IsRUFHckI7O0FBRkQ7RUFDRSxrQkFGMkIsRUFHNUI7O0FBRkQ7RUFDRSxtQkFGbUMsRUFHcEM7O0FBRkQ7RUFDRSxpQkFGb0IsRUFHckI7O0FBRkQ7RUFDRSxrQkFGMkIsRUFHNUI7O0FBRkQ7RUFDRSxtQkFGbUMsRUFHcEM7O0FBRkQ7RUFDRSxpQkFGb0IsRUFHckI7O0FBRkQ7RUFDRSxrQkFGMkIsRUFHNUI7O0FBRkQ7RUFDRSxtQkFGbUMsRUFHcEM7O0FBRkQ7RUFDRSxpQkFGb0IsRUFHckI7O0FBRkQ7RUFDRSxrQkFGMkIsRUFHNUI7O0FBRkQ7RUFDRSxtQkFGbUMsRUFHcEM7O0FBTVA7Ozs7R0FJRztBQU9HO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQUZEO0VBQ0UsaUJBQWEsRUFDZDs7QUFGRDtFQUNFLGlCQUFhLEVBQ2Q7O0FBRkQ7RUFDRSxpQkFBYSxFQUNkOztBQU1QOztHQUVHO0FBS0c7RUFDRSwyQkFGMEIsRUFHM0I7O0FBRkQ7RUFDRSwwQkFGcUMsRUFHdEM7O0FBRkQ7RUFDRSwwQkFGZ0QsRUFHakQ7O0FBRkQ7RUFDRSxxQkFGc0QsRUFHdkQ7O0FBRkQ7RUFDRSwyQkFGa0UsRUFHbkU7O0FBRkQ7RUFDRSwyQkFGMEIsRUFHM0I7O0FBRkQ7RUFDRSwwQkFGcUMsRUFHdEM7O0FBRkQ7RUFDRSwwQkFGZ0QsRUFHakQ7O0FBRkQ7RUFDRSxxQkFGc0QsRUFHdkQ7O0FBRkQ7RUFDRSwyQkFGa0UsRUFHbkU7O0FBRkQ7RUFDRSwyQkFGMEIsRUFHM0I7O0FBRkQ7RUFDRSwwQkFGcUMsRUFHdEM7O0FBRkQ7RUFDRSwwQkFGZ0QsRUFHakQ7O0FBRkQ7RUFDRSxxQkFGc0QsRUFHdkQ7O0FBRkQ7RUFDRSwyQkFGa0UsRUFHbkU7O0FBRkQ7RUFDRSwyQkFGMEIsRUFHM0I7O0FBRkQ7RUFDRSwwQkFGcUMsRUFHdEM7O0FBRkQ7RUFDRSwwQkFGZ0QsRUFHakQ7O0FBRkQ7RUFDRSxxQkFGc0QsRUFHdkQ7O0FBRkQ7RUFDRSwyQkFGa0UsRUFHbkU7O0FBRkQ7RUFDRSwyQkFGMEIsRUFHM0I7O0FBRkQ7RUFDRSwwQkFGcUMsRUFHdEM7O0FBRkQ7RUFDRSwwQkFGZ0QsRUFHakQ7O0FBRkQ7RUFDRSxxQkFGc0QsRUFHdkQ7O0FBRkQ7RUFDRSwyQkFGa0UsRUFHbkU7O0FDN0VQOztnRkFFZ0Y7QUFLOUU7RUFDRSxtQkFBZSxFQUNoQjs7QUFGRDtFQUNFLG1CQUFlLEVBQ2hCOztBQUZEO0VBQ0Usb0JBQWUsRUFDaEI7O0FBRkQ7RUFDRSxvQkFBZSxFQUNoQjs7QUFGRDtFQUNFLG9CQUFlLEVBQ2hCOztBQUZEO0VBQ0Usb0JBQWUsRUFDaEI7O0FBRkQ7RUFDRSxvQkFBZSxFQUNoQjs7QUFGRDtFQUNFLG9CQUFlLEVBQ2hCOztBQUZEO0VBQ0Usb0JBQWUsRUFDaEI7O0FBRkQ7RUFDRSxvQkFBZSxFQUNoQjs7QUFGRDtFQUNFLG9CQUFlLEVBQ2hCOztBQ1RIOztnRkFFZ0Y7QUFFaEY7O0dBRUc7QUFHRDtFQUNFLFdDRkssRURHTjs7QUFGRDtFQUNFLFlDRE0sRURFUDs7QUFGRDtFQUNFLFlDQU0sRURDUDs7QUFGRDtFQUNFLFlDQ00sRURBUDs7QUFGRDtFQUNFLFlDRU0sRUREUDs7QUFGRDtFQUNFLFlDR00sRURGUDs7QUFGRDtFQUNFLFlDSU0sRURIUDs7QUFGRDtFQUNFLFlDS00sRURKUDs7QUFGRDtFQUNFLFlDTU0sRURMUDs7QUFGRDtFQUNFLFlDT00sRUROUDs7QUFGRDtFQUNFLGFDUU8sRURQUiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFdyYXBwZXJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi53cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4ud3JhcHBlci1sZyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIC8vbWF4LXdpZHRoOiAxNDUwcHg7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4uY29udGVudC1mb3JtIC53cmFwcGVyIHtcclxuICB3aWR0aDogOTAlO1xyXG59XHJcbiIsIi8qXHJcbiAqIExpbmUgY29sb3JzIGZvciBNdWx0aVNpdGVzXHJcbiAqL1xyXG5cclxuLmluY2x1ZGUtbGluZS0tYmx1ZSB7XHJcbiAgJjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICAgIGhlaWdodDogN3B4O1xyXG4gICAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcbi5pbmNsdWRlLWxpbmUtLWdyZWVuIHtcclxuICAmOmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgaGVpZ2h0OiA3cHg7XHJcbiAgICBtYXJnaW46IDMwcHggMDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbi0yMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcbi5pbmNsdWRlLWxpbmUtLWRhcmtncmVlbiB7XHJcbiAgJjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICAgIGhlaWdodDogN3B4O1xyXG4gICAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tNDAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBNZW51IGJhY2tncm91bmQgY29sb3JzXHJcbiAqL1xyXG5cclxuLm1lbnUtY29sb3ItLWJsdWUge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTEwMDtcclxufVxyXG5cclxuLm1lbnUtY29sb3ItLWdyZWVuIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tMjAwO1xyXG59XHJcblxyXG4ubWVudS1jb2xvci0tZGFya2dyZWVuIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tMjAwO1xyXG59XHJcblxyXG4vKlxyXG4gKiBTdGFuZGFyZCBidXR0b25zXHJcbiAqL1xyXG5cclxuLmJ1dHRvbi0tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG59XHJcblxyXG4uYnV0dG9uLS1ncmVlbiB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLTIwMDtcclxuXHJcbiAgLnNsaWRlc2hvd19fdGl0bGUge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG59XHJcblxyXG4uYnV0dG9uLS1kYXJrZ3JlZW4ge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbi00MDA7XHJcblxyXG4gIC5zbGlkZXNob3dfX3RpdGxlIHtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLmJ1dHRvbi1hbHQtLWJsdWUge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1ibHVlLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLmJ1dHRvbi1hbHQtLWdyZWVuIHtcclxuICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItZ3JlZW4tMjAwO1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JlZW4tMjAwO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbi0yMDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB9XHJcbn1cclxuXHJcbi5idXR0b24tYWx0LS1kYXJrZ3JlZW4ge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1ncmVlbi00MDA7XHJcbiAgY29sb3I6ICRjb2xvci1ncmVlbi00MDA7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLTQwMDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLypcclxuICogQXBwb2ludG1lbnQgYnV0dG9uc1xyXG4gKi9cclxuXHJcbi5hcHBvaW50bWVudC1idXR0b24tLWJsdWUge1xyXG4gIGJhY2tncm91bmQ6ICRncmFkaWVudC1ibHVlLTEwMDtcclxufVxyXG5cclxuLmFwcG9pbnRtZW50LWJ1dHRvbi0tZ3JlZW4ge1xyXG4gIGJhY2tncm91bmQ6ICRncmFkaWVudC1ncmVlbi0yMDA7XHJcbn1cclxuXHJcblxyXG4uYXBwb2ludG1lbnQtYnV0dG9uLS1kYXJrZ3JlZW4ge1xyXG4gIGJhY2tncm91bmQ6ICRncmFkaWVudC1ncmVlbi00MDA7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICogVHJlYXRtZW50IHRlYXNlciBpdGVtc1xyXG4gKi9cclxuXHJcbi5pbmNsdWRlLWxpc3RpdGVtLS1ibHVlIHtcclxuXHJcbiAgXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogLTNweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjgwbXMgMjgwbXM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAtNnB4O1xyXG4gICAgYm90dG9tOiAtNS41cHg7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMW1zO1xyXG4gICAgYm9yZGVyLXdpZHRoOiA0LjVweCAwIDQuNXB4IDZweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgJjpob3Zlcjo6YmVmb3JlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjgwbXMgMW1zO1xyXG4gIH1cclxuXHJcbiAgJjpob3Zlcjo6YWZ0ZXIge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIDI4MG1zO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDFtcztcclxuICAgIH1cclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMjgwbXM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaW5jbHVkZS1saXN0aXRlbS0tZ3JlZW4ge1xyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IC0zcHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDNweDtcclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDI4MG1zO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuLTIwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IC02cHg7XHJcbiAgICBib3R0b206IC01LjVweDtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAxbXM7XHJcbiAgICBib3JkZXItd2lkdGg6IDQuNXB4IDAgNC41cHggNnB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yLWdyZWVuLTIwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgJjpob3Zlcjo6YmVmb3JlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjgwbXMgMW1zO1xyXG4gIH1cclxuXHJcbiAgJjpob3Zlcjo6YWZ0ZXIge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIDI4MG1zO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDFtcztcclxuICAgIH1cclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMjgwbXM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaW5jbHVkZS1saXN0aXRlbS0tZGFya2dyZWVuIHtcclxuICAmOjpiZWZvcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAtM3B4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAzcHg7XHJcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAyODBtcztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmVlbi00MDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAtNnB4O1xyXG4gICAgYm90dG9tOiAtNS41cHg7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMW1zO1xyXG4gICAgYm9yZGVyLXdpZHRoOiA0LjVweCAwIDQuNXB4IDZweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvci1ncmVlbi00MDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICY6aG92ZXI6OmJlZm9yZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDFtcztcclxuICB9XHJcblxyXG4gICY6aG92ZXI6OmFmdGVyIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAyODBtcztcclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAxbXM7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIDI4MG1zO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qXHJcbiAqIExpbmsgY29sb3JzXHJcbiAqL1xyXG5cclxuLmNvbG9yLS1ibHVlIHtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG59XHJcblxyXG4uY29sb3ItLWdyZWVuIHtcclxuICBjb2xvcjogJGNvbG9yLWdyZWVuLTIwMDtcclxufVxyXG5cclxuLmNvbG9yLS1kYXJrZ3JlZW4ge1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JlZW4tNDAwO1xyXG59XHJcblxyXG4vKlxyXG4gKiBUZWFtIG92ZXJsYXkgaG92ZXJzXHJcbiAqL1xyXG5cclxuLm9wYWNpdHktLWJsdWUge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTEwMC0wNjtcclxufVxyXG5cclxuLm9wYWNpdHktLWdyZWVuIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tMjAwLTA2O1xyXG59XHJcblxyXG4ub3BhY2l0eS0tZGFya2dyZWVuIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tNDAwLTA2O1xyXG59XHJcblxyXG4vKlxyXG4gKiBNZW51IGl0ZW0gaG92ZXJzXHJcbiAqL1xyXG5cclxuLm1lbnUtaXRlbS1ob3Zlci0tYmx1ZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogLTVweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNHB4O1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1pdGVtLWhvdmVyLS1ncmVlbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogLTVweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNHB4O1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmVlbi0yMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtaXRlbS1ob3Zlci0tZGFya2dyZWVuIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAtNXB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuLTQwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1saW5lLS1ibHVlIHtcclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBoZWlnaHQ6IDZweDtcclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tbGluZS0tZ3JlZW4ge1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogNzBweDtcclxuICAgIGhlaWdodDogNnB4O1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMTQwbXM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMjAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tbGluZS0tZGFya2dyZWVuIHtcclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBoZWlnaHQ6IDZweDtcclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuLTQwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIHdpZHRoOiAxNTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENvbG9yXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBDb2xvciBtYXAuXHJcbiRjb2xvcnM6IChcclxuICAnYmxhY2snOiAoXHJcbiAgICAnMTAwJzogaHNsYSgwLCAwJSwgMCUsIDEpXHJcbiAgKSxcclxuICAnd2hpdGUnOiAoXHJcbiAgICAnMTAwJzogaHNsYSgwLCAwJSwgMTAwJSwgMSksXHJcbiAgKVxyXG4pO1xyXG5cclxuLy8gQ29sb3Igc2hvcnRoYW5kIHZhcmlhYmxlcy5cclxuJGNvbG9yLWJsYWNrLTEwMDogXHRcdCMwMDA7XHJcbiRjb2xvci13aGl0ZS0xMDA6IFx0XHQjZmZmO1xyXG5cclxuXHJcbi8vQmx1ZSBwYWxldHRlXHJcbiRncmFkaWVudC1ibHVlLTEwMDpcdFx0bGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzAxOWRkZCAwJSwgIzAwOTNjZiAxMDAlKTtcclxuXHJcbiRjb2xvci1ibHVlLTQwMDpcdFx0IzAwMWY0NjtcclxuJGNvbG9yLWJsdWUtMzAwOlx0XHQjMDAyNzRlO1xyXG4kY29sb3ItYmx1ZS0xMDA6XHRcdCMwMTlkZGQ7XHJcblxyXG4kY29sb3ItYmx1ZS0xMDAtMDY6XHRcdHJnYmEoMSwgMTU3LCAyMjEsIDAuNik7XHJcblxyXG5cclxuLy9HcmV5IHBhbGV0dGVcclxuJGNvbG9yLWdyZXktNDAwOiBcdFx0IzQ1NTQ2MjtcclxuJGNvbG9yLWdyZXktMzAwOlx0XHQjNjg4OWFhO1xyXG4kY29sb3ItZ3JleS0yMDA6XHRcdCNiMmJhYmQ7XHJcbiRjb2xvci1ncmV5LTEwMDogXHRcdCNkMWQ4ZGU7XHJcblxyXG4vL1JlZCBwYWxldHRlXHJcbiRjb2xvci1yZWQtMzAwOlx0XHRcdCNkMjAwMDA7XHJcblxyXG4vL0dyZWVuIHBhbGV0dGVcclxuJGNvbG9yLWdyZWVuLTIwMDpcdFx0IzFiYTU5YTtcclxuJGNvbG9yLWdyZWVuLTIwMC0wNjpcdHJnYmEoMjcsIDE2NSwgMTU0LCAwLjYpO1xyXG5cclxuJGdyYWRpZW50LWdyZWVuLTIwMDpcdGxpbmVhci1ncmFkaWVudCgxODBkZWcsICRjb2xvci1ncmVlbi0yMDAgMCUsICMxMjkyODggMTAwJSk7XHJcblxyXG4kY29sb3ItZ3JlZW4tNDAwOlx0XHQjMDA1ZjY5OyBcclxuJGNvbG9yLWdyZWVuLTQwMC0wNjpcdHJnYmEoMCwgOTUsIDEwNSwgMC42KTtcclxuXHJcbiRncmFkaWVudC1ncmVlbi00MDA6XHRsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAkY29sb3ItZ3JlZW4tNDAwIDAlLCAjMDA0ZTU2IDEwMCUpO1xyXG5cclxuJGNvbG9yLXByaW1hcnk6IFx0XHQkY29sb3ItYmx1ZS00MDA7XHJcbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIud3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG4ud3JhcHBlci1sZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG4uY29udGVudC1mb3JtIC53cmFwcGVyIHtcbiAgd2lkdGg6IDkwJTsgfVxuXG4vKlxyXG4gKiBMaW5lIGNvbG9ycyBmb3IgTXVsdGlTaXRlc1xyXG4gKi9cbi5pbmNsdWRlLWxpbmUtLWJsdWU6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IDdweDtcbiAgbWFyZ2luOiAzMHB4IDA7XG4gIGJhY2tncm91bmQ6ICMwMTlkZGQ7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbi5pbmNsdWRlLWxpbmUtLWdyZWVuOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIG1hcmdpbjogMzBweCAwO1xuICBiYWNrZ3JvdW5kOiAjMWJhNTlhO1xuICBjb250ZW50OiAnJzsgfVxuXG4uaW5jbHVkZS1saW5lLS1kYXJrZ3JlZW46YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IDdweDtcbiAgbWFyZ2luOiAzMHB4IDA7XG4gIGJhY2tncm91bmQ6ICMwMDVmNjk7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbi8qXHJcbiAqIE1lbnUgYmFja2dyb3VuZCBjb2xvcnNcclxuICovXG4ubWVudS1jb2xvci0tYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMwMTlkZGQ7IH1cblxuLm1lbnUtY29sb3ItLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogIzFiYTU5YTsgfVxuXG4ubWVudS1jb2xvci0tZGFya2dyZWVuIHtcbiAgYmFja2dyb3VuZDogIzFiYTU5YTsgfVxuXG4vKlxyXG4gKiBTdGFuZGFyZCBidXR0b25zXHJcbiAqL1xuLmJ1dHRvbi0tYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMwMTlkZGQ7IH1cblxuLmJ1dHRvbi0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjMWJhNTlhOyB9XG4gIC5idXR0b24tLWdyZWVuIC5zbGlkZXNob3dfX3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4uYnV0dG9uLS1kYXJrZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjMDA1ZjY5OyB9XG4gIC5idXR0b24tLWRhcmtncmVlbiAuc2xpZGVzaG93X190aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmJ1dHRvbi1hbHQtLWJsdWUge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDE5ZGRkO1xuICBjb2xvcjogIzAxOWRkZDsgfVxuICAuYnV0dG9uLWFsdC0tYmx1ZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzAxOWRkZDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4uYnV0dG9uLWFsdC0tZ3JlZW4ge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMWJhNTlhO1xuICBjb2xvcjogIzFiYTU5YTsgfVxuICAuYnV0dG9uLWFsdC0tZ3JlZW46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxYmE1OWE7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmJ1dHRvbi1hbHQtLWRhcmtncmVlbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDVmNjk7XG4gIGNvbG9yOiAjMDA1ZjY5OyB9XG4gIC5idXR0b24tYWx0LS1kYXJrZ3JlZW46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwMDVmNjk7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLypcclxuICogQXBwb2ludG1lbnQgYnV0dG9uc1xyXG4gKi9cbi5hcHBvaW50bWVudC1idXR0b24tLWJsdWUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDE5ZGRkIDAlLCAjMDA5M2NmIDEwMCUpOyB9XG5cbi5hcHBvaW50bWVudC1idXR0b24tLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzFiYTU5YSAwJSwgIzEyOTI4OCAxMDAlKTsgfVxuXG4uYXBwb2ludG1lbnQtYnV0dG9uLS1kYXJrZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDA1ZjY5IDAlLCAjMDA0ZTU2IDEwMCUpOyB9XG5cbi8qXHJcbiAqIFRyZWF0bWVudCB0ZWFzZXIgaXRlbXNcclxuICovXG4uaW5jbHVkZS1saXN0aXRlbS0tYmx1ZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTNweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogM3B4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAyODBtcztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxOWRkZDtcbiAgY29udGVudDogJyc7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWJsdWU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtNnB4O1xuICBib3R0b206IC01LjVweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAxbXM7XG4gIGJvcmRlci13aWR0aDogNC41cHggMCA0LjVweCA2cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAxOWRkZDtcbiAgY29udGVudDogJyc7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWJsdWU6aG92ZXI6OmJlZm9yZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAxbXM7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWJsdWU6aG92ZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAyODBtczsgfVxuXG4uaW5jbHVkZS1saXN0aXRlbS0tYmx1ZS5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAxbXM7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWJsdWUuaXMtYWN0aXZlOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMjgwbXM7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWdyZWVuOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtM3B4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAzcHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDI4MG1zO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWJhNTlhO1xuICBjb250ZW50OiAnJzsgfVxuXG4uaW5jbHVkZS1saXN0aXRlbS0tZ3JlZW46OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtNnB4O1xuICBib3R0b206IC01LjVweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAxbXM7XG4gIGJvcmRlci13aWR0aDogNC41cHggMCA0LjVweCA2cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzFiYTU5YTtcbiAgY29udGVudDogJyc7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWdyZWVuOmhvdmVyOjpiZWZvcmUge1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMjgwbXMgMW1zOyB9XG5cbi5pbmNsdWRlLWxpc3RpdGVtLS1ncmVlbjpob3Zlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIDI4MG1zOyB9XG5cbi5pbmNsdWRlLWxpc3RpdGVtLS1ncmVlbi5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAxbXM7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWdyZWVuLmlzLWFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIDI4MG1zOyB9XG5cbi5pbmNsdWRlLWxpc3RpdGVtLS1kYXJrZ3JlZW46OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0zcHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDNweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMjgwbXMgMjgwbXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDVmNjk7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbi5pbmNsdWRlLWxpc3RpdGVtLS1kYXJrZ3JlZW46OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtNnB4O1xuICBib3R0b206IC01LjVweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAxbXM7XG4gIGJvcmRlci13aWR0aDogNC41cHggMCA0LjVweCA2cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwNWY2OTtcbiAgY29udGVudDogJyc7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWRhcmtncmVlbjpob3Zlcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDFtczsgfVxuXG4uaW5jbHVkZS1saXN0aXRlbS0tZGFya2dyZWVuOmhvdmVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMjgwbXM7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWRhcmtncmVlbi5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAxbXM7IH1cblxuLmluY2x1ZGUtbGlzdGl0ZW0tLWRhcmtncmVlbi5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyAyODBtczsgfVxuXG4vKlxyXG4gKiBMaW5rIGNvbG9yc1xyXG4gKi9cbi5jb2xvci0tYmx1ZSB7XG4gIGNvbG9yOiAjMDE5ZGRkOyB9XG5cbi5jb2xvci0tZ3JlZW4ge1xuICBjb2xvcjogIzFiYTU5YTsgfVxuXG4uY29sb3ItLWRhcmtncmVlbiB7XG4gIGNvbG9yOiAjMDA1ZjY5OyB9XG5cbi8qXHJcbiAqIFRlYW0gb3ZlcmxheSBob3ZlcnNcclxuICovXG4ub3BhY2l0eS0tYmx1ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMSwgMTU3LCAyMjEsIDAuNik7IH1cblxuLm9wYWNpdHktLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNywgMTY1LCAxNTQsIDAuNik7IH1cblxuLm9wYWNpdHktLWRhcmtncmVlbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgOTUsIDEwNSwgMC42KTsgfVxuXG4vKlxyXG4gKiBNZW51IGl0ZW0gaG92ZXJzXHJcbiAqL1xuLm1lbnUtaXRlbS1ob3Zlci0tYmx1ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubWVudS1pdGVtLWhvdmVyLS1ibHVlOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTVweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxOWRkZDtcbiAgICBjb250ZW50OiAnJztcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5tZW51LWl0ZW0taG92ZXItLWJsdWU6aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1lbnUtaXRlbS1ob3Zlci0tZ3JlZW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1lbnUtaXRlbS1ob3Zlci0tZ3JlZW46YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtNXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWJhNTlhO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm1lbnUtaXRlbS1ob3Zlci0tZ3JlZW46aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1lbnUtaXRlbS1ob3Zlci0tZGFya2dyZWVuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5tZW51LWl0ZW0taG92ZXItLWRhcmtncmVlbjphZnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC01cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVmNjk7XG4gICAgY29udGVudDogJyc7XG4gICAgb3BhY2l0eTogMDsgfVxuICAubWVudS1pdGVtLWhvdmVyLS1kYXJrZ3JlZW46aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLmZvcm0tbGluZS0tYmx1ZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE5ZGRkO1xuICBjb250ZW50OiAnJzsgfVxuXG4uZm9ybS1saW5lLS1ibHVlLmlzLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cbiAgLmZvcm0tbGluZS0tYmx1ZS5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cblxuLmZvcm0tbGluZS0tZ3JlZW46OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDcwcHg7XG4gIGhlaWdodDogNnB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAxNDBtcztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFiYTU5YTtcbiAgY29udGVudDogJyc7IH1cblxuLmZvcm0tbGluZS0tZ3JlZW4uaXMtYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuICAuZm9ybS1saW5lLS1ncmVlbi5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cblxuLmZvcm0tbGluZS0tZGFya2dyZWVuOjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA3MHB4O1xuICBoZWlnaHQ6IDZweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMTQwbXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDVmNjk7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbi5mb3JtLWxpbmUtLWRhcmtncmVlbi5pcy1hY3RpdmUge1xuICBvcGFjaXR5OiAxOyB9XG4gIC5mb3JtLWxpbmUtLWRhcmtncmVlbi5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQ29yZVxuICovXG4ub3dsLWNhcm91c2VsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIHBvc2l0aW9uIHJlbGF0aXZlIGFuZCB6LWluZGV4IGZpeCB3ZWJraXQgcmVuZGVyaW5nIGZvbnRzIGlzc3VlICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4tWTtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAvKiBmaXggZmlyZWZveCBhbmltYXRpb24gZ2xpdGNoICovIH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIi5cIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAwOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZS1vdXRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogZml4IGZvciBmbGFzaGluZyBiYWNrZ3JvdW5kICovXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC13cmFwcGVyLFxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLW5hdi5kaXNhYmxlZCxcbiAgLm93bC1jYXJvdXNlbCAub3dsLWRvdHMuZGlzYWJsZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLW5hdiAub3dsLXByZXYsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1uZXh0LFxuICAub3dsLWNhcm91c2VsIC5vd2wtZG90IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLW5hdiBidXR0b24ub3dsLXByZXYsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgYnV0dG9uLm93bC1uZXh0LFxuICAub3dsLWNhcm91c2VsIGJ1dHRvbi5vd2wtZG90IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgZm9udDogaW5oZXJpdDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWxvYWRpbmcge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtaGlkZGVuIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtZHJhZyAub3dsLWl0ZW0ge1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ncmFiIHtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgY3Vyc29yOiBncmFiOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIC5vd2wtaXRlbSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIE5vIEpzICovXG4ubm8tanMgLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQW5pbWF0ZSBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAuYW5pbWF0ZWQge1xuICBhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtaW4ge1xuICB6LWluZGV4OiAwOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1vdXQge1xuICB6LWluZGV4OiAxOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLmZhZGVPdXQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dDsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gQXV0byBIZWlnaHQgUGx1Z2luXG4gKi9cbi5vd2wtaGVpZ2h0IHtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0OyB9XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIExhenkgTG9hZCBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAvKipcblx0XHRcdFRoaXMgaXMgaW50cm9kdWNlZCBkdWUgdG8gYSBidWcgaW4gSUUxMSB3aGVyZSBsYXp5IGxvYWRpbmcgY29tYmluZWQgd2l0aCBhdXRvaGVpZ2h0IHBsdWdpbiBjYXVzZXMgYSB3cm9uZ1xuXHRcdFx0Y2FsY3VsYXRpb24gb2YgdGhlIGhlaWdodCBvZiB0aGUgb3dsLWl0ZW0gdGhhdCBicmVha3MgcGFnZSBsYXlvdXRzXG5cdFx0ICovIH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5IHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenlbc3JjXj1cIlwiXSwgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5Om5vdChbc3JjXSkge1xuICAgIG1heC1oZWlnaHQ6IDA7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nLm93bC1sYXp5IHtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOyB9XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIFZpZGVvIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogODBweDtcbiAgd2lkdGg6IDgwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNDBweDtcbiAgbWFyZ2luLXRvcDogLTQwcHg7XG4gIGJhY2tncm91bmQ6IHVybChcIm93bC52aWRlby5wbGF5LnBuZ1wiKSBuby1yZXBlYXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5LWljb246aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMywgMS4zKTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXRuLFxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby10biB7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJhc2VcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGFuZCBwYWRkaW5nIGZyb20gZXZlcnkgc2VsZWN0b3IgaW5jbHVkaW5nIHRoZWlyXHJcbiAqIHBzdWVkbyBzZWxlY3RvcnMuXHJcbiAqXHJcbiAqIDEuIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3ggc2l6aW5nLlxyXG4gKiAgICAoY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlKS5cclxuICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIC8qIDEgKi8gfVxuXG4vKipcclxuICogU2V0IGhlaWdodCBvZiB0aGUgZG9jdW1lbnQgdG8gbWF4aXVtIHZpZXdwb3J0IGhlaWdodC5cclxuICpcclxuICogMS4gU2V0IHJvb3QgZm9udCBzaXplIHRvIDEwLlxyXG4gKi9cbmh0bWwge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBmb250LXNpemU6IDYyLjUlO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xuYm9keSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzQ1NTQ2MjtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCI7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBSZXNldFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEN1c3RvbSB1c2VyIGFnZW50IHJlc2V0cyBhbmQgb3ZlcnJpZGVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluXHJcbiAqIE5vcm1hbGl6ZSA4LjAuMC4gVGhpcyBtb3N0bHkgcmVtb3ZlcyBzb21lIGFubm95aW5nIG1hcmdpbiBhbmQgcGFkZGluZ1xyXG4gKiBkZWZhdWx0cywgYm9yZGVyIHJhZGl1cywgYW5kIG91dGxpbmVzLlxyXG4gKi9cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qKlxyXG4gKiAxLiBSZW1vdmUgYm9yZGVyIHJhZGl1cyBvbiBDaHJvbWUgNjIuMCsgb24gbWFjT1MuXHJcbiAqL1xuYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAvKiAxICovXG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuaHIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXHJcbiAqIDEuIFJlbW92ZSB3aGl0ZSBzcGFjZS5cclxuICovXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogMSAqLyB9XG5cbi8qKlxyXG4gKiAxLiBSZW1vdmUgaW5oZXJpdGVkIHVzZXIgYWdlbnQgYXBwZWFyYW5jZS5cclxuICovXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIDEgKi8gfVxuXG4vKipcclxuICogMS4gT25seSBhbGxvdyB2ZXJ0aWNhbCByZXNpemluZyB0byBwcmV2ZW50IHRoZSB0ZXh0YXJlYVxyXG4gKiAgICBmcm9tIG92ZXJmbG93aW5nIHRoZSBjb250YWluZXIuXHJcbiAqL1xudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxyXG4gKiAxLiBDb2xsYXBzZSBib3JkZXJzIHRvIHByZXZlbnQgZG91YmxlIHNpZGVkIGJvcmRlcnMuXHJcbiAqL1xudGFibGUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIC8qIDEgKi8gfVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRhaW5lclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFRoZSBjb250YWluZXIgb2JqZWN0IGNlbnRlcnMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuXHJcbiAqL1xuLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogY2FsYygxMDI0cHggKyA1MC42NjY2N3B4KTtcbiAgcGFkZGluZzogMCAyNS4zMzMzM3B4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGVudCBDb25zdHJhaW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogVGhlIGNvbnRlbnQgY29uc3RyYWludCBpcyBhIGNvbnN0cmFpbnQgZm9yIGFsbCB0aGUgY29udGVudCB3aXRoaW5cclxuICogdGhlIGRvY3VtZW50LiBJdCBjYW4gYmUgbWFuaXB1bGF0ZWQgYnkgQ1NTIG9yIEphdmFTY3JpcHQgd2l0aG91dFxyXG4gKiBpbmZsdWVuY2luZyB0aGUgYm9keS5cclxuICovXG4uY29udGVudC1jb25zdHJhaW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWFyZ2luLXRvcDogMTAwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRmxleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEV4YW1wbGUgb2YgYSBmbGV4IGJhc2VkIGNvbHVtbiBncmlkIGxheW91dCBpbiBwcmFjdGljZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cclxuICogPC9kaXY+XHJcbiAqXHJcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxyXG4gKiBvZiB0aGUgcm93IG9uIGFsbCBtZWRpYSwgYnV0IHdpbGwgY29udmVydCB0byBhIGZ1bGwgd2lkdGggY29sdW1uIG9uIHRoZVxyXG4gKiBzbWFsbCBgLXNtYCBicmVha3BvaW50IGFsaWFzLCB3aGljaCBpcyBtb2JpbGUgb25seS4gUmVmZXIgdG9cclxuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiAqL1xuLyoqXHJcbiAqIEZsZXggb2JqZWN0LlxyXG4gKlxyXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cclxuICovXG4uZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLyoqXHJcbiAqIEZsZXggb2JqZWN0IHdpdGggYSBjb2x1bW4gYmFzZWQgbGF5b3V0IHN5c3RlbS5cclxuICovXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbjogMCAtMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICogQm94LCB0aGUgaW5zaWRlIG9mIGEgY29sdW1uLlxyXG4gKi9cbi5ib3gge1xuICBmbGV4OiAxOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMyBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTMge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDQgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy00IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtNSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNiBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTYge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDcgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy03IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1OC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtOCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTkge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDc1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEwIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtMTAge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTEgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy0xMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOTEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMiBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTEyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhzLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1mbGV4LXN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1mbGV4LWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhzLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhzLXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteHMtY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14cy1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14cy1zcGFjZS1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteHMtc3BhY2UtZXZlbmx5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5ibGVlZC14cy1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qKlxyXG4gICAgICAgKiBCbGVlZCByaWdodCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXhzLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGZpcnN0IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICovXG4uZmlyc3QteHMge1xuICBvcmRlcjogLTE7IH1cblxuLyoqXHJcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ubGFzdC14cyB7XG4gIG9yZGVyOiAxOyB9XG5cbi8qKlxyXG4gICAgICogUmV2ZXJzZSBvcmRlciBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLnJldmVyc2UteHMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDIgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS0yIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAzIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tMyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMjUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXNtLTQge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA0IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1zbS00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDUgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS01IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA0MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA2IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tNiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXNtLTcge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDU4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA3IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1zbS03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDggZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS04IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA5IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tOSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNzUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS0xMCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogODMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEwIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1zbS0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXNtLTExIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA5MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTEgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tMTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYHN0cmV0Y2hgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tc20tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgY2VudGVyYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXNtLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXNtLWZsZXgtc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtZW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXNtLWZsZXgtZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgYmFzZWxpbmVgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tc20tYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktc20tc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBjZW50ZXJgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1zbS1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYmV0d2VlbmAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXNtLXNwYWNlLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXNtLXNwYWNlLWFyb3VuZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1ldmVubHlgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1zbS1zcGFjZS1ldmVubHkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXNtLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQtc20tcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5maXJzdC1zbSB7XG4gIG9yZGVyOiAtMTsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5sYXN0LXNtIHtcbiAgb3JkZXI6IDE7IH1cblxuLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ucmV2ZXJzZS1zbSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC0xIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAyIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC0zIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMyBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA0IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbWQtNCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDQgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LW1kLTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTUge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDQxLjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA1IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC02IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1MCU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA3IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbWQtNyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDcgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LW1kLTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTgge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA4IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC05IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA3NSU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTEwIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA4My4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTAgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LW1kLTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDExIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbWQtMTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDkxLjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC0xMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgc3RyZXRjaGAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1tZC1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBjZW50ZXJgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tbWQtY2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtc3RhcnRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tbWQtZmxleC1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1lbmRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tbWQtZmxleC1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBiYXNlbGluZWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1tZC1iYXNlbGluZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3RhcnRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1tZC1zdGFydCB7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYGNlbnRlcmAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LW1kLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1iZXR3ZWVuYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbWQtc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYXJvdW5kYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbWQtc3BhY2UtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWV2ZW5seWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LW1kLXNwYWNlLWV2ZW5seSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG5cbi8qKlxyXG4gICAgICAgKiBCbGVlZCBsZWZ0IGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQtbWQtbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgcmlnaHQgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5ibGVlZC1tZC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLyoqXHJcbiAgICAgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLmZpcnN0LW1kIHtcbiAgb3JkZXI6IC0xOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgbGFzdCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLmxhc3QtbWQge1xuICBvcmRlcjogMTsgfVxuXG4vKipcclxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5yZXZlcnNlLW1kIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTMge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDQgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1sZy00IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbGctNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctNSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNiBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTYge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDcgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1sZy03IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1OC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbGctNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctOCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTkge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDc1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEwIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctMTAge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbGctMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTEgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1sZy0xMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOTEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMiBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTEyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLWxnLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1sZy1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1sZy1mbGV4LXN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1sZy1mbGV4LWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLWxnLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LWxnLXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbGctY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1sZy1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1sZy1zcGFjZS1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbGctc3BhY2UtZXZlbmx5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5ibGVlZC1sZy1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qKlxyXG4gICAgICAgKiBCbGVlZCByaWdodCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLWxnLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGZpcnN0IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICovXG4uZmlyc3QtbGcge1xuICBvcmRlcjogLTE7IH1cblxuLyoqXHJcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ubGFzdC1sZyB7XG4gIG9yZGVyOiAxOyB9XG5cbi8qKlxyXG4gICAgICogUmV2ZXJzZSBvcmRlciBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLnJldmVyc2UtbGcge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDIgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC0yIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMiBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAzIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtMyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMjUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhsLTQge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA0IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14bC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDUgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC01IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA0MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA2IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtNiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhsLTcge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDU4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA3IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14bC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDggZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC04IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA5IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtOSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNzUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC0xMCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogODMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEwIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14bC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhsLTExIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA5MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTEgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtMTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYHN0cmV0Y2hgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teGwtc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgY2VudGVyYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhsLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhsLWZsZXgtc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtZW5kYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhsLWZsZXgtZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgYmFzZWxpbmVgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teGwtYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteGwtc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBjZW50ZXJgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14bC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYmV0d2VlbmAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhsLXNwYWNlLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhsLXNwYWNlLWFyb3VuZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1ldmVubHlgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14bC1zcGFjZS1ldmVubHkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXhsLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQteGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5maXJzdC14bCB7XG4gIG9yZGVyOiAtMTsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5sYXN0LXhsIHtcbiAgb3JkZXI6IDE7IH1cblxuLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ucmV2ZXJzZS14bCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTZWN0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogTWFpbiBlbGVtZW50LlxyXG4gKi9cbi5icmVhZGNydW1icyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxODBweDsgfVxuICAuYnJlYWRjcnVtYnMgLndyYXBwZXIge1xuICAgIHdpZHRoOiA5MCU7IH1cbiAgLmJyZWFkY3J1bWJzIHN2ZyB7XG4gICAgbWFyZ2luOiAwIDNweDtcbiAgICBjb2xvcjogIzAxOWRkZDtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIG1hcmdpbjogMCA1cHg7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpudGgtY2hpbGQoMSkge1xuICAgICAgbWFyZ2luOiAwIDVweCAwIDA7IH1cbiAgLmJyZWFkY3J1bWJzIHNwYW46bnRoLWxhc3QtY2hpbGQoMykge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9XG5cbi53cmFwcGVyLWxnICsgLmJyZWFkY3J1bWJzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLyoqXHJcbiAqIFByaW1hcnkuXHJcbiAqL1xuLmJ1dHRvbi1ibHVlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE5cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXM7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogIzAxOWRkZDtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi1ibHVlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4YmM0OyB9XG5cbi8qKlxyXG4gKiBUcmFuc3BhcmVudCB3aXRoIGJsYWNrIGJvcmRlci5cclxuICovXG4uYnV0dG9uLXRyYW5zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA5cHggMTlweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAuYnV0dG9uLXRyYW5zOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENNUyBPdXRwdXRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBFdmVyeSBjb25jZWl2YWJsZSBIVE1MIGVsZW1lbnQgd2l0aGluIGEgYC5jbXMtb3V0cHV0YCB3cmFwcGVyLlxyXG4gKlxyXG4gKiAxLiBFeGNsdWRlIGxhc3QgY2hpbGRzLlxyXG4gKi9cbi5jbXMtb3V0cHV0ID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAvKiAxICovIH1cblxuLmNtcy1vdXRwdXQgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxuLmNtcy1vdXRwdXQgb2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7IH1cblxuLmNtcy1vdXRwdXQgcCA+IGEge1xuICBjb2xvcjogIzAwMDsgfVxuICAuY21zLW91dHB1dCBwID4gYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLmNvbnRhY3QtdGVhc2VyIHtcbiAgbWFyZ2luOiA3NXB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jb250YWN0LXRlYXNlciB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAyMHB4IDAgMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDFkOGRlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQ4ZGU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5jb250YWN0LXRlYXNlciAud3JhcHBlciB7XG4gICAgICB3aWR0aDogOTAlOyB9IH1cbiAgLmNvbnRhY3QtdGVhc2VyIC5jdF9fdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDcxcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjJweDtcbiAgICBjb2xvcjogIzAwMWY0NjtcbiAgICBmb250LXNpemU6IDM0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDQycHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuY29udGFjdC10ZWFzZXIgLmN0X190aXRsZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4OyB9IH1cbiAgLmNvbnRhY3QtdGVhc2VyIC5jdF9fY29sdW1uIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxMHB4KTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC5jb250YWN0LXRlYXNlciAuY3RfX2NvbHVtbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAuY29udGFjdC10ZWFzZXIgLmN0X19jb2x1bW4ge1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzM0JSAtIDIwcHgpOyB9IH1cblxuLmN0X193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuY3RfX3dyYXBwZXIge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5jdF9fd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH0gfVxuXG4uY3RfX21hcHMge1xuICBtYXJnaW4tdG9wOiA3NXB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jdF9fbWFwcyB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAuY3RfX21hcHMgaWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jdF9fbWFwcyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAgIC5jdF9fbWFwcyBpZnJhbWUge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMjUwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmN0X19tYXBzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jdF9fbWFwcy5jdF9fY29sdW1uIHtcbiAgICAgIHdpZHRoOiAyNTZweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMzBweDsgfSB9XG4gIC5jdF9fbWFwcyBpZnJhbWUge1xuICAgIGhlaWdodDogMjUwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLmN0X19tYXBzIGlmcmFtZSB7XG4gICAgICAgIHdpZHRoOiAyNTZweDsgfSB9XG5cbi5jdF9fdGl0bGUtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jdF9fdGl0bGUtY29udGVudCAuY3RfX3RvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTJweDtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAgIC5jdF9fdGl0bGUtY29udGVudCAuY3RfX3RvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3RfX3RpdGxlLWNvbnRlbnQgLmN0X190b2dnbGUtYWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZTsgfVxuXG4uY3RfX2xlZnQsXG4uY3RfX3JpZ2h0IHtcbiAgcGFkZGluZy10b3A6IDY4cHg7XG4gIGNvbG9yOiAjNDU1NDYyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY3RfX2xlZnQsXG4gICAgLmN0X19yaWdodCB7XG4gICAgICBwYWRkaW5nLXRvcDogMzBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jdF9fbGVmdCxcbiAgICAuY3RfX3JpZ2h0IHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuLmN0X19lZGl0b3ItbGVmdCBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjMDE5ZGRkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uY3RfX2VkaXRvci1sZWZ0IC5idXR0b24ge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jdF9fZWRpdG9yLWxlZnQgLmJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDE1cHg7IH0gfVxuICAuY3RfX2VkaXRvci1sZWZ0IC5idXR0b246OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBjb250ZW50OiAnXFxmNTQwJzsgfVxuICAuY3RfX2VkaXRvci1sZWZ0IC5idXR0b24gc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLmN0X19hcHBvaW50bWVudCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXM7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTMpOyB9XG4gIC5jdF9fYXBwb2ludG1lbnQ6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzU7IH1cblxuLypcclxuICogQWRkaXRpb25hbCBydWxlcyBmb3IgdGhpcyBlbGVtZW50XHJcbiAqL1xuLmRvdWJsZS1jb2x1bW4gKyAuY29udGFjdC10ZWFzZXIge1xuICBtYXJnaW46IC02MHB4IDAgNzVweDsgfVxuXG4uYmFja2dyb3VuZC1jb2xvci1ncmV5ICsgLmNvbnRhY3QtdGVhc2VyIHtcbiAgbWFyZ2luLXRvcDogNjVweDsgfVxuXG4uY3RfX2VsZW1lbnQtaXMtYWN0aXZlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jb250ZW50LWZvcm0ge1xuICBwYWRkaW5nOiAxMzBweCAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERhdGVwaWNrZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51aS1kYXRlcGlja2VyIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWRlZmF1bHQge1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1zdGF0ZS1ob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1pbjsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChcImJvbGRcIik7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoXCJib2xkXCIpOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1jb3JuZXItYWxsOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktY29ybmVyLWFsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1pbjtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFJlZ3VsYXJcIjtcbiAgY29udGVudDogJ1xcZjEwNSc7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldjo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUmVndWxhclwiO1xuICBjb250ZW50OiAnXFxmMTA0JzsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktY29ybmVyLWFsbCAudWktaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC51aS1zdGF0ZS1ob3ZlciB7XG4gIHJpZ2h0OiAycHg7IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi51aS1zdGF0ZS1ob3ZlciB7XG4gIGxlZnQ6IDJweDsgfVxuXG4udWktZGF0ZXBpY2tlciAudWktY29ybmVyLWFsbC51aS1zdGF0ZS1ob3ZlciB7XG4gIHRvcDogMnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47IH1cblxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4taGVpZ2h0OiAyNXB4O1xuICBtYXJnaW46IDFweCA0cHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KFwibGlnaHRcIik7XG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICBhcHBlYXJhbmNlOiBtZW51bGlzdDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5kb3VibGUtY29sdW1uLmJhY2tncm91bmQtY29sb3ItZ3JleSB7XG4gICAgcGFkZGluZzogMDsgfSB9XG5cbi5kb3VibGUtY29sdW1uIC53cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRvdWJsZS1jb2x1bW4gLndyYXBwZXIge1xuICAgICAgd2lkdGg6IDkwJTsgfSB9XG5cbi5kb3VibGUtY29sdW1uIC5idXR0b24tdHJhbnMge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi5kY19fY29sdW1uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDglO1xuICBwYWRkaW5nOiAyMHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5kY19fY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmRjX19jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1JTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmRjX19jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9IH1cbiAgLmRjX19jb2x1bW4gLmRjX19jb2x1bW4tdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZGNfX2NvbHVtbiAuZGNfX2NvbHVtbi10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAuZGNfX2NvbHVtbiAuZGNfX3RpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICMwMDFmNDY7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmRjX19jb2x1bW4gLmRjX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5kY19fY29sdW1uIC5kY19fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDM1cHg7IH0gfVxuXG4uZGNfX2VkaXRvciB7XG4gIGNvbG9yOiAjNDU1NDYyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG4gIC5kY19fZWRpdG9yIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cbiAgLmRjX19lZGl0b3IgLmJ1dHRvbi1wYXJraW5nIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZGNfX2VkaXRvciAuYnV0dG9uLXBhcmtpbmcge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7IH0gfVxuICAgIC5kY19fZWRpdG9yIC5idXR0b24tcGFya2luZzo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgY29udGVudDogJ1xcZjU0MCc7IH1cbiAgICAuZGNfX2VkaXRvciAuYnV0dG9uLXBhcmtpbmcgc3ZnIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuZGNfX2VkaXRvciB1bCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgIC5kY19fZWRpdG9yIHVsIGxpIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICBjb2xvcjogIzAxOWRkZDsgfVxuICAgIC5kY19fZWRpdG9yIHVsIGxpOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgbWFyZ2luOiAwIDI1cHggMCAtMTVweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgRnJlZSc7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgY29udGVudDogJ1xcZjAwYyc7IH1cblxuLmRjX19sZWZ0IC5kY19fZWRpdG9yIGltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6Y292ZXInO1xuICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmRjX19sZWZ0IC5kY19fZWRpdG9yIGltZyB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyB9IH1cblxuLmRjX19sZWZ0IHRhYmxlIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAuZGNfX2xlZnQgdGFibGUgdGQge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuZGNfX2xlZnQgdGFibGUgdGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDk5LjklO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG5cbi5kY19fcmlnaHQgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDpjb3Zlcic7XG4gIG9iamVjdC1maXQ6IGNvdmVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZGNfX3JpZ2h0IGltZyB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyB9IH1cblxuLmRjX19yaWdodCAuZGNfX3RpdGxlIHtcbiAgd2lkdGg6IDM0MHB4OyB9XG5cbi5kY19fcmlnaHQgdGFibGUge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcbiAgcGFkZGluZzogMTUwcHggMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y5ZmJmYiAwJSwgI2YyZjRmNSAxMDAlKTsgfVxuXG4ud3JhcHBlci1sZyArIC5kb3VibGUtY29sdW1uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAudHJlYXRtZW50LXRlYXNlcnMtY29udGVudCAuZGNfX3JpZ2h0IHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi5oZWFkZXIgKyAuZGVmYXVsdC1jb250ZW50IC5kZWZhdWx0LWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuaGVhZGVyICsgLmRlZmF1bHQtY29udGVudCAuZGVmYXVsdC1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7IH0gfVxuICAuaGVhZGVyICsgLmRlZmF1bHQtY29udGVudCAuZGVmYXVsdC1jb250ZW50IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmhlYWRlciArIC5kZWZhdWx0LWNvbnRlbnQgLmRlZmF1bHQtY29udGVudCBpbWcge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAyMDBweDsgfSB9XG4gIC5oZWFkZXIgKyAuZGVmYXVsdC1jb250ZW50IC5kZWZhdWx0LWNvbnRlbnQgLmRjX19jb2x1bW4ge1xuICAgIHdpZHRoOiA0NSU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuaGVhZGVyICsgLmRlZmF1bHQtY29udGVudCAuZGVmYXVsdC1jb250ZW50IC5kY19fY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlciArIC5kZWZhdWx0LWNvbnRlbnQgLmRlZmF1bHQtY29udGVudCAuZGNfX3JpZ2h0IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC50ZWFtICsgLmRvdWJsZS1jb2x1bW4gLndyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnRlYW0gKyAuZG91YmxlLWNvbHVtbiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRlYW0gKyAuZG91YmxlLWNvbHVtbiBpbWcge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50ZWFtICsgLmRvdWJsZS1jb2x1bW4gaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IC0yMHB4OyB9IH1cblxuLnRlYW0gKyAuZG91YmxlLWNvbHVtbiAuZGNfX2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi50ZWFtICsgLmRvdWJsZS1jb2x1bW4gLmRjX19jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZWFtICsgLmRvdWJsZS1jb2x1bW4gLmRjX19jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXJnaW46IGF1dG87IH0gfVxuXG4uZGNfX3RpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzAwMWY0NjtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5kY19fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRjX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDM1cHg7IH0gfVxuXG4uZGVmYXVsdCB7XG4gIHdpZHRoOiA5MCU7XG4gIG1heC13aWR0aDogNjUwcHg7XG4gIG1hcmdpbjogNDBweCBhdXRvIDgwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuZGVmYXVsdCB7XG4gICAgICBtYXJnaW46IDQwcHggYXV0byAxMjBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kZWZhdWx0ICsgLmNvbnRhY3QtdGVhc2VyIHtcbiAgICBtYXJnaW46IC01MHB4IDAgNzVweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLmRvdWJsZS1jb2x1bW4gKyAuYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcbiAgICBwYWRkaW5nOiAxMjBweCAwICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2xpZGVzaG93ICsgLmRvdWJsZS1jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAxMDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnNsaWRlc2hvdyArIC5kb3VibGUtY29sdW1uIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuXG4uZm9vdGVyIHtcbiAgcGFkZGluZzogNTBweCAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDhkZTtcbiAgY29sb3I6ICM0NTU0NjI7IH1cbiAgLmZvb3RlciAud3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5mb290ZXIgLndyYXBwZXIge1xuICAgICAgICB3aWR0aDogOTAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXIgLmZfX2NvbHVtbiB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAyMHB4IGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAuZm9vdGVyIC5mX19jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmZvb3RlciAuZl9fY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgd2lkdGg6IDU1JTsgfVxuICAuZm9vdGVyIC5mX19jb2x1bW46bnRoLWNoaWxkKDMpIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAyMCU7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuZm9vdGVyIC5mX19jb2x1bW46bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuICAuZm9vdGVyIC5mX19sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5mb290ZXIgLmZfX2xvZ28gaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7IH1cbiAgICAuZm9vdGVyIC5mX19sb2dvOm50aC1jaGlsZCgxKSBpbWcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgLmZvb3RlciAuZl9fbG9nbzpudGgtY2hpbGQoMikgaW1nLCAuZm9vdGVyIC5mX19sb2dvOm50aC1jaGlsZCgzKSBpbWcge1xuICAgICAgbWF4LWhlaWdodDogMzBweDsgfVxuICAuZm9vdGVyIC5mX19sb2dvLXRleHQge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZm9vdGVyIC5mX19sb2dvLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmZvb3Rlcl9fbW9iaWxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiAwO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgd2lkdGg6IDk2JTtcbiAgaGVpZ2h0OiA2MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYm94LXNoYWRvdzogMCAwIDEzcHggMCByZ2JhKDAsIDAsIDAsIDAuMjMpO1xuICB6LWluZGV4OiA0MDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmZvb3Rlcl9fbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuZm9vdGVyX19tb2JpbGUgLmZtX19jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2QxZDhkZTtcbiAgICBjb2xvcjogIzAwMWY0NjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmZvb3Rlcl9fbW9iaWxlIC5mbV9fY29sdW1uIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIGNvbG9yOiAjMDE5ZGRkO1xuICAgICAgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLmZvb3Rlcl9fbW9iaWxlIC5mbV9fY29sdW1uOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBHZm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm9ybV9fc3dpdGNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IC0yMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtX19zd2l0Y2gtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC1zaXplOiAzLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIzNTI5ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogY2FsYygxMDAlIC8gMyAtIDQwcHgpO1xuICBtYXJnaW46IDIwcHggMjBweCA5MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcbiAgY29sb3I6ICMwMDI3NGU7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIG9wYWNpdHk6IDAuMjY7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZm9ybV9fc3dpdGNoLWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41NDU0NWVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfSB9XG5cbi5mb3JtX19pdGVtIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAuZm9ybV9faXRlbS5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuZm9ybV9faXRlbTpudGgtY2hpbGQoMSkgLmdmb3JtX2ludHJvLXRleHQge1xuICAgICAgd2lkdGg6IDY2LjY2NjclOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5mb3JtX19pdGVtOm50aC1jaGlsZCgyKSAuZ2Zvcm1faW50cm8tdGV4dCB7XG4gICAgICB3aWR0aDogNjYuNjY2NyU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuZm9ybV9faXRlbTpudGgtY2hpbGQoMykgLmdmb3JtX2ludHJvLXRleHQge1xuICAgICAgd2lkdGg6IDY2LjY2NjclO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbi8qKlxyXG4gKiBGb3JtIGZpZWxkLlxyXG4gKi9cbi5nZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAuZ2ZpZWxkLmhpZGRlbl9sYWJlbCA+IC5nZmllbGRfbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmdmaWVsZC5oaWRkZW5fbGFiZWwgPiAuZ2lucHV0X2NvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmdmaWVsZCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG5cbi8qKlxyXG4gKiBIVE1MLlxyXG4gKi9cbi5nZm9ybV9odG1sIHAge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIC5nZm9ybV9odG1sIHA6bnRoLWxhc3QtY2hpbGQoMSkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyoqXHJcbiAqIEhpZGUgc2VjdGlvbi5cclxuICovXG4uZ2Zvcm1faGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXHJcbiAqIEJvZHkuXHJcbiAqL1xuLmdmb3JtX2JvZHkge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi8qKlxyXG4gKiBDb2x1bW5zLlxyXG4gKi9cbi5nZm9ybV9jb2x1bW5zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IC0zMHB4OyB9XG5cbi5nZm9ybV9jb2x1bW4ge1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAzMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZ2Zvcm1fY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIFNlY3Rpb24uXHJcbiAqL1xuLmdzZWN0aW9uX3RpdGxlIHtcbiAgY29sb3I6ICM0NTU0NjI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4vKipcclxuICogRm9ybSBsYWJlbC5cclxuICovXG4uZ2ZpZWxkX2xhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTgwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmdmaWVsZF9sYWJlbCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qKlxyXG4gKiBDb250YWluZXIuXHJcbiAqL1xuLmdpbnB1dF9jb250YWluZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTgwcHgpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZ2lucHV0X2NvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qKlxyXG4gKiBDb250YWluZXIgW3NlbGVjdF1cclxuICovXG4uZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmdpbnB1dF9jb250YWluZXJfc2VsZWN0IC5nZmllbGRfc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmNhY2Y7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuICAuZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3Q6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFNvbGlkXCI7XG4gICAgY29udGVudDogJ1xcZjBkNyc7IH1cbiAgLmdpbnB1dF9jb250YWluZXJfc2VsZWN0ID4gLmlubGluZS1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMXB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDsgfVxuXG4vKipcclxuICogSW5wdXQgZmllbGRzLlxyXG4gKi9cbi5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9dGV4dF0sXG4uZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPW1haWxdLFxuLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1lbWFpbF0sXG4uZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPXBob25lXSxcbi5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9dGVsXSxcbi5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhLFxuLmdpbnB1dF9jb250YWluZXIgLmdmb3JtX191cGxvYWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDExcHggMTVweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmN2Y5O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpOyB9XG5cbnNlbGVjdDo6bXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLyogSUUgOCAqL1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gIC8qIElFIDUtNyAqL1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gIC8qIEdvb2QgYnJvd3NlcnMgOikgKi9cbiAgb3BhY2l0eTogMDsgfVxuXG4vKipcclxuICogUmFkaW9idXR0b24uXHJcbiAqL1xuLmdmaWVsZF9yYWRpbyA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9cmFkaW9dLFxuLmdmaWVsZF9jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmdmaWVsZF9yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXSArIGxhYmVsOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgYm9yZGVyIDE0MG1zO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzJjYWNmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4wNiksIDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGNvbnRlbnQ6ICcnO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTFweDsgfVxuXG4uZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbDo6YmVmb3JlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAxOWRkZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxOWRkZDsgfVxuXG4ucGFpbmNvbXBsYWludF9maWVsZHMge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuICAucGFpbmNvbXBsYWludF9maWVsZHMgLmdmaWVsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7IH1cbiAgICAucGFpbmNvbXBsYWludF9maWVsZHMgLmdmaWVsZDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi8qKlxyXG4gKiBDaGVja2JveC5cclxuICovXG4uZ2ZpZWxkX2NoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlciAxNDBtcztcbiAgYm9yZGVyOiAxcHggc29saWQgI2MyY2FjZjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpLCAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBjb250ZW50OiAnJztcbiAgdmVydGljYWwtYWxpZ246IC0xcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5nZmllbGRfY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDo6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAyMHB4OyB9IH1cblxuLmdmaWVsZF9jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMTlkZGQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTlkZGQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5nZmllbGRfY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDIwcHg7IH0gfVxuXG4vKipcclxuICogVXBsb2FkLlxyXG4gKi9cbi5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5nZm9ybV9fdXBsb2FkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyB9XG4gIC5nZm9ybV9fdXBsb2FkOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBSZWd1bGFyXCI7XG4gICAgY29udGVudDogJ1xcZjA5Myc7IH1cbiAgLmdmb3JtX191cGxvYWQgPiAuaW5saW5lLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjBweDtcbiAgICBjb2xvcjogIzQ1NTQ2MjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uZ2lucHV0X2NvbnRhaW5lcl9maWxldXBsb2FkIC5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBjb2xvcjogIzQ1NTQ2MjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXHJcbiAqIE90aGVyLlxyXG4gKi9cbi5nZmllbGRfb3RoZXIgaW5wdXRbdHlwZT10ZXh0XSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzNHB4KTtcbiAgbWFyZ2luLWxlZnQ6IDM0cHg7IH1cblxuI2dmb3JtX3N1Ym1pdF9idXR0b25fMSB7XG4gIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMyk7IH1cblxuI2ZpZWxkXzFfMzU6OmFmdGVyLFxuI2ZpZWxkXzFfMzY6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2QxZDhkZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29udGVudDogJ1V3IHZvb3JrZXVyIHdvcmR0IGluZGllbiBtb2dlbGlqayBnZXZvbGdkLic7IH1cblxuI2xhYmVsXzFfMjRfMSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi10b3A6IC0yOXB4OyB9XG5cbi5naW5wdXRfY29udGFpbmVyX3NlbGVjdCAucHJhY3Rpb25lcl9fc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogMzhweDsgfVxuICAuZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3QgLnByYWN0aW9uZXJfX3NlbGVjdC5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5naW5wdXRfY29udGFpbmVyX3NlbGVjdCAucHJhY3Rpb25lcl9fc2VsZWN0LmlzLWFjdGl2ZSAuanMtc2hvdy1kZW50aXN0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5naW5wdXRfY29udGFpbmVyX3NlbGVjdCAucHJhY3Rpb25lcl9fc2VsZWN0LmlzLWFjdGl2ZSAuanMtc2hvdy1kZW50aXN0LmlzLWxhc3Qge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiMmJhYmQ7IH1cblxuLnByYWN0aW9uZXJfX3NlbGVjdCA+IHNwYW46bm90KC5wcmFjdGlvbmVyX19zZWxlY3QtdGl0bGUpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMTVweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xuICBwYWRkaW5nOiAwIDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiMmJhYmQ7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgei1pbmRleDogMTA7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5wcmFjdGlvbmVyX19zZWxlY3QgPiBzcGFuOm5vdCgucHJhY3Rpb25lcl9fc2VsZWN0LXRpdGxlKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzAxOWRkZDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAucHJhY3Rpb25lcl9fc2VsZWN0ID4gc3Bhbjpub3QoLnByYWN0aW9uZXJfX3NlbGVjdC10aXRsZSkuaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE5ZGRkO1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5wcmFjdGlvbmVyX19zZWxlY3QtdGl0bGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogNHB4IDAgMCAxNnB4O1xuICB6LWluZGV4OiAxO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uZ2Zvcm0taGlkZS1maWVsZCB7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC0xOyB9XG5cbi5nZm9ybV9jb2x1bW4tLXNlY29uZCAjaW5wdXRfMV8xNyBvcHRpb24sIC5nZm9ybV9jb2x1bW4tLXNlY29uZCAjaW5wdXRfOV8xNyBvcHRpb24sIC5nZm9ybV9jb2x1bW4tLXNlY29uZCAjaW5wdXRfNF8xNyBvcHRpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZ2Zvcm1fY29sdW1uLS1zZWNvbmQgb3B0aW9uOm5vdCguanMtc2hvdy1kZW50aXN0KTpub3QoLmpzLXNob3ctdHJlYXRtZW50LWRheSk6bm90KC5qcy1zaG93LXRyZWF0bWVudC10aW1lKSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogR2VuZXJhbCBHRiBEYXRlIFBpY2tlciAqL1xuI3VpLWRhdGVwaWNrZXItZGl2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyB9XG4gICN1aS1kYXRlcGlja2VyLWRpdiAudWktaWNvbiB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDBweDsgfVxuICAjdWktZGF0ZXBpY2tlci1kaXYgLnVpLWljb246YmVmb3JlIHtcbiAgICBjb2xvcjogIzAxOWRkZDtcbiAgICBmb250LWZhbWlseTogXCJGb250QXdlc29tZVwiO1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAjdWktZGF0ZXBpY2tlci1kaXYgLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwJTsgfVxuICAgICN1aS1kYXRlcGlja2VyLWRpdiAudWktZGF0ZXBpY2tlci1wcmV2IC51aS1pY29uOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFxmMDYwJzsgfVxuICAgICN1aS1kYXRlcGlja2VyLWRpdiAudWktZGF0ZXBpY2tlci1wcmV2LnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgI3VpLWRhdGVwaWNrZXItZGl2IC51aS1kYXRlcGlja2VyLW5leHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTAlOyB9XG4gICAgI3VpLWRhdGVwaWNrZXItZGl2IC51aS1kYXRlcGlja2VyLW5leHQgLnVpLWljb246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYwNjEnO1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgI3VpLWRhdGVwaWNrZXItZGl2IC51aS1kYXRlcGlja2VyLW5leHQudWktc3RhdGUtZGlzYWJsZWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAjdWktZGF0ZXBpY2tlci1kaXYgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNzAlOyB9XG4gICN1aS1kYXRlcGlja2VyLWRpdiAudWktZGF0ZXBpY2tlci10aXRsZSAudWktZGF0ZXBpY2tlci1tb250aCB7XG4gICAgbWFyZ2luOiAwcHggNSUgNnB4OyB9XG4gICN1aS1kYXRlcGlja2VyLWRpdiAudWktZGF0ZXBpY2tlci10aXRsZSAudWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgICBtYXJnaW46IDBweCAxNSUgNnB4OyB9XG4gICN1aS1kYXRlcGlja2VyLWRpdiAudWktZGF0ZXBpY2tlci10b2RheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxOWRkZDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgICAjdWktZGF0ZXBpY2tlci1kaXYgLnVpLWRhdGVwaWNrZXItdG9kYXkgYSB7XG4gICAgICBjb2xvcjogI0ZGRjsgfVxuICAjdWktZGF0ZXBpY2tlci1kaXYgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgI3VpLWRhdGVwaWNrZXItZGl2IHRhYmxlIHRkLCAjdWktZGF0ZXBpY2tlci1kaXYgdGFibGUgdGgge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgI3VpLWRhdGVwaWNrZXItZGl2IHRhYmxlIHRkIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiA1cHg7IH1cblxuLmdmb3JtX3dyYXBwZXIgLnZhbGlkYXRpb25fZXJyb3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTUwcHg7XG4gIGNvbG9yOiAjZDIwMDAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5nZm9ybV93cmFwcGVyIC52YWxpZGF0aW9uX2Vycm9yIHtcbiAgICAgIHRvcDogLTgwcHg7IH0gfVxuXG4uZ2ZpZWxkX2Rlc2NyaXB0aW9uLnZhbGlkYXRpb25fbWVzc2FnZSB7XG4gIGNvbG9yOiAjZDIwMDAwO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5kZWZhdWx0LWNvbnRlbnQgLmdvb2dsZS1tYXBzIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y5ZmJmYiAwJSwgI2YyZjRmNSAxMDAlKTsgfVxuXG4uZ29vZ2xlLW1hcHMge1xuICBtYXJnaW4tdG9wOiAxMzBweDsgfVxuXG4uZ21fX2VkaXRvciB7XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogNjBweCAwO1xuICBjb2xvcjogIzQ1NTQ2MjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmdtX19lZGl0b3IgYSB7XG4gICAgY29sb3I6ICMwMTlkZGQ7IH1cbiAgICAuZ21fX2VkaXRvciBhOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBGcmVlJztcbiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICBjb250ZW50OiAnXFxmMDk1JzsgfVxuICAgIC5nbV9fZWRpdG9yIGEgc3ZnIHtcbiAgICAgIG1hcmdpbjogMCA1cHg7IH1cblxuLmdtX19tYXBzIGlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5ib2R5LWxvYWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgei1pbmRleDogOTk5OTsgfVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDEwN3B4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIDEwMDBtcztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogNDU7XG4gIGFuaW1hdGlvbjogZmFkZUluTG9nbyAxNTAwbXMgZWFzZTtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxMDAwbXM7IH1cbiAgLmhlYWRlci5oZWFkZXItbG9hZGVkIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5oZWFkZXIgaW1nIHtcbiAgICBoZWlnaHQ6IDk1cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAuaGVhZGVyIGltZyB7XG4gICAgICAgIGhlaWdodDogODBweDsgfSB9XG4gIC5oZWFkZXIgLndyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLmhlYWRlciAud3JhcHBlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDk1JTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjIwcHgpIHtcbiAgICAuaGVhZGVyIC5tYWluLW1lbnUtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkge1xuICAgIC5oZWFkZXIgLm1haW4tbWVudS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDk5OyB9XG4gICAgICAuaGVhZGVyIC5tYWluLW1lbnUtY29udGFpbmVyIC5tYWluLW1lbnUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxNTBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gICAgICAgIC5oZWFkZXIgLm1haW4tbWVudS1jb250YWluZXIgLm1haW4tbWVudSBsaSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgICAgLmhlYWRlciAubWFpbi1tZW51LWNvbnRhaW5lciAubWFpbi1tZW51IGxpOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMWY0NjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICAgICAgLmhlYWRlciAubWFpbi1tZW51LWNvbnRhaW5lciAubWFpbi1tZW51IGxpIGJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbml0aWFsO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH0gfVxuICAuaGVhZGVyIC5tYWluLW1lbnUtY29udGFpbmVyIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuaGVhZGVyIC5tYWluLW1lbnUtY29udGFpbmVyIC5jbG9zZS1idG4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDM4cHg7XG4gICAgcmlnaHQ6IDU4cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjIwcHgpIHtcbiAgICAgIC5oZWFkZXIgLm1haW4tbWVudS1jb250YWluZXIgLmNsb3NlLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5oZWFkZXIgLm1haW4tbWVudS1jb250YWluZXIgLmNsb3NlLWJ0biBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIGxlZnQ6IDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDsgfVxuICAuaGVhZGVyIC5qcy1tYWluLW1lbnUtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5oZWFkZXIgLmpzLW1haW4tbWVudS1idXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDI1cHg7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjIwcHgpIHtcbiAgICAgIC5oZWFkZXIgLmpzLW1haW4tbWVudS1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfSB9XG4gICAgLmhlYWRlciAuanMtbWFpbi1tZW51LWJ1dHRvbiBzdmcge1xuICAgICAgZm9udC1zaXplOiAzMHB4OyB9XG4gICAgLmhlYWRlciAuanMtbWFpbi1tZW51LWJ1dHRvbiAuanMtbWFpbi1tZW51LWJ1dHRvbi10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuaGVhZGVyIC5qcy1tYWluLW1lbnUtYnV0dG9uOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMzBweDtcbiAgICAgIGxlZnQ6IC0ycHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBjb250ZW50OiAnTUVOVSc7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkge1xuICAgIC5oZWFkZXIgLmhlYWRlcl9fbGFuZ3VhZ2Utc3dpdGNoZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEwcHg7IH0gfVxuICAuaGVhZGVyIC5jdXJyZW50LW1lbnUtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkge1xuICAubWFpbi1tZW51LWNvbnRhaW5lci0tYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogIzAxOWRkZDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjIwcHgpIHtcbiAgLm1haW4tbWVudS1jb250YWluZXItLWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWJhNTlhOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkge1xuICAubWFpbi1tZW51LWNvbnRhaW5lci0tZGFya2dyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWJhNTlhOyB9IH1cblxuLyoqXHJcbiAqIEhlYWRlciBsb2dvLlxyXG4gKi9cbi5oZWFkZXJfX2xvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuaGVhZGVyX19sb2dvIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0gfVxuICAuaGVhZGVyX19sb2dvIGltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaGVhZGVyX19sb2dvIGltZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDsgfSB9XG5cbi5oZWFkZXJfX2xvZ28tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMwNzY5ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm90dG9tOiAxMXB4O1xuICBjb2xvcjogIzY4ODlhYTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuaGVhZGVyX19sb2dvLXRleHQge1xuICAgICAgcmlnaHQ6IDE1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5oZWFkZXJfX2xvZ28tdGV4dC5tYXJnaW4tdG9wLTEwIHtcbiAgICAgIHJpZ2h0OiA3cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9IH1cblxuLyoqXHJcbiAqIEhlYWRlciBjb2x1bW5zLlxyXG4gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmhlYWRlcl9fY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgd2lkdGg6IDQ2JSAhaW1wb3J0YW50OyB9XG4gIC5oZWFkZXJfX2NvbHVtbjpudGgtY2hpbGQoMikge1xuICAgIHdpZHRoOiAzMCUgIWltcG9ydGFudDsgfSB9XG5cbi5oZWFkZXJfX2NvbHVtbjpudGgtY2hpbGQoMSkge1xuICB3aWR0aDogMjAlOyB9XG5cbi5oZWFkZXJfX2NvbHVtbjpudGgtY2hpbGQoMikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHdpZHRoOiA4MCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkgYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmhlYWRlcl9fY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuLmhlYWRlcl9fdXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIyMHB4KSBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuaGVhZGVyX191cHBlciB7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG4gIC5oZWFkZXJfX3VwcGVyIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG4gICAgY29sb3I6ICMwMTlkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5oZWFkZXJfX3VwcGVyIC5zZWFyY2gtZm9ybSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkge1xuICAgICAgLmhlYWRlcl9fdXBwZXIgLnNlYXJjaC1mb3JtIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmhlYWRlcl9fdXBwZXIgLnNlYXJjaC1mb3JtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXM7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgICAgIC5oZWFkZXJfX3VwcGVyIC5zZWFyY2gtZm9ybS5pcy1hY3RpdmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfSB9XG4gICAgLmhlYWRlcl9fdXBwZXIgLnNlYXJjaC1mb3JtIHN2ZyB7XG4gICAgICBjb2xvcjogIzQ1NTQ2MjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAgIC5oZWFkZXJfX3VwcGVyIC5zZWFyY2gtZm9ybSBpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zOyB9IH1cbiAgICAuaGVhZGVyX191cHBlciAuc2VhcmNoLWZvcm0gaW5wdXQuaXMtYWN0aXZlIHtcbiAgICAgIHdpZHRoOiAxNTBweDsgfVxuICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19tYWlsLFxuICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19waG9uZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBjb2xvcjogIzY4ODlhYTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjIwcHgpIHtcbiAgICAgIC5oZWFkZXJfX3VwcGVyIC5oZWFkZXJfX21haWwsXG4gICAgICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19waG9uZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19tYWlsIHtcbiAgICBoZWlnaHQ6IDMwcHg7IH1cbiAgICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19tYWlsOmhvdmVyIC5oZWFkZXJfX21haWwtdGV4dCB7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgdHJhbnNpdGlvbjogbWF4LXdpZHRoIDQwMG1zIGVhc2UtaW47IH1cbiAgLmhlYWRlcl9fdXBwZXIgLmhlYWRlcl9fcGhvbmUge1xuICAgIGhlaWdodDogMzBweDsgfVxuICAgIC5oZWFkZXJfX3VwcGVyIC5oZWFkZXJfX3Bob25lOmhvdmVyIC5oZWFkZXJfX3Bob25lLXRleHQge1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIHRyYW5zaXRpb246IG1heC13aWR0aCA0MDBtcyBlYXNlLWluOyB9XG4gIC5oZWFkZXJfX3VwcGVyIC5oZWFkZXJfX21haWwtdGV4dCxcbiAgLmhlYWRlcl9fdXBwZXIgLmhlYWRlcl9fcGhvbmUtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjAwbXMgZWFzZS1vdXQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19ydXNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgcGFkZGluZzogM3B4IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXM7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2QyMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogI2QyMDAwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmhlYWRlcl9fdXBwZXIgLmhlYWRlcl9fcnVzaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjIwcHgpIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhlYWRlcl9fdXBwZXIgLmhlYWRlcl9fcnVzaCB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwOyB9IH1cbiAgICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19ydXNoIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDExcHg7IH1cbiAgICAuaGVhZGVyX191cHBlciAuaGVhZGVyX19ydXNoOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBjb2xvcjogI2QyMDAwMDsgfVxuICAgICAgLmhlYWRlcl9fdXBwZXIgLmhlYWRlcl9fcnVzaDpob3ZlciBzdmcge1xuICAgICAgICBjb2xvcjogI2QyMDAwMDsgfVxuXG4uaGVhZGVyX19hcHBvaW50bWVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMHB4O1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgcGFkZGluZzogM3B4IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGNvbG9yIDE0MG1zO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmhlYWRlcl9fYXBwb2ludG1lbnQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMjIwcHgpIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5oZWFkZXJfX2FwcG9pbnRtZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBwYWRkaW5nOiA0cHggMDsgfSB9XG5cbi5oZWFkZXJfX2xvd2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkgYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLmhlYWRlcl9fbG93ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4NXB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkgYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmhlYWRlcl9fbG93ZXIge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlcl9fbG93ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0NXB4OyB9IH1cbiAgLmhlYWRlcl9fbG93ZXIgLm1haW4tbWVudSB7XG4gICAgbWFyZ2luLXRvcDogMnB4OyB9XG4gICAgLmhlYWRlcl9fbG93ZXIgLm1haW4tbWVudSBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgY29sb3I6ICMwMDFmNDY7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTlweDsgfVxuICAgICAgLmhlYWRlcl9fbG93ZXIgLm1haW4tbWVudSBsaSBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyOyB9XG5cbi5oZWFkZXJfX2ljb25zLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDE0MHB4O1xuICBsZWZ0OiAyMHB4O1xuICB6LWluZGV4OiA0MDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIyMHB4KSBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuaGVhZGVyX19pY29ucy1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5oZWFkZXJfX2ljb25zLXBvcnRyYWl0IGEge1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5oZWFkZXJfX2ljb25zLXBvcnRyYWl0IC5pY29ucy1wb3J0cmFpdF9fZW1haWwsXG4gIC5oZWFkZXJfX2ljb25zLXBvcnRyYWl0IC5pY29ucy1wb3J0cmFpdF9fcGhvbmUge1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIGhlaWdodDogMzdweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMwMTlkZGQ7XG4gICAgbGluZS1oZWlnaHQ6IDM3cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5zZWFyY2gtaXMtYWN0aXZlIHtcbiAgd2lkdGg6IDE3NXB4OyB9XG5cbi8qKlxyXG4gKiBIZWFkZXIgd2l0aCBzaGFkb3cuXHJcbiAqL1xuLmhlYWRlci0tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAwIDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLypcclxuICogU3VibWVudSBydWxlc1xyXG4gKi9cbi5zdWJtZW51LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogNDZweDtcbiAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3VibWVudS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuc3VibWVudS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgLnN1Ym1lbnUtY29udGFpbmVyIC53cmFwcGVyIHtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLnN1Ym1lbnUtY29udGFpbmVyIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIC5zdWJtZW51LWNvbnRhaW5lciAuc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IC0xOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnN1Ym1lbnUtY29udGFpbmVyIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIC5zdWJtZW51LWNvbnRhaW5lciAuc3VibWVudSBhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4OyB9IH1cbiAgLnN1Ym1lbnUtY29udGFpbmVyIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmhvdmVyIC5zdWJtZW51LWNvbnRhaW5lciAuc3VibWVudSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiA5OyB9XG5cbi5zdWJtZW51LS1ibHVlIHtcbiAgYmFja2dyb3VuZDogIzAxOWRkZDsgfVxuXG4uc3VibWVudS0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjMWJhNTlhOyB9XG4gIC5zdWJtZW51LS1ncmVlbiBhIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4uc3VibWVudS0tZGFya2dyZWVuIHtcbiAgYmFja2dyb3VuZDogIzAwNWY2OTsgfVxuICAuc3VibWVudS0tZGFya2dyZWVuIGEge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5zdWJtZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDEwN3B4O1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogMjBweCAwO1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogLTE7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcbiAgICAgIG9wYWNpdHk6IDE7IH0gfVxuICAuc3VibWVudSAud3JhcHBlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBpbml0aWFsOyB9XG4gIC5zdWJtZW51IGxpIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7IH0gfVxuICAgIC5zdWJtZW51IGxpOmhvdmVyIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5zdWJtZW51IGxpOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmhvdmVyIC5zdWJtZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDk5OyB9IH1cblxuLnN1Ym1lbnUtY29udGFpbmVyLWlzLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlOyB9XG5cbi5sYW5ndWFnZS1zd2l0Y2gge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5sYW5ndWFnZS1zd2l0Y2gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMTVweDtcbiAgICAgIHJpZ2h0OiAzNXB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICB6LWluZGV4OiAxMDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmxhbmd1YWdlLXN3aXRjaCB7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubGFuZ3VhZ2Utc3dpdGNoIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubGFuZ3VhZ2Utc3dpdGNoIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xuICBvcGFjaXR5OiAwLjU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmxhbmd1YWdlLXN3aXRjaF9faXRlbSB7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmxhbmd1YWdlLXN3aXRjaF9faXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMnB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgY29udGVudDogJ05MJzsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06bGFzdC1jaGlsZDphZnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBjb250ZW50OiAnRU4nOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLmxhbmd1YWdlLXN3aXRjaF9faXRlbTpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06aG92ZXIsIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW0uaXMtYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmsge1xuICBoZWlnaHQ6IDI2cHg7XG4gIGZvbnQtc2l6ZTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAubGFuZ3VhZ2Utc3dpdGNoX19saW5rOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL0VOLWZsYWcuanBnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG5cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLW5sOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvTkwtZmxhZy5qcGdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgfVxuXG4ub3BlbmluZy1ob3VycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAub3BlbmluZy1ob3VycyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDhkZTtcbiAgICAgIGJvcmRlci1sZWZ0OiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5vcGVuaW5nLWhvdXJzIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzQlIC0gMjBweCk7IH0gfVxuXG4ub2hfX3RpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBjb2xvcjogIzAwMWY0NjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDQycHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5vaF9fdGl0bGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9IH1cbiAgLm9oX190aXRsZSBzdmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNXB4O1xuICAgIHJpZ2h0OiAzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLm9oX190aXRsZSBzdmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5vaF9fY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLm9oX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm9oX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4OyB9IH1cbiAgLm9oX19jb250ZW50OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNTVweDtcbiAgICBsZWZ0OiAtMjVweDtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNTVweCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RhZGVlMjtcbiAgICBjb250ZW50OiAnJzsgfVxuXG4ub2hfX3RvZ2dsZSB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4ub2hfX3RvZ2dsZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZTsgfVxuXG4ub2hfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgY29sb3I6ICM0NTU0NjI7XG4gIGZvbnQtc2l6ZTogMTZweDsgfVxuICAub2hfX3JvdyAub2hfX2RheSB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAub2hfX3JvdyAub2hfX3RpbWUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5vaF9fcm93IC5vaF9fbm90YXRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUGFnaW5hdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnBhZ2luYXRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBhZ2luYXRpb24gLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcclxuICogTnVtYmVycy5cclxuICovXG4ucGFnZS1udW1iZXJzIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY29sb3I6ICMwMTlkZGQ7IH1cbiAgLnBhZ2UtbnVtYmVycy5jdXJyZW50IHtcbiAgICBjb2xvcjogIzAwMWY0NjtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5zZWFyY2gtZm9ybSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogOTBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDEzcHggMCByZ2JhKDAsIDAsIDAsIDAuMjMpO1xuICAgIHotaW5kZXg6IDk5OyB9XG4gICAgLnNlYXJjaC1mb3JtIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICByaWdodDogMDsgfVxuICAgIC5zZWFyY2gtZm9ybSBpbnB1dCB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgcGFkZGluZzogMCAxMHB4OyB9XG4gICAgLnNlYXJjaC1mb3JtIGJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAlO1xuICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbG9yOiAjMDAwOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU2VhcmNoIHJlc3VsdHNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBSZXN1bHRzLlxyXG4gKi9cbi5zZWFyY2gtcmVzdWx0cyB7XG4gIHBhZGRpbmc6IDEwMHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zZWFyY2gtcmVzdWx0cyB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDA7IH0gfVxuICAuc2VhcmNoLXJlc3VsdHMgLndyYXBwZXIge1xuICAgIHBhZGRpbmc6IDAgMTVweDsgfVxuXG4vKipcclxuICogTG9vcC5cclxuICovXG4uc2VhcmNoLXJlc3VsdHNfX2xvb3Age1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogNTBweCAtMTVweDsgfVxuXG4vKipcclxuICogU2VhcmNoIGl0ZW0uXHJcbiAqL1xuLnNlYXJjaC1pdGVtIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG4gIG1hcmdpbjogMTVweDtcbiAgcGFkZGluZzogMjVweDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDI1MG1zIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ4ZGU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zZWFyY2gtaXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5zZWFyY2gtaXRlbTpob3ZlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAxOWRkZDsgfVxuXG4uc2VhcmNoLWl0ZW1fX2xhYmVsIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1ZW07XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGNvbG9yOiAjMDAxZjQ2O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLnNsaWRlc2hvdy13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDcwMHB4OyB9IH1cblxuLnNsaWRlc2hvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7IH1cbiAgLnNsaWRlc2hvdy5vd2wtY2Fyb3VzZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgMTAwMG1zO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuc2xpZGVzaG93Lm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnNsaWRlc2hvdyAub3dsLWRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE5MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiA5OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnNsaWRlc2hvdyAub3dsLWRvdHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLnNsaWRlc2hvdyAub3dsLWRvdHMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7IH0gfVxuICAgIC5zbGlkZXNob3cgLm93bC1kb3RzIC5vd2wtZG90IHtcbiAgICAgIHdpZHRoOiA2cHg7XG4gICAgICBoZWlnaHQ6IDZweDtcbiAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAxNDBtcywgaGVpZ2h0IDE0MG1zO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNkMWQ4ZGU7IH1cbiAgICAgIC5zbGlkZXNob3cgLm93bC1kb3RzIC5vd2wtZG90OmhvdmVyIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7IH1cbiAgICAuc2xpZGVzaG93IC5vd2wtZG90cyAuYWN0aXZlIHtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2IyYmFiZDsgfVxuICAuc2xpZGVzaG93IC5uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDMwcHg7XG4gICAgYm90dG9tOiA0MCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnNsaWRlc2hvdyAubmV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2xpZGVzaG93X19zbGlkZS1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogODElO1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuc2xpZGVzaG93X19zbGlkZS1jb250ZW50IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc2xpZGVzaG93X19zbGlkZS1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgLnNsaWRlc2hvd19fc2xpZGUtY29udGVudDphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTQwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAycHg7XG4gICAgYmFja2dyb3VuZDogI2QxZDhkZTtcbiAgICBjb250ZW50OiAnJztcbiAgICBvcGFjaXR5OiAwLjc7IH1cblxuLnNsaWRlc2hvd19faXRlbSB7XG4gIGhlaWdodDogNzAwcHg7XG4gIHotaW5kZXg6IDk5OTk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zbGlkZXNob3dfX2l0ZW0ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgLnNsaWRlc2hvd19faXRlbS5uby1saW5rIC5zbGlkZXNob3dfX3NsaWRlLWNvbnRlbnQ6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNsaWRlc2hvd19faXRlbS5uby1saW5rIHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2xpZGVzaG93X19pbWFnZSBpbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYwMHB4O1xuICB6LWluZGV4OiAtMTtcbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5zbGlkZXNob3dfX2ltYWdlIGltZyB7XG4gICAgICBoZWlnaHQ6IDMwMHB4OyB9IH1cblxuLnNsaWRlc2hvd19fc2xpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogNDVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5zbGlkZXNob3dfX3NsaWRlIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWFyZ2luOiAtNTBweCBhdXRvIGF1dG87XG4gICAgICBwYWRkaW5nOiAzMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5zbGlkZXNob3dfX3NsaWRlIHtcbiAgICAgIHJpZ2h0OiA0MHB4OyB9IH1cblxuLnNsaWRlc2hvd19fc2xpZGU6aG92ZXIgLm5leHQge1xuICByaWdodDogMjVweDtcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7IH1cblxuLnNsaWRlc2hvd19fc3VidGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uc2xpZGVzaG93X190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGNvbG9yOiAjMDAxZjQ2O1xuICBmb250LXNpemU6IDM0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuc2xpZGVzaG93X190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI4cHg7IH0gfVxuXG4uc2xpZGVzaG93X19lZGl0b3Ige1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMzJweDsgfVxuICAuc2xpZGVzaG93X19lZGl0b3IgdWwsXG4gIC5zbGlkZXNob3dfX2VkaXRvciBvbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyM3B4OyB9XG4gIC5zbGlkZXNob3dfX2VkaXRvciB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbi5kb3VibGUtY29sdW1uICsgLndyYXBwZXItbGcgLnNsaWRlc2hvdyB7XG4gIG1hcmdpbi10b3A6IDEwMHB4OyB9XG5cbi5uby1saW5rIC5zbGlkZXNob3dfX3NsaWRlLWNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4udGVhbSB7XG4gIG1hcmdpbjogMTMwcHggMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRlYW0ge1xuICAgICAgbWFyZ2luOiA4MHB4IDA7IH0gfVxuICAudGVhbSAudGVhbV9fdGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMzQ1cHg7XG4gICAgY29sb3I6ICMwMDFmNDY7XG4gICAgZm9udC1zaXplOiAzNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiA0MnB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KSB7XG4gICAgICAudGVhbSAudGVhbV9fdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC50ZWFtIC50ZWFtX190aXRsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAudGVhbSAudGVhbV9fdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsgfSB9XG5cbi50ZWFtX19sb29wIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4udGVhbV9fbG9vcC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1NDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC50ZWFtX19sb29wLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRlYW1fX2xvb3Atd3JhcHBlciB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgICBoZWlnaHQ6IDQ1MHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH0gfVxuXG4udGVhbS1zbGlkZXJfX3NsaWRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI4MG1zIDFtcztcbiAgb3BhY2l0eTogMDsgfVxuICAudGVhbS1zbGlkZXJfX3NsaWRlLmlzLWFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyODBtcyAyODBtcztcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi50ZWFtLW1lbWJlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAxMHB4O1xuICB6LWluZGV4OiAxOyB9XG4gIC50ZWFtLW1lbWJlciBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnRlYW0tbWVtYmVyIGltZyB7XG4gICAgICAgIGhlaWdodDogMjIwcHg7IH0gfVxuICAudGVhbS1tZW1iZXI6aG92ZXIgLnRtX19vdmVybGF5IHtcbiAgICB0cmFuc2l0aW9uOiAzNTBtcyBlYXNlO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLmRlc2t0b3AgLnRlYW0tbWVtYmVyIHtcbiAgd2lkdGg6IGNhbGMoMjAlIC0gMjBweCk7IH1cbiAgLmRlc2t0b3AgLnRlYW0tbWVtYmVyOm50aC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNDAlICsgMTBweCk7IH1cblxuLnRhYmxldC1sYW5kc2NhcGUgLnRlYW0tbWVtYmVyIHtcbiAgd2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7IH1cbiAgLnRhYmxldC1sYW5kc2NhcGUgLnRlYW0tbWVtYmVyOm50aC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMTBweCk7IH1cblxuLnRhYmxldC1wb3J0cmFpdCAudGVhbS1tZW1iZXIge1xuICB3aWR0aDogY2FsYygzMy4zMzM0JSAtIDIwcHgpOyB9XG4gIC50YWJsZXQtcG9ydHJhaXQgLnRlYW0tbWVtYmVyOm50aC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NyUgKyAxMHB4KTsgfVxuXG4udG1fX2JvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMCAyMHB4OyB9XG5cbi8qKlxyXG4gKiBEb3RzLlxyXG4gKi9cbi50ZWFtLXNsaWRlcl9fZG90cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDUwcHggLTJweCAtMnB4OyB9XG5cbi50ZWFtLXNsaWRlcl9fZG90IHtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIG1hcmdpbjogMnB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAxNDBtcywgaGVpZ2h0IDE0MG1zO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMmJhYmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLnRlYW0tc2xpZGVyX19kb3Q6aG92ZXIge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7IH1cbiAgLnRlYW0tc2xpZGVyX19kb3QuaXMtYWN0aXZlIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7IH1cblxuLyoqXHJcbiAqIE5hdi5cclxuICovXG4udGVhbS1zbGlkZXJfX25hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIDYwcHgpO1xuICByaWdodDogLTgwcHg7XG4gIGxlZnQ6IC04MHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAxNjBweCk7XG4gIGhlaWdodDogMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzMDBweCkge1xuICAgIC50ZWFtLXNsaWRlcl9fbmF2IHtcbiAgICAgIHJpZ2h0OiAtNTBweDtcbiAgICAgIGxlZnQ6IC01MHB4O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwMHB4KTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnRlYW0tc2xpZGVyX19uYXYge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRlYW0tc2xpZGVyX19uYXYge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfSB9XG5cbi50ZWFtLXNsaWRlcl9fbmF2LXByZXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDQ5cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIHRyYW5zaXRpb246IDE0MG1zO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZDFkOGRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnRlYW0tc2xpZGVyX19uYXYtcHJldiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50ZWFtLXNsaWRlcl9fbmF2LXByZXYge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9IH1cbiAgLnRlYW0tc2xpZGVyX19uYXYtcHJldjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFJlZ3VsYXJcIjtcbiAgICBjb250ZW50OiAnXFxmMTA0JzsgfVxuICAudGVhbS1zbGlkZXJfX25hdi1wcmV2ID4gLmlubGluZS1pY29uIHtcbiAgICBjb2xvcjogIzAxOWRkZDtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLnRlYW0tc2xpZGVyX19uYXYtcHJldjpob3ZlciB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLnRlYW0tc2xpZGVyX19uYXYtbmV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNDlweDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICB0cmFuc2l0aW9uOiAxNDBtcztcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZDFkOGRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnRlYW0tc2xpZGVyX19uYXYtbmV4dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50ZWFtLXNsaWRlcl9fbmF2LW5leHQge1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH0gfVxuICAudGVhbS1zbGlkZXJfX25hdi1uZXh0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUmVndWxhclwiO1xuICAgIGNvbnRlbnQ6ICdcXGYxMDUnOyB9XG4gIC50ZWFtLXNsaWRlcl9fbmF2LW5leHQgPiAuaW5saW5lLWljb24ge1xuICAgIGNvbG9yOiAjMDE5ZGRkO1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAudGVhbS1zbGlkZXJfX25hdi1uZXh0OmhvdmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDsgfVxuXG4ucGhvbmUgLnRlYW0tbWVtYmVyIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7IH1cblxuLnRtX19vdmVybGF5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IDM1MG1zIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwOyB9XG4gIC50bV9fb3ZlcmxheSAudG1fX2Z1bmN0aW9uIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7IH1cbiAgLnRtX19vdmVybGF5IC50bV9fbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI1cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAudG1fX292ZXJsYXkgLnRtX19uYW1lIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4OyB9IH1cbiAgLnRtX19vdmVybGF5IC50bV9fYXBwb2ludG1lbnQtdGhpcyxcbiAgLnRtX19vdmVybGF5IC50bV9fYXBwb2ludG1lbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMDE5ZGRkOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC50bV9fb3ZlcmxheSAudG1fX2FwcG9pbnRtZW50LXRoaXMsXG4gICAgICAudG1fX292ZXJsYXkgLnRtX19hcHBvaW50bWVudCB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgZWFzZTtcbiAgICAgICAgb3BhY2l0eTogMC44OyB9XG4gICAgICAgIC50bV9fb3ZlcmxheSAudG1fX2FwcG9pbnRtZW50LXRoaXM6aG92ZXIsXG4gICAgICAgIC50bV9fb3ZlcmxheSAudG1fX2FwcG9pbnRtZW50OmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAudG1fX292ZXJsYXkgLnRtX19hcHBvaW50bWVudC10aGlzLFxuICAgICAgLnRtX19vdmVybGF5IC50bV9fYXBwb2ludG1lbnQge1xuICAgICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7IH0gfVxuXG4udHJlYXRtZW50cy10ZWFzZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjlmYmZiIDAlLCAjZjJmNGY1IDEwMCUpOyB9XG4gIC50cmVhdG1lbnRzLXRlYXNlciAud3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAudHJlYXRtZW50cy10ZWFzZXIgLndyYXBwZXIge1xuICAgICAgICB3aWR0aDogOTAlOyB9XG4gICAgICAgIC50cmVhdG1lbnRzLXRlYXNlciAud3JhcHBlcjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIENvbHVtbnMuXHJcbiAqL1xuLnRyZWF0bWVudHMtdGVhc2VyX19jb2x1bW5zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi50cmVhdG1lbnRzLXRlYXNlcl9fY29sdW1uIHtcbiAgd2lkdGg6IDUwJTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRyZWF0bWVudHMtdGVhc2VyX19jb2x1bW4ge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4udHJlYXRtZW50cy10ZWFzZXJfX2NvbHVtbi0tbGVmdCB7XG4gIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgcGFkZGluZy1yaWdodDogMTM1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC50cmVhdG1lbnRzLXRlYXNlcl9fY29sdW1uLS1sZWZ0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRyZWF0bWVudHMtdGVhc2VyX19jb2x1bW4tLWxlZnQge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9IH1cblxuLnRyZWF0bWVudHMtdGVhc2VyX19jb2x1bW4tLXJpZ2h0IHtcbiAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAudHJlYXRtZW50cy10ZWFzZXJfX2NvbHVtbi0tcmlnaHQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qKlxyXG4gKiBUaXRsZS5cclxuICovXG4udHJlYXRtZW50cy10ZWFzZXJfX3RpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDM3NHB4O1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICBjb2xvcjogIzAwMWY0NjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogNDJweDsgfVxuXG4vKipcclxuICogQ2F0ZWdvcnkuXHJcbiAqL1xuLnRyZWF0bWVudHMtdGVhc2VyX19jYXRlZ29yeSB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cblxuLnRyZWF0bWVudHMtdGVhc2VyX19jYXRlZ29yeS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUyOTQxZW07XG4gIGNvbG9yOiAjMDAxZjQ2O1xuICBmb250LXdlaWdodDogNjAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudHJlYXRtZW50cy10ZWFzZXJfX2NhdGVnb3J5LXRpdGxlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyM3B4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRyZWF0bWVudHMtdGVhc2VyX19jYXRlZ29yeS10aXRsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMzBweDsgfSB9XG5cbi8qKlxyXG4gKiBMaXN0LlxyXG4gKi9cbi50cmVhdG1lbnRfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogLTEwcHggLTMwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50cmVhdG1lbnRfX2xpc3Qge1xuICAgICAgbWFyZ2luOiAxMHB4IDRweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50cmVhdG1lbnRfX2xpc3Qge1xuICAgICAgbWFyZ2luOiAwOyB9IH1cblxuLnRyZWF0bWVudF9fbGlzdC1pdGVtIHtcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMTBweCAzMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudHJlYXRtZW50X19saXN0LWl0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7IH0gfVxuICAudHJlYXRtZW50X19saXN0LWl0ZW0gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZDFkOGRlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnRyZWF0bWVudF9fbGlzdC1pdGVtIGE6OmJlZm9yZSwgLnRyZWF0bWVudF9fbGlzdC1pdGVtIGE6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qKlxyXG4gKiBUcmVhdG1lbnQgaXRlbS5cclxuICovXG4udHJlYXRtZW50LWl0ZW1fX2ltYWdlIHtcbiAgaGVpZ2h0OiA0NjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC50cmVhdG1lbnQtaXRlbV9faW1hZ2Uge1xuICAgICAgaGVpZ2h0OiA0MDBweDsgfSB9XG4gIC50cmVhdG1lbnQtaXRlbV9faW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cblxuLyoqXHJcbiAqIEJvZHkuXHJcbiAqL1xuLnRyZWF0bWVudC1pdGVtX19ib2R5IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy10b3A6IDcwcHg7XG4gIHBhZGRpbmctbGVmdDogNzBweDsgfVxuXG4vKipcclxuICogVGl0bGUuXHJcbiAqL1xuLnRyZWF0bWVudC1pdGVtX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMS42ZW07XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAxZjQ2O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcclxuICogVGVhc2VyLlxyXG4gKi9cbi50cmVhdG1lbnQtaXRlbV9fdGVhc2VyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4vKipcclxuICogQ1RBLlxyXG4gKi9cbi50cmVhdG1lbnQtaXRlbV9fY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IC0zcHg7IH1cbiAgLnRyZWF0bWVudC1pdGVtX19jdGEgPiBhIHtcbiAgICBtYXJnaW46IDNweDsgfVxuXG4vKipcclxuICogRGVzY3JpcHRpb24uXHJcbiAqL1xuLnRyZWF0bWVudF9fZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDcwcHg7IH1cblxuLnRyZWF0bWVudF9fY29tcGFueSB7XG4gIG1hcmdpbi10b3A6IDFweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuLnRyZWF0bWVudF9fZGVzY3JpcHRpb24tYnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDVweDsgfVxuXG4udHJlYXRtZW50X19kZXNjcmlwdGlvbi1ieS1jb21wYW55IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTQ1cHg7IH1cblxuLypcclxuICogQWRkaXRpb25hbCBydWxlcyBmb3IgdGhpcyBlbGVtZW50XHJcbiAqL1xuLmRvdWJsZS1jb2x1bW4gKyAudHJlYXRtZW50cy10ZWFzZXIge1xuICBtYXJnaW4tdG9wOiAxMjBweDsgfVxuXG4uY29udGFjdC10ZWFzZXIgKyAudHJlYXRtZW50cy10ZWFzZXIge1xuICBtYXJnaW4tdG9wOiA5MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuY29udGFjdC10ZWFzZXIgKyAudHJlYXRtZW50cy10ZWFzZXIge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgLmNvbnRhY3QtdGVhc2VyICsgLnRyZWF0bWVudHMtdGVhc2VyIC50cmVhdG1lbnRzLXRlYXNlcl9fY29sdW1uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxvZ28ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29sb3JcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBDb2xvciB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgYmxhY2stMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJsYWNrLTEwMCB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgIGJsYWNrLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWJsYWNrLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgIHdoaXRlLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci13aGl0ZS0xMDAge1xuICBjb2xvcjogd2hpdGU7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCB3aGl0ZS0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci13aGl0ZS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBPYmplY3QgRml0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogT2JqZWN0IGZpdC5cclxuICpcclxuICogMS4gRm9udCBmYW1pbHkgcG9seWZpbGwgd2l0aCAoaHR0cHM6Ly9naXRodWIuY29tL2JmcmVkLWl0L29iamVjdC1maXQtaW1hZ2VzKS5cclxuICovXG4vKipcclxuICAgKiBgb2JqZWN0LWZpdGAgZmlsbCB1dGlsaXR5IGNsYXNzLlxyXG4gICAqL1xuLmZpbGwge1xuICBmb250LWZhbWlseTogXCJvYmplY3QtZml0OiBmaWxsO1wiO1xuICAvKiAxICovXG4gIG9iamVjdC1maXQ6IGZpbGw7IH1cblxuLyoqXHJcbiAgICogYG9iamVjdC1maXRgIGNvbnRhaW4gdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cbi5jb250YWluIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogY29udGFpbjtcIjtcbiAgLyogMSAqL1xuICBvYmplY3QtZml0OiBjb250YWluOyB9XG5cbi8qKlxyXG4gICAqIGBvYmplY3QtZml0YCBjb3ZlciB1dGlsaXR5IGNsYXNzLlxyXG4gICAqL1xuLmNvdmVyIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogY292ZXI7XCI7XG4gIC8qIDEgKi9cbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLyoqXHJcbiAgICogYG9iamVjdC1maXRgIG5vbmUgdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cbi5ub25lIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogbm9uZTtcIjtcbiAgLyogMSAqL1xuICBvYmplY3QtZml0OiBub25lOyB9XG5cbi8qKlxyXG4gICAqIGBvYmplY3QtZml0YCBzY2FsZS1kb3duIHV0aWxpdHkgY2xhc3MuXHJcbiAgICovXG4uc2NhbGUtZG93biB7XG4gIGZvbnQtZmFtaWx5OiBcIm9iamVjdC1maXQ6IHNjYWxlLWRvd247XCI7XG4gIC8qIDEgKi9cbiAgb2JqZWN0LWZpdDogc2NhbGUtZG93bjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQb3NpdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFBvc2l0aW9uIHV0aWxpdHkgY2xhc3MuXHJcbiAqL1xuLnN0YXRpYyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuLnJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEZvbnQgZmFtaWx5IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXG4udGV4dC14cy1kZWZhdWx0IHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCI7IH1cblxuLnRleHQtc20tZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiOyB9XG5cbi50ZXh0LW1kLWRlZmF1bHQge1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIjsgfVxuXG4udGV4dC1sZy1kZWZhdWx0IHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCI7IH1cblxuLnRleHQteGwtZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiOyB9XG5cbi8qKlxyXG4gKiBUZXh0IHNpemUgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKi9cbi50ZXh0LXhzLWgxIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXNpemU6IDMuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTYyNWVtOyB9XG5cbi50ZXh0LXhzLWgyIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0MjllbTsgfVxuXG4udGV4dC14cy1oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIwODMzZW07IH1cblxuLnRleHQteHMtaDQge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBsaW5lLWhlaWdodDogMS40NTQ1NWVtOyB9XG5cbi50ZXh0LXhzLWg1IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjZlbTsgfVxuXG4udGV4dC14cy1oNiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc3Nzc4ZW07IH1cblxuLnRleHQteHMtcCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07IH1cblxuLnRleHQtc20taDEge1xuICBmb250LXNpemU6IDMycHg7XG4gIGZvbnQtc2l6ZTogMy4ycmVtO1xuICBsaW5lLWhlaWdodDogMS41NjI1ZW07IH1cblxuLnRleHQtc20taDIge1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMTQyOWVtOyB9XG5cbi50ZXh0LXNtLWgzIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjA4MzNlbTsgfVxuXG4udGV4dC1zbS1oNCB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1NDU1ZW07IH1cblxuLnRleHQtc20taDUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNmVtOyB9XG5cbi50ZXh0LXNtLWg2IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzc3NzhlbTsgfVxuXG4udGV4dC1zbS1wIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTsgfVxuXG4udGV4dC1tZC1oMSB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgZm9udC1zaXplOiAzLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU2MjVlbTsgfVxuXG4udGV4dC1tZC1oMiB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAyLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI5ZW07IH1cblxuLnRleHQtbWQtaDMge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMDgzM2VtOyB9XG5cbi50ZXh0LW1kLWg0IHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXNpemU6IDIuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDU0NTVlbTsgfVxuXG4udGV4dC1tZC1oNSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMS42ZW07IH1cblxuLnRleHQtbWQtaDYge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS43Nzc3OGVtOyB9XG5cbi50ZXh0LW1kLXAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMmVtOyB9XG5cbi50ZXh0LWxnLWgxIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXNpemU6IDMuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTYyNWVtOyB9XG5cbi50ZXh0LWxnLWgyIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0MjllbTsgfVxuXG4udGV4dC1sZy1oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIwODMzZW07IH1cblxuLnRleHQtbGctaDQge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBsaW5lLWhlaWdodDogMS40NTQ1NWVtOyB9XG5cbi50ZXh0LWxnLWg1IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjZlbTsgfVxuXG4udGV4dC1sZy1oNiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc3Nzc4ZW07IH1cblxuLnRleHQtbGctcCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07IH1cblxuLnRleHQteGwtaDEge1xuICBmb250LXNpemU6IDMycHg7XG4gIGZvbnQtc2l6ZTogMy4ycmVtO1xuICBsaW5lLWhlaWdodDogMS41NjI1ZW07IH1cblxuLnRleHQteGwtaDIge1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMTQyOWVtOyB9XG5cbi50ZXh0LXhsLWgzIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjA4MzNlbTsgfVxuXG4udGV4dC14bC1oNCB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1NDU1ZW07IH1cblxuLnRleHQteGwtaDUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNmVtOyB9XG5cbi50ZXh0LXhsLWg2IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzc3NzhlbTsgfVxuXG4udGV4dC14bC1wIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTsgfVxuXG4vKipcclxuICogVGV4dCBhbGlnbm1lbnQgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKi9cbi50ZXh0LXhzLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXhzLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQteHMtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LXNtLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXNtLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtc20tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LW1kLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LW1kLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtbWQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWxnLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LWxnLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtbGctY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LXhsLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXhsLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQteGwtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qKlxyXG4gKiBGb250IHdlaWdodCB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqXHJcbiAqIDEuIE11bHRpcGx5IGxvb3BlZCBpbnRlZ2VyIGJ5IDEwMCBmb3IgY29ycmVjdCBmb250IHdlaWdodCB2YWx1ZS5cclxuICovXG4udGV4dC14cy0xMDAge1xuICBmb250LXdlaWdodDogMTAwOyB9XG5cbi50ZXh0LXhzLTIwMCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7IH1cblxuLnRleHQteHMtMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udGV4dC14cy00MDAge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0LXhzLTUwMCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRleHQteHMtNjAwIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4udGV4dC14cy03MDAge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50ZXh0LXhzLTgwMCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLnRleHQteHMtOTAwIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4udGV4dC1zbS0xMDAge1xuICBmb250LXdlaWdodDogMTAwOyB9XG5cbi50ZXh0LXNtLTIwMCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7IH1cblxuLnRleHQtc20tMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udGV4dC1zbS00MDAge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0LXNtLTUwMCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRleHQtc20tNjAwIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4udGV4dC1zbS03MDAge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50ZXh0LXNtLTgwMCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLnRleHQtc20tOTAwIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4udGV4dC1tZC0xMDAge1xuICBmb250LXdlaWdodDogMTAwOyB9XG5cbi50ZXh0LW1kLTIwMCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7IH1cblxuLnRleHQtbWQtMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udGV4dC1tZC00MDAge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0LW1kLTUwMCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRleHQtbWQtNjAwIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4udGV4dC1tZC03MDAge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50ZXh0LW1kLTgwMCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLnRleHQtbWQtOTAwIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4udGV4dC1sZy0xMDAge1xuICBmb250LXdlaWdodDogMTAwOyB9XG5cbi50ZXh0LWxnLTIwMCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7IH1cblxuLnRleHQtbGctMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udGV4dC1sZy00MDAge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0LWxnLTUwMCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRleHQtbGctNjAwIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4udGV4dC1sZy03MDAge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50ZXh0LWxnLTgwMCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLnRleHQtbGctOTAwIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4udGV4dC14bC0xMDAge1xuICBmb250LXdlaWdodDogMTAwOyB9XG5cbi50ZXh0LXhsLTIwMCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7IH1cblxuLnRleHQteGwtMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udGV4dC14bC00MDAge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0LXhsLTUwMCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRleHQteGwtNjAwIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4udGV4dC14bC03MDAge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50ZXh0LXhsLTgwMCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLnRleHQteGwtOTAwIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4vKipcclxuICogVGV4dCB0cmFuc2Zvcm0gdWl0bGl0eSBjbGFzc2VzLlxyXG4gKi9cbi50ZXh0LXhzLWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4udGV4dC14cy11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZXh0LXhzLWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLnRleHQteHMtbm9uZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi50ZXh0LXhzLWZ1bGwtd2lkdGgge1xuICB0ZXh0LXRyYW5zZm9ybTogZnVsbC13aWR0aDsgfVxuXG4udGV4dC1zbS1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLnRleHQtc20tdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udGV4dC1zbS1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi50ZXh0LXNtLW5vbmUge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4udGV4dC1zbS1mdWxsLXdpZHRoIHtcbiAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH1cblxuLnRleHQtbWQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi50ZXh0LW1kLXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnRleHQtbWQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuXG4udGV4dC1tZC1ub25lIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLnRleHQtbWQtZnVsbC13aWR0aCB7XG4gIHRleHQtdHJhbnNmb3JtOiBmdWxsLXdpZHRoOyB9XG5cbi50ZXh0LWxnLWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4udGV4dC1sZy11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZXh0LWxnLWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLnRleHQtbGctbm9uZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi50ZXh0LWxnLWZ1bGwtd2lkdGgge1xuICB0ZXh0LXRyYW5zZm9ybTogZnVsbC13aWR0aDsgfVxuXG4udGV4dC14bC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLnRleHQteGwtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udGV4dC14bC1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi50ZXh0LXhsLW5vbmUge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4udGV4dC14bC1mdWxsLXdpZHRoIHtcbiAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVmVydGljYWwgUmh5dGhtXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udnItMCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4udnItOCB7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4udnItMTYge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi52ci0yNCB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLnZyLTMyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuXG4udnItNDAge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbi52ci00OCB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7IH1cblxuLnZyLTU2IHtcbiAgbWFyZ2luLWJvdHRvbTogNTZweDsgfVxuXG4udnItNjQge1xuICBtYXJnaW4tYm90dG9tOiA2NHB4OyB9XG5cbi52ci03MiB7XG4gIG1hcmdpbi1ib3R0b206IDcycHg7IH1cblxuLnZyLTgwIHtcbiAgbWFyZ2luLWJvdHRvbTogODBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBaLWluZGV4XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogVXRpbGl0eSBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgc3RhY2tpbmcgb3JkZXIgaW4gSFRNTC5cclxuICovXG4uei1pbmRleC0wIHtcbiAgei1pbmRleDogMDsgfVxuXG4uei1pbmRleC0xIHtcbiAgei1pbmRleDogMTA7IH1cblxuLnotaW5kZXgtMiB7XG4gIHotaW5kZXg6IDIwOyB9XG5cbi56LWluZGV4LTMge1xuICB6LWluZGV4OiAzMDsgfVxuXG4uei1pbmRleC00IHtcbiAgei1pbmRleDogNDA7IH1cblxuLnotaW5kZXgtNSB7XG4gIHotaW5kZXg6IDUwOyB9XG5cbi56LWluZGV4LTYge1xuICB6LWluZGV4OiA2MDsgfVxuXG4uei1pbmRleC03IHtcbiAgei1pbmRleDogNzA7IH1cblxuLnotaW5kZXgtOCB7XG4gIHotaW5kZXg6IDgwOyB9XG5cbi56LWluZGV4LTkge1xuICB6LWluZGV4OiA5MDsgfVxuXG4uei1pbmRleC0xMCB7XG4gIHotaW5kZXg6IDEwMDsgfVxuIiwiLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlXG4gKi9cbi5vd2wtY2Fyb3VzZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHR3aWR0aDogMTAwJTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0LyogcG9zaXRpb24gcmVsYXRpdmUgYW5kIHotaW5kZXggZml4IHdlYmtpdCByZW5kZXJpbmcgZm9udHMgaXNzdWUgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXG5cdC5vd2wtc3RhZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQtbXMtdG91Y2gtYWN0aW9uOiBwYW4tWTtcblx0XHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0XHQtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqL1xuXHR9XG5cblx0Lm93bC1zdGFnZTphZnRlciB7XG5cdFx0Y29udGVudDogXCIuXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdGxpbmUtaGVpZ2h0OiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXG5cdC5vd2wtc3RhZ2Utb3V0ZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcblx0fVxuXG5cdC5vd2wtd3JhcHBlcixcblx0Lm93bC1pdGVte1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHRcdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0fVxuXG5cdC5vd2wtaXRlbSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1pbi1oZWlnaHQ6IDFweDtcblx0XHRmbG9hdDogbGVmdDtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0fVxuXHQub3dsLWl0ZW0gaW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdC5vd2wtbmF2LmRpc2FibGVkLFxuXHQub3dsLWRvdHMuZGlzYWJsZWQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQub3dsLW5hdiAub3dsLXByZXYsXG5cdC5vd2wtbmF2IC5vd2wtbmV4dCxcblx0Lm93bC1kb3Qge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG5cdC5vd2wtbmF2IGJ1dHRvbi5vd2wtcHJldixcblx0Lm93bC1uYXYgYnV0dG9uLm93bC1uZXh0LFxuXHRidXR0b24ub3dsLWRvdCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0cGFkZGluZzowIWltcG9ydGFudDtcblx0XHRmb250OiBpbmhlcml0O1xuXHR9XG5cblx0Ji5vd2wtbG9hZGVkIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYub3dsLWxvYWRpbmcge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLm93bC1oaWRkZW4ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQmLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG5cblx0Ji5vd2wtZHJhZyAub3dsLWl0ZW0ge1xuXHRcdHRvdWNoLWFjdGlvbjogcGFuLXk7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG5cdCYub3dsLWdyYWIge1xuXHRcdGN1cnNvcjogbW92ZTtcblx0XHRjdXJzb3I6IGdyYWI7XG5cdH1cblxuXHQmLm93bC1ydGwge1xuXHRcdGRpcmVjdGlvbjogcnRsO1xuXHR9XG5cblx0Ji5vd2wtcnRsIC5vd2wtaXRlbSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG59XG5cbi8qIE5vIEpzICovXG4ubm8tanMgLm93bC1jYXJvdXNlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2Vse1xuXHQuYW5pbWF0ZWQge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cdH1cblx0Lm93bC1hbmltYXRlZC1pbiB7XG5cdFx0ei1pbmRleDogMDtcblx0fVxuXHQub3dsLWFuaW1hdGVkLW91dCB7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXHQuZmFkZU91dCB7XG5cdFx0YW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG4iLCIvKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cbiAqL1xuXG4ub3dsLWhlaWdodCB7XG5cdHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbn1cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIExhenkgTG9hZCBQbHVnaW5cbiAqL1xuXG4ub3dsLWNhcm91c2VsIHtcblx0Lm93bC1pdGVtIHtcblx0XHQub3dsLWxhenkge1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0XHRUaGlzIGlzIGludHJvZHVjZWQgZHVlIHRvIGEgYnVnIGluIElFMTEgd2hlcmUgbGF6eSBsb2FkaW5nIGNvbWJpbmVkIHdpdGggYXV0b2hlaWdodCBwbHVnaW4gY2F1c2VzIGEgd3Jvbmdcblx0XHRcdGNhbGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQgb2YgdGhlIG93bC1pdGVtIHRoYXQgYnJlYWtzIHBhZ2UgbGF5b3V0c1xuXHRcdCAqL1xuXHRcdC5vd2wtbGF6eVtzcmNePVwiXCJdLCAub3dsLWxhenk6bm90KFtzcmNdKSB7XG5cdFx0XHRtYXgtaGVpZ2h0OiAwO1xuXHRcdH1cblxuXHRcdGltZy5vd2wtbGF6eSB7XG5cdFx0XHR0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuXHRcdH1cblx0fVxufVxuXG4iLCIkb3dsLWltYWdlLXBhdGg6IFwiXCIgIWRlZmF1bHQ7XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIFZpZGVvIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWx7XG5cdC5vd2wtdmlkZW8td3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5LWljb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0d2lkdGg6IDgwcHg7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRvcDogNTAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAtNDBweDtcblx0XHRtYXJnaW4tdG9wOiAtNDBweDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoXCIjeyRvd2wtaW1hZ2UtcGF0aH1vd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR6LWluZGV4OiAxO1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5LWljb246aG92ZXIge1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tdG4sXG5cdC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tdG4ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXHR9XG5cblx0Lm93bC12aWRlby1mcmFtZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCYXNlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIG1hcmdpbiBhbmQgcGFkZGluZyBmcm9tIGV2ZXJ5IHNlbGVjdG9yIGluY2x1ZGluZyB0aGVpclxyXG4gKiBwc3VlZG8gc2VsZWN0b3JzLlxyXG4gKlxyXG4gKiAxLiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94IHNpemluZy5cclxuICogICAgKGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZSkuXHJcbiAqL1xyXG5cclxuKixcclxuKjo6YmVmb3JlLFxyXG4qOjphZnRlciB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDsgLyogMSAqL1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNldCBoZWlnaHQgb2YgdGhlIGRvY3VtZW50IHRvIG1heGl1bSB2aWV3cG9ydCBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIFNldCByb290IGZvbnQgc2l6ZSB0byAxMC5cclxuICovXHJcblxyXG5odG1sIHtcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIGZvbnQtc2l6ZTogNjIuNSU7IC8qIDEgKi9cclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcbiAgQGluY2x1ZGUgdGV4dCgkYm9keS10ZXh0KTtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1xyXG4gIGNvbG9yOiAkYm9keS1jb2xvcjtcclxuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvKiAxICovXHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8qIDIgKi9cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBNaXhpbnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIFdyYXBwZXJcclxuLy8gQ2VudGVyIGFsaWducyBlbGVtZW50IHdpdGggZ2l2ZW4gbWF4aW11bSB3aWR0aCwgcGFkZGluZywgYW5kIG1hcmdpbnMgdG9wXHJcbi8vIGFuZCBib3R0b20uXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGdhcCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgd3JhcHBlcigxMDI0cHgsIDIwcHgpO1xyXG5AbWl4aW4gY29udGFpbmVyKCR3aWR0aDogJGdyaWQtd2lkdGgsICRnYXA6ICRncmlkLWdhcCkge1xyXG4gIEBpZiAodHlwZS1vZigkd2lkdGgpID09IG51bWJlciBhbmQgdHlwZS1vZigkZ2FwKSA9PSBudW1iZXIpIHtcclxuICAgIEBpZiAoJGdhcCAhPSAwKSB7XHJcbiAgICAgIG1heC13aWR0aDogY2FsYygjeyR3aWR0aH0gKyAjeygkZ2FwICogMil9KTtcclxuICAgICAgcGFkZGluZzogMCAkZ2FwO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIG1heC13aWR0aDogJHdpZHRoO1xyXG4gICAgfVxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnQXJndW1lbnRzIGAkd2lkdGhgIGFuZCBgJGdhcGAgc2hvdWxkIGJlIGEgbnVtYmVyJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBTZWN0aW9uXHJcbi8vIEFkZCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIHRvIGVsZW1lbnQgdXNpbmcgcGFkZGluZ3MuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkdG9wIC0gUGl4ZWwgdW5pdCB2YWx1ZS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRib3R0b20gLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAZXhhbXBsZVxyXG4vLyAgIEBpbmNsdWRlIHNlY3Rpb24oMTAwcHgsIDEwMHB4KTtcclxuQG1peGluIHNlY3Rpb24oJHRvcDogMCwgJGJvdHRvbTogMCkge1xyXG4gIEBpZiAodHlwZS1vZigkdG9wKSA9PSBudW1iZXIgYW5kIHR5cGUtb2YoJGJvdHRvbSkgPT0gbnVtYmVyKSB7XHJcbiAgICBwYWRkaW5nOiAkdG9wIDAgJGJvdHRvbTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnQXJndW1lbnRzIGAkdG9wYCBhbmQgYGJvdHRvbWAgc2hvdWxkIGJlIGEgbnVtYmVyJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBGb250XHJcbi8vIEFkZHMgYHJlbWAgdW5pdCBiYXNlZCBmb250IHNpemUgcHJvcGVydHksIGEgZmFsbGJhY2tcclxuLy8gYHB4YCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYW5kIGEgYGVtYCB1bml0IGJhc2VkIGxpbmUgaGVpZ2h0XHJcbi8vIHByb3BlcnR5IHRvIGFueSBydWxlLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGZvbnQtc2l6ZSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkbGluZS1oZWlnaHQgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAZXhhbXBsZVxyXG4vLyAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4LCAyNHB4KTtcclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XHJcbiAgQGlmICh0eXBlLW9mKCRmb250LXNpemUpID09IG51bWJlciBhbmQgdW5pdCgkZm9udC1zaXplKSA9PSAncHgnKSB7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XHJcbiAgICBmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdWYWx1ZSBmb3IgYCN7JGZvbnQtc2l6ZX1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcbiAgfVxyXG4gIEBpZiAodHlwZS1vZigkbGluZS1oZWlnaHQpID09IG51bWJlciBhbmQgdW5pdCgkbGluZS1oZWlnaHQpID09ICdweCcpIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodCAvICRmb250LXNpemUpICogMWVtKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnVmFsdWUgZm9yIGAjeyRsaW5lLWhlaWdodH1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gVGV4dFxyXG4vLyBTaG9ydGhhbmQgZm9yIHRoZSBmb250IG1peGluLCBydW5zIHRoZSBmb250IG1peGluIGJhc2VkIG9uIGEgY29tbW9uXHJcbi8vIGRlbWVhbm91ciBleGlzdGluZyBib3RoIGluIHRoZSBgJGZvbnQtc2l6ZWAgYW5kIHRoZSBgJGxpbmUtaGVpZ2h0YCBtYXBzLlxyXG4vLyBAcGFyYW0ge3N0cmluZ30gJHZhbHVlIC0gU3RyaW5nXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgdGV4dCgncCcpO1xyXG5AbWl4aW4gdGV4dCgkdmFsdWUpIHtcclxuICBAaWYgKHR5cGUtb2YoJHZhbHVlKSA9PSBzdHJpbmcpIHtcclxuICAgIEBpbmNsdWRlIGZvbnQobWFwLWdldCgkZm9udC1zaXplLCAkdmFsdWUpLCBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJHZhbHVlKSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ1ZhbHVlIHNob3VsZCBiZSBhIHN0cmluZyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gRm9udCBBd2Vzb21lXHJcbi8vIEFkZCBGb250IEF3ZXNvbWUgaWNvbnMgYXMgcHN1ZWRvIGVsZW1lbnRzIGJ5IHVzaW5nIHRoZWlyIHVuaWNvZGUuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkY29udGVudCAtIFVuaWNvZGUgc3RyaW5nLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGZhbWlseSAtIEZvbnQgQXdlc29tZSBmb250IGZhbWlseSBzdHJpbmcuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YxMDAnLCAnTGlnaHQnKTtcclxuQG1peGluIGZvbnRhd2Vzb21lKCRjb250ZW50LCAkZmFtaWx5KSB7XHJcbiAgQGlmICh0eXBlLW9mKCRmYW1pbHkpID09IHN0cmluZykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgI3skZmFtaWx5fSc7XHJcbiAgICBjb250ZW50OiB1bmljb2RlKCRjb250ZW50KTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnQXJndW1lbnQgYCRmYW1pbHlgIHNob3VsZCBiZSBhIHN0cmluZyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gTWVkaWFcclxuLy8gTWVkaWEgcXVlcmllcyBhY2NvcmRpbmcgdG8gXCJUaGUgMTAwJSBDb3JyZWN0IFdheSBUbyBEbyBDU1MgQnJlYWtwb2ludHNcIlxyXG4vLyAoaHR0cHM6Ly9tZWRpdW0uZnJlZWNvZGVjYW1wLmNvbS90aGUtMTAwLWNvcnJlY3Qtd2F5LXRvLWRvLWNzcy1icmVha3BvaW50cy04OGQ2YTViYTE4NjIpLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBCcmVha3BvaW50IHBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge31cclxuQG1peGluIG1lZGlhKCRicmVha3BvaW50KSB7XHJcbiAgQGlmIChtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xyXG4gICAgQGlmIChtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpID09IDApIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdWYWx1ZSBpcyBub3QgaW4gbWFwIGAkYnJlYWtwb2ludHNgJztcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhXHJcbi8vIE1lZGlhIHF1ZXJpZXMgYWNjb3JkaW5nIHRvIFwiVGhlIDEwMCUgQ29ycmVjdCBXYXkgVG8gRG8gQ1NTIEJyZWFrcG9pbnRzXCJcclxuLy8gKGh0dHBzOi8vbWVkaXVtLmZyZWVjb2RlY2FtcC5jb20vdGhlLTEwMC1jb3JyZWN0LXdheS10by1kby1jc3MtYnJlYWtwb2ludHMtODhkNmE1YmExODYyKS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRzaXplIC0gQnJlYWtwb2ludCBwaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAZXhhbXBsZVxyXG4vLyAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHt9XHJcbkBtaXhpbiBtZWRpYSgkc2l6ZSkge1xyXG4gIEBpZiAoJHNpemUgPT0gJ2Rlc2t0b3AnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDkwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDkwMHB4KSBhbmQobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSBhbmQobWF4LXdpZHRoOiA4OTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogODk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkgYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICdwaG9uZScpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWF4LXdpZHRoOiA1OTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUeXBvZ3JhcGh5XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBGb250IGZhbWlseSBtYXAuXHJcbiRmb250LWZhbWlseTogKFxyXG4gICdkZWZhdWx0JzogJ1NvdXJjZSBTYW5zIFBybydcclxuKTtcclxuXHJcblxyXG4vLyBGb250IHNpemUgbWFwLlxyXG4kZm9udC1zaXplOiAoXHJcbiAgJ2gxJzogMzJweCxcclxuICAnaDInOiAyOHB4LFxyXG4gICdoMyc6IDI0cHgsXHJcbiAgJ2g0JzogMjJweCxcclxuICAnaDUnOiAyMHB4LFxyXG4gICdoNic6IDE4cHgsXHJcbiAgJ3AnOiAxNnB4XHJcbik7XHJcblxyXG5cclxuLy8gTGluZSBoZWlnaHQgbWFwLlxyXG4kbGluZS1oZWlnaHQ6IChcclxuICAnaDEnOiA1MHB4LFxyXG4gICdoMic6IDM0cHgsXHJcbiAgJ2gzJzogMjlweCxcclxuICAnaDQnOiAzMnB4LFxyXG4gICdoNSc6IDMycHgsXHJcbiAgJ2g2JzogMzJweCxcclxuICAncCc6IDMycHhcclxuKTtcclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRnVuY3Rpb25zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBVbmljb2RlXHJcbi8vIFByZXNlcnZlIGVzY2FwZWQgdW5pY29kZSBzdHJpbmcuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gQW4gdW5pY29kZSBzdHJpbmcuXHJcbi8vIEByZXR1cm4ge1N0cmluZ30gQSBwcmVzZXJ2ZWQgZXNjYXBlZCB1bmljb2RlIHN0cmluZ1xyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBxdW90ZXNcclxuQGZ1bmN0aW9uIHVuaWNvZGUoJHN0cmluZykge1xyXG4gIEByZXR1cm4gdW5xdW90ZShcIlxcJ1wiKSArIHVucXVvdGUoc3RyLWluc2VydCgkc3RyaW5nLCAnXFxcXCcsIDEpKSArIHVucXVvdGUoXCJcXCdcIik7XHJcbn1cclxuLy8gc2Fzcy1saW50OmVuYWJsZSBxdW90ZXNcclxuXHJcblxyXG4vLyBSRU1cclxuLy8gQ29udmVydCBwaXhlbCB1bml0cyB0byBSRU0gdW5pdHMuXHJcbi8vIEBwYXJhbSB7TnVtYmVyfSAkcGl4ZWxzIC0gUGl4ZWwgdmFsdWUuXHJcbi8vIEByZXR1cm4geyp9IC0gQSBjb252ZXJ0ZWQgYHJlbWAgdW5pdC5cclxuQGZ1bmN0aW9uIHJlbSgkcGl4ZWxzKSB7XHJcbiAgQGlmICh1bml0bGVzcygkcGl4ZWxzKSkge1xyXG4gICAgQGVycm9yICdWYWx1ZSBmb3IgYCN7JHBpeGVsc31gIHNob3VsZCBiZSBhIGBweGAgdW5pdC4nO1xyXG4gIH1cclxuICBAcmV0dXJuICgoJHBpeGVscyAvIDEwcHgpICogMXJlbSk7XHJcbn1cclxuXHJcblxyXG4vLyBDb2x1bW5cclxuLy8gQ2FsY3VsYXRlIGdpdmVuIGNvbHVtbiB3aWR0aC5cclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW4gLSBUaGUgYW1vdW50IG9mIGNvbHVtbnMgdG8gc3Bhbi5cclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gVGhlIGFtb3VudCBvZiBjb2x1bW5zIHRoYXQgY2FuIGJlIHNwYW5uZWQuXHJcbi8vIEByZXR1cm4ge1N0cmluZ30gLSBQZXJjZW50YWdlIHZhbHVlLlxyXG5AZnVuY3Rpb24gY29sdW1uKCRjb2x1bW4sICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XHJcbiAgQHJldHVybiAoJGNvbHVtbiAgKiAxMDAlIC8gJGNvbHVtbnMpO1xyXG59XHJcblxyXG5cclxuLy8gQ29sb3JcclxuLy8gR2V0IGEgY29sb3IgdmFsdWUgZnJvbSB0d28gbGV2ZWxzIGRlZXAgaW4gdGhlIGAkY29sb3JgIG1hcC5cclxuLy8gQHBhcmFtIHskc3RyaW5nfSAka2V5IC0gS2V5IG9mIHRoZSBjb2xvciB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgb2YgdGhlIGtleSB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4vLyBAcmV0dXJuIHsqfSBBIEhTTEEgY29sb3IgdmFsdWUuXHJcbkBmdW5jdGlvbiBjb2xvcigka2V5LCAkdmFsdWUpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAka2V5KSwgJHZhbHVlKTtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBSZXNldFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEN1c3RvbSB1c2VyIGFnZW50IHJlc2V0cyBhbmQgb3ZlcnJpZGVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluXHJcbiAqIE5vcm1hbGl6ZSA4LjAuMC4gVGhpcyBtb3N0bHkgcmVtb3ZlcyBzb21lIGFubm95aW5nIG1hcmdpbiBhbmQgcGFkZGluZ1xyXG4gKiBkZWZhdWx0cywgYm9yZGVyIHJhZGl1cywgYW5kIG91dGxpbmVzLlxyXG4gKi9cclxuXHJcbmEge1xyXG4gIGNvbG9yOiBpbmhlcml0O1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgYm9yZGVyIHJhZGl1cyBvbiBDaHJvbWUgNjIuMCsgb24gbWFjT1MuXHJcbiAqL1xyXG5cclxuYnV0dG9uIHtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMDsgLyogMSAqL1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbmZpZWxkc2V0IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbmZpZ3VyZSB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbmhyIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgd2hpdGUgc3BhY2UuXHJcbiAqL1xyXG5cclxuaW1nIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDEgKi9cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgaW5oZXJpdGVkIHVzZXIgYWdlbnQgYXBwZWFyYW5jZS5cclxuICovXHJcblxyXG5pbnB1dCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYXBwZWFyYW5jZTogbm9uZTsgLyogMSAqL1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIE9ubHkgYWxsb3cgdmVydGljYWwgcmVzaXppbmcgdG8gcHJldmVudCB0aGUgdGV4dGFyZWFcclxuICogICAgZnJvbSBvdmVyZmxvd2luZyB0aGUgY29udGFpbmVyLlxyXG4gKi9cclxuXHJcbnRleHRhcmVhIHtcclxuICByZXNpemU6IHZlcnRpY2FsO1xyXG59XHJcblxyXG51bCxcclxub2wge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxufVxyXG5cclxucCB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIENvbGxhcHNlIGJvcmRlcnMgdG8gcHJldmVudCBkb3VibGUgc2lkZWQgYm9yZGVycy5cclxuICovXHJcblxyXG50YWJsZSB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IC8qIDEgKi9cclxufVxyXG5cclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRhaW5lclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjb250YWluZXIgb2JqZWN0IGNlbnRlcnMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuXHJcbiAqL1xyXG5cclxuLmNvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgY29udGFpbmVyO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIERlZmluaXRpb25zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBHcmlkXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBHcmlkIHdpZHRoLlxyXG4vLyBNYXhpbXVtIGNvbnRhaW5lciB3aWR0aC5cclxuJGdyaWQtd2lkdGg6IDEwMjRweDtcclxuXHJcbi8vIEdyaWQgY29sdW1ucy5cclxuLy8gQW1vdW50IG9mIGdyaWQgY29sdW1ucyB0byBjYWxjdWxhdGUgYSBjb2x1bW4gd2lkdGggd2l0aC5cclxuJGdyaWQtY29sdW1uczogMTI7XHJcblxyXG4vLyBHcmlkIGNvbHVtbi5cclxuLy8gQ29sdW1uIHdpZHRoIGluIHBpeGVscy5cclxuJGdyaWQtY29sdW1uOiA2MHB4O1xyXG5cclxuLy8gR3JpZCBnYXAuXHJcbi8vIFNwYWNlIGJldHdlZW4gZ3JpZCBjb2x1bW5zLCBhdXRvbWF0ZWQuXHJcbiRncmlkLWdhcDogKCRncmlkLXdpZHRoIC0gKCRncmlkLWNvbHVtbiAqICRncmlkLWNvbHVtbnMpKSAvICRncmlkLWNvbHVtbnM7XHJcblxyXG5cclxuLy8gQXNzZXRzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBJbWFnZSBwYXRoLlxyXG4kaW1hZ2UtcGF0aDogJy4uL2ltYWdlcy8nO1xyXG5cclxuXHJcbi8vIEJvZHlcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEJvZHkgYmFja2dyb3VuZCBjb2xvci5cclxuJGJvZHktYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuXHJcbi8vIEJvZHkgY29sb3IuXHJcbiRib2R5LWNvbG9yOiAkY29sb3ItZ3JleS00MDA7O1xyXG5cclxuLy8gQm9keSBmb250IGZhbWlseS5cclxuJGJvZHktZm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAnZGVmYXVsdCcpO1xyXG5cclxuLy8gQm9keSB0ZXh0LlxyXG4kYm9keS10ZXh0OiAncCc7XHJcblxyXG5cclxuLy8gT3RoZXJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIExpbmsgY29sb3IuXHJcbiRsaW5rLWNvbG9yOiAkY29sb3ItYmxhY2stMTAwO1xyXG5cclxuXHJcbi8vIFJlc3BvbnNpdmVcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEdyaWQgYnJlYWtwb2ludCBhbGlhcy5cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgeHM6IDAsXHJcbiAgc206IDYwMHB4LFxyXG4gIG1kOiA3NjhweCxcclxuICBsZzogMTAyNHB4LFxyXG4gIHhsOiAxMjAwcHhcclxuKTtcclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGVudCBDb25zdHJhaW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogVGhlIGNvbnRlbnQgY29uc3RyYWludCBpcyBhIGNvbnN0cmFpbnQgZm9yIGFsbCB0aGUgY29udGVudCB3aXRoaW5cclxuICogdGhlIGRvY3VtZW50LiBJdCBjYW4gYmUgbWFuaXB1bGF0ZWQgYnkgQ1NTIG9yIEphdmFTY3JpcHQgd2l0aG91dFxyXG4gKiBpbmZsdWVuY2luZyB0aGUgYm9keS5cclxuICovXHJcblxyXG4uY29udGVudC1jb25zdHJhaW50IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRmxleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEV4YW1wbGUgb2YgYSBmbGV4IGJhc2VkIGNvbHVtbiBncmlkIGxheW91dCBpbiBwcmFjdGljZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cclxuICogPC9kaXY+XHJcbiAqXHJcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxyXG4gKiBvZiB0aGUgcm93IG9uIGFsbCBtZWRpYSwgYnV0IHdpbGwgY29udmVydCB0byBhIGZ1bGwgd2lkdGggY29sdW1uIG9uIHRoZVxyXG4gKiBzbWFsbCBgLXNtYCBicmVha3BvaW50IGFsaWFzLCB3aGljaCBpcyBtb2JpbGUgb25seS4gUmVmZXIgdG9cclxuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEZsZXggb2JqZWN0LlxyXG4gKlxyXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cclxuICovXHJcblxyXG4uZmxleCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGbGV4IG9iamVjdCB3aXRoIGEgY29sdW1uIGJhc2VkIGxheW91dCBzeXN0ZW0uXHJcbiAqL1xyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIG1hcmdpbjogMCAtI3soJGdyaWQtZ2FwLzIpfTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCb3gsIHRoZSBpbnNpZGUgb2YgYSBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLmJveCB7XHJcbiAgZmxleDogMTtcclxufVxyXG5cclxuXHJcbi8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIGtleXMgaW4gdGhlIGAkYnJlYWtwb2ludHNgIHZhcmlhYmxlIG1hcCBkZWZpbmVkIGluXHJcbi8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xyXG5cclxuICAvLyBDcmVhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZXZlcnkga2V5IGluIGAkYnJlYWtwb2ludHNgLlxyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuXHJcbiAgICAvLyBJdGVyYXRlIGZyb20gMSB0aHJvdWdoIHRoZSBhbW91bnQgb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnlcclxuICAgIC8vIGAkZ3JpZC1jb2x1bW5zYCBpbiBgc2V0dGluZ3MvX2RlZmluaXRpb25zLnNjc3NgLlxyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcclxuXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gI3skaX0gZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuY29sLSN7JGtleX0tI3skaX0ge1xyXG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiBjb2x1bW4oJGkpO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgKCRncmlkLWdhcC8yKTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC8vIE91dHB1dCBhbiBvZmZzZXQgdXRpbGl0eSBjbGFzcyBpZiB0aGUgaXRlcmF0b3IgaXMgbGVzcyB0aGFuIHRoZSBhbW91bnRcclxuICAgICAgLy8gb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnkgYCRncmlkLWNvbHVtbnNgIGluXHJcbiAgICAgIC8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcbiAgICAgIEBpZiAoJGkgPCAkZ3JpZC1jb2x1bW5zKSB7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAjeyRpfSBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xyXG5cclxuICAgICAgICAub2Zmc2V0LSN7JGtleX0tI3skaX0ge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGFsaWduLWl0ZW1zYCBwcm9wZXJ0eS5cclxuICAgIEBlYWNoICR2YWx1ZSBpbiBzdHJldGNoLCBjZW50ZXIsIGZsZXgtc3RhcnQsIGZsZXgtZW5kLCBiYXNlbGluZSB7XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogQWxpZ24gYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgLmFsaWduLSN7JGtleX0tI3skdmFsdWV9IHtcclxuICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGp1c3RpZnktY29udGVudGAgcHJvcGVydHkuXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gc3RhcnQsIGNlbnRlciwgc3BhY2UtYmV0d2Vlbiwgc3BhY2UtYXJvdW5kLCBzcGFjZS1ldmVubHkge1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgLmp1c3RpZnktI3ska2V5fS0jeyR2YWx1ZX0ge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBldmVyeSBkaXJlY3Rpb24gZnJvbSBsZWZ0IHRvIHJpZ2h0LlxyXG4gICAgQGVhY2ggJGRpcmVjdGlvbiBpbiBsZWZ0LCByaWdodCB7XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogQmxlZWQgI3skZGlyZWN0aW9ufSBmb3IgdGhlICN7JGtleX0gYnJlYWtwb2ludC5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuYmxlZWQtI3ska2V5fS0jeyRkaXJlY3Rpb259IHtcclxuICAgICAgICBwYWRkaW5nLSN7JGRpcmVjdGlvbn06IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICovXHJcblxyXG4gICAgLmZpcnN0LSN7JGtleX0ge1xyXG4gICAgICBvcmRlcjogLTE7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3JkZXIgbGFzdCBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICovXHJcblxyXG4gICAgLmxhc3QtI3ska2V5fSB7XHJcbiAgICAgIG9yZGVyOiAxO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAqL1xyXG5cclxuICAgIC5yZXZlcnNlLSN7JGtleX0ge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFNlY3Rpb25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQnJlYWRjcnVtYnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBNYWluIGVsZW1lbnQuXHJcbiAqL1xyXG5cclxuLmJyZWFkY3J1bWJzIHtcclxuICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tdG9wOiAxODBweDtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgd2lkdGg6IDkwJTtcclxuICB9XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBtYXJnaW46IDAgM3B4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIC8vY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3BhbiB7XHJcblxyXG4gICAgJjpudGgtbGFzdC1jaGlsZCgzKSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53cmFwcGVyLWxnICsgLmJyZWFkY3J1bWJzIHtcclxuICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQnV0dG9uXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUHJpbWFyeS5cclxuICovXHJcblxyXG4uYnV0dG9uLWJsdWUge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nOiAxMHB4IDE5cHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcztcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3ItYmx1ZS0xMDAsIDUlKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVHJhbnNwYXJlbnQgd2l0aCBibGFjayBib3JkZXIuXHJcbiAqL1xyXG5cclxuLmJ1dHRvbi10cmFucyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6IDlweCAxOXB4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGNvbG9yIDE0MG1zO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibGFjay0xMDA7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibGFjay0xMDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ01TIE91dHB1dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEV2ZXJ5IGNvbmNlaXZhYmxlIEhUTUwgZWxlbWVudCB3aXRoaW4gYSBgLmNtcy1vdXRwdXRgIHdyYXBwZXIuXHJcbiAqXHJcbiAqIDEuIEV4Y2x1ZGUgbGFzdCBjaGlsZHMuXHJcbiAqL1xyXG5cclxuLmNtcy1vdXRwdXQge1xyXG5cclxuICA+ICoge1xyXG5cclxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTsgLyogMSAqL1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG4gIH1cclxuXHJcbiAgb2wge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xyXG4gIH1cclxuXHJcbiAgcCA+IGEge1xyXG4gICAgY29sb3I6ICRsaW5rLWNvbG9yO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQ29udGFjdCB0ZWFzZXJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5jb250YWN0LXRlYXNlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMjBweCAwIDA7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWdyZXktMTAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmV5LTEwMDtcclxuICB9XHJcblxyXG4gIG1hcmdpbjogNzVweCAwO1xyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmN0X190aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogNzFweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIycHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgZm9udC1zaXplOiAzNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogNDJweDtcclxuICB9XHJcblxyXG4gIC5jdF9fY29sdW1uIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzQlIC0gMjBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTBweCk7XHJcbiAgfVxyXG59XHJcblxyXG4uY3RfX3dyYXBwZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQnKSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi5jdF9fbWFwcyB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcblxyXG4gICAgaWZyYW1lIHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcblxyXG4gICAgaWZyYW1lIHtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAmLmN0X19jb2x1bW4ge1xyXG4gICAgICB3aWR0aDogMjU2cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcmdpbi10b3A6IDc1cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIGlmcmFtZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgd2lkdGg6IDI1NnB4O1xyXG4gICAgfVxyXG4gICAgLy93aWR0aDogMjUwcHg7XHJcbiAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmN0X190aXRsZS1jb250ZW50IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAuY3RfX3RvZ2dsZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEycHg7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgfVxyXG5cclxuICAuY3RfX3RvZ2dsZS1hY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZTtcclxuICB9XHJcbn1cclxuXHJcbi5jdF9fbGVmdCxcclxuLmN0X19yaWdodCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgcGFkZGluZy10b3A6IDA7ICAgXHJcbiAgfVxyXG5cclxuICBwYWRkaW5nLXRvcDogNjhweDtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktNDAwO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG59XHJcblxyXG4uY3RfX2VkaXRvci1sZWZ0IHtcclxuXHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICBwYWRkaW5nOiAwIDhweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8vYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xyXG4gICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgICBjb250ZW50OiAnXFxmNTQwJztcclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY3RfX2FwcG9pbnRtZW50IHtcclxuICBkaXNwbGF5OiB0YWJsZTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAvL2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMTlkZGQgMCUsICMwMDkzY2YgMTAwJSk7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMyk7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMC43NTtcclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEFkZGl0aW9uYWwgcnVsZXMgZm9yIHRoaXMgZWxlbWVudFxyXG4gKi9cclxuXHJcbi5kb3VibGUtY29sdW1uICsgLmNvbnRhY3QtdGVhc2VyIHtcclxuICBtYXJnaW46IC02MHB4IDAgNzVweDtcclxufVxyXG5cclxuLmJhY2tncm91bmQtY29sb3ItZ3JleSArIC5jb250YWN0LXRlYXNlciB7XHJcbiAgbWFyZ2luLXRvcDogNjVweDtcclxufVxyXG5cclxuLmN0X19lbGVtZW50LWlzLWFjdGl2ZSB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENvbnRlbnQgZm9ybS5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5jb250ZW50LWZvcm0ge1xyXG4gIHBhZGRpbmc6IDEzMHB4IDA7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRGF0ZXBpY2tlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVpLWRhdGVwaWNrZXIge1xyXG4gIG1hcmdpbi10b3A6IDVweDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAvLyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1sYXJnZTtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWRlZmF1bHQge1xyXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWhvdmVyIHtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvZHktYmFja2dyb3VuZC1saWdodDtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsYWNrLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoJ2JvbGQnKTtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsYWNrLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoJ2JvbGQnKTtcclxufVxyXG5cclxuLy8gLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXIgLnVpLXN0YXRlLWhpZ2hsaWdodC51aS1zdGF0ZS1hY3RpdmUge1xyXG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1icmFuZC1ibHVlO1xyXG4vLyB9XHJcblxyXG4udWktZGF0ZXBpY2tlciAudWktY29ybmVyLWFsbDo6YmVmb3JlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLWNvcm5lci1hbGwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dDo6YmVmb3JlIHtcclxuICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjEwNScsICdSZWd1bGFyJyk7XHJcbn1cclxuXHJcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXY6OmJlZm9yZSB7XHJcbiAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YxMDQnLCAnUmVndWxhcicpO1xyXG59XHJcblxyXG4udWktZGF0ZXBpY2tlciAudWktY29ybmVyLWFsbCAudWktaWNvbiB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC51aS1zdGF0ZS1ob3ZlciB7XHJcbiAgcmlnaHQ6IDJweDtcclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi51aS1zdGF0ZS1ob3ZlciB7XHJcbiAgbGVmdDogMnB4O1xyXG59XHJcblxyXG4udWktZGF0ZXBpY2tlciAudWktY29ybmVyLWFsbC51aS1zdGF0ZS1ob3ZlciB7XHJcbiAgdG9wOiAycHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib2R5LWJhY2tncm91bmQtbGlnaHQ7XHJcbn1cclxuXHJcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1pbi1oZWlnaHQ6IDI1cHg7XHJcbiAgbWFyZ2luOiAxcHggNHB4O1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxuICAvLyBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgLy8gY29sb3I6ICRjb2xvci1ib2R5O1xyXG4gIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9keTtcclxuICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoJ2xpZ2h0Jyk7XHJcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XHJcbiAgYXBwZWFyYW5jZTogbWVudWxpc3Q7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRG91YmxlIGNvbHVtblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmRvdWJsZS1jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICYuYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbi10cmFucyB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRjX19jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA0OCU7XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDUlO1xyXG4gIH1cclxuXHJcbiAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBwYWRkaW5nLXRvcDogMTE1cHg7XHJcbiAgfVxyXG5cclxuICBwYWRkaW5nOiAyMHB4IDA7XHJcblxyXG4gIC5kY19fY29sdW1uLXRpdGxlIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuZGNfX3RpdGxlIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZm9udC1zaXplOiAzMHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzhweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgICAgZm9udC1zaXplOiAzNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICBmb250LXNpemU6IDQwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRjX19lZGl0b3Ige1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JleS00MDA7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG5cclxuICBwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uLXBhcmtpbmcge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgLy9iYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXGY1NDAnO1xyXG4gICAgfVxyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVsIHtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDAgMjVweCAwIC0xNXB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IEZyZWUnO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICAgICAgY29udGVudDogJ1xcZjAwYyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5kY19fbGVmdCB7XHJcbiAgLmRjX19lZGl0b3Ige1xyXG4gICAgaW1nIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6Y292ZXInO1xyXG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRhYmxlIHtcclxuICAgIC8vT25seSB1c2UgdGhpcyBvbiBhIHRhYmxlIGNyZWF0ZWQgd2l0aGluIHRoZSBXWVNJV1lHIGVkaXRvci5cclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgdGQge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDk5LjklO1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIH1cclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5kY19fcmlnaHQge1xyXG4gIGltZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDpjb3Zlcic7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB9XHJcblxyXG4gIC5kY19fdGl0bGUge1xyXG4gICAgd2lkdGg6IDM0MHB4O1xyXG4gIH1cclxuXHJcbiAgdGFibGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4uYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcclxuICBwYWRkaW5nOiAxNTBweCAwO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOWZiZmIgMCUsICNmMmY0ZjUgMTAwJSk7XHJcbn1cclxuXHJcbi8vQWRkaXRpb25hbCBydWxlc1xyXG5cclxuLy8gLmRlZmF1bHQtY29udGVudCAud3JhcHBlci1sZyArIC5kb3VibGUtY29sdW1uIHtcclxuLy8gICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4vLyB9XHJcblxyXG4ud3JhcHBlci1sZyArIC5kb3VibGUtY29sdW1uIHtcclxuICBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxufVxyXG5cclxuLnRyZWF0bWVudC10ZWFzZXJzLWNvbnRlbnQge1xyXG5cclxuICAuZGNfX3JpZ2h0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy9wYWRkaW5nLXRvcDogMTE1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uaGVhZGVyICsgLmRlZmF1bHQtY29udGVudCB7XHJcblxyXG4gIC8vIC5icmVhZGNydW1icyB7XHJcbiAgLy8gICBtYXJnaW4tdG9wOiAxMDBweDtcclxuICAvLyAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgLy8gfVxyXG5cclxuICAuZGVmYXVsdC1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgbWFyZ2luLXRvcDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgbWFyZ2luLXRvcDogNTBweDtcclxuXHJcbiAgICAuZGNfX2NvbHVtbiB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2lkdGg6IDQ1JTtcclxuICAgIH1cclxuXHJcbiAgICAuZGNfX3JpZ2h0IHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vcGFkZGluZy10b3A6IDk1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGVhbSArIC5kb3VibGUtY29sdW1uIHtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAvL2hlaWdodDogMjAwcHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDkwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgLmRjX19jb2x1bW4ge1xyXG5cclxuICAgICY6bnRoLWNoaWxkKDEpIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgfVxyXG5cclxuICAgICAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZGNfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzhweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgZm9udC1zaXplOiAzNXB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1zaXplOiA0MHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG4uZGVmYXVsdCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBtYXJnaW46IDQwcHggYXV0byAxMjBweDtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA5MCU7XHJcbiAgbWF4LXdpZHRoOiA2NTBweDtcclxuICBtYXJnaW46IDQwcHggYXV0byA4MHB4O1xyXG59XHJcblxyXG4uZGVmYXVsdCArIC5jb250YWN0LXRlYXNlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBtYXJnaW46IC01MHB4IDAgNzVweDtcclxuICB9XHJcbn1cclxuXHJcbi5kb3VibGUtY29sdW1uICsgLmJhY2tncm91bmQtY29sb3ItZ3JleSB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmc6IDEyMHB4IDAgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi5zbGlkZXNob3cgKyAuZG91YmxlLWNvbHVtbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICB9XHJcblxyXG4gIG1hcmdpbi10b3A6IDEwMHB4O1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEZvb3RlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmZvb3RlciB7XHJcbiAgcGFkZGluZzogNTBweCAwO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JleS0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci1ncmV5LTQwMDtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldCcpIHtcclxuICAgICAgd2lkdGg6IDkwJTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICB9XHJcblxyXG4gIC5mX19jb2x1bW4ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICBtYXJnaW46IDIwcHggYXV0bztcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKDEpIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDI1JTtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgIHdpZHRoOiA1NSU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoMykge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZfX2xvZ28ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDUwcHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgIFxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKDIpLFxyXG4gICAgJjpudGgtY2hpbGQoMykge1xyXG4gICAgICBcclxuICAgICAgaW1nIHtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZl9fbG9nby10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyX19tb2JpbGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAxMHB4O1xyXG4gIGxlZnQ6IDA7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgd2lkdGg6IDk2JTtcclxuICBoZWlnaHQ6IDYwcHg7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEzcHggMCByZ2JhKDAsIDAsIDAsIDAuMjMpO1xyXG4gIHotaW5kZXg6IDQwO1xyXG5cclxuICAuZm1fX2NvbHVtbiB7XHJcbiAgICB3aWR0aDogMjUlO1xyXG4gICAgbWFyZ2luOiAxMHB4IDA7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3ItZ3JleS0xMDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1sYXN0LWNoaWxkKDEpIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBHZm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gSUUgZml4ZXMuXHJcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLy8gRmlsZSBjb25maWd1cmF0aW9uLlxyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBjbGFzcy1uYW1lLWZvcm1hdCBuby1jb2xvci1saXRlcmFscyBuby1pZHMgaWQtbmFtZS1mb3JtYXRcclxuXHJcbi5mb3JtX19zd2l0Y2gge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbjogLTIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmZvcm1fX3N3aXRjaC1pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgQGluY2x1ZGUgZm9udCgyMnB4LCAzNHB4KTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGZvbnQoMzRweCwgNDJweCk7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogY2FsYygxMDAlIC8gMyAtIDQwcHgpO1xyXG4gIG1hcmdpbjogMjBweCAyMHB4IDkwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtMzAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgb3BhY2l0eTogMC4yNjtcclxuXHJcbiAgLy8gJjo6YWZ0ZXIge1xyXG4gIC8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIC8vICAgYm90dG9tOiAwO1xyXG4gIC8vICAgbGVmdDogMDtcclxuICAvLyAgIHdpZHRoOiA3MHB4O1xyXG4gIC8vICAgaGVpZ2h0OiA2cHg7XHJcbiAgLy8gICB0cmFuc2l0aW9uOiB3aWR0aCAxNDBtcztcclxuICAvLyAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICAvLyAgIGNvbnRlbnQ6ICcnO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gJi5pcy1hY3RpdmUge1xyXG4gIC8vICAgb3BhY2l0eTogMTtcclxuXHJcbiAgLy8gICAmOjphZnRlciB7XHJcbiAgLy8gICAgIHdpZHRoOiAxNTBweDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbn1cclxuXHJcbi5mb3JtX19pdGVtIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIC5nZm9ybV9pbnRyby10ZXh0IHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgICB3aWR0aDogNjYuNjY2NyU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6bnRoLWNoaWxkKDIpIHtcclxuICAgIC5nZm9ybV9pbnRyby10ZXh0IHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgICB3aWR0aDogNjYuNjY2NyU7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOm50aC1jaGlsZCgzKSB7XHJcbiAgICAuZ2Zvcm1faW50cm8tdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICAgICAgd2lkdGg6IDY2LjY2NjclO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogRm9ybSBmaWVsZC5cclxuICovXHJcblxyXG4uZ2ZpZWxkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHJcbiAgJi5oaWRkZW5fbGFiZWwgPiAuZ2ZpZWxkX2xhYmVsIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLmhpZGRlbl9sYWJlbCA+IC5naW5wdXRfY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIVE1MLlxyXG4gKi9cclxuXHJcbi5nZm9ybV9odG1sIHtcclxuICBwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblxyXG4gICAgJjpudGgtbGFzdC1jaGlsZCgxKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhpZGUgc2VjdGlvbi5cclxuICovXHJcblxyXG4uZ2Zvcm1faGlkZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCb2R5LlxyXG4gKi9cclxuXHJcbi5nZm9ybV9ib2R5IHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbHVtbnMuXHJcbiAqL1xyXG5cclxuLmdmb3JtX2NvbHVtbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbjogLTMwcHg7XHJcbn1cclxuXHJcbi5nZm9ybV9jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICB3aWR0aDogNTAlO1xyXG4gIHBhZGRpbmc6IDMwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2VjdGlvbi5cclxuICovXHJcblxyXG4uZ3NlY3Rpb25fdGl0bGUge1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JleS00MDA7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRm9ybSBsYWJlbC5cclxuICovXHJcblxyXG4uZ2ZpZWxkX2xhYmVsIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxODBweDtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29udGFpbmVyLlxyXG4gKi9cclxuXHJcbi5naW5wdXRfY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDE4MHB4KTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250YWluZXIgW3NlbGVjdF1cclxuICovXHJcblxyXG4uZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgLmdmaWVsZF9zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHBhZGRpbmc6IDAgMTVweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmNhY2Y7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA4KTtcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMGQ3JywgJ1NvbGlkJyk7XHJcbiAgfVxyXG5cclxuICA+IC5pbmxpbmUtaWNvbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDExcHg7XHJcbiAgICByaWdodDogMjBweDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSW5wdXQgZmllbGRzLlxyXG4gKi9cclxuXHJcbi5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9dGV4dF0sXHJcbi5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9bWFpbF0sXHJcbi5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9ZW1haWxdLFxyXG4uZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPXBob25lXSxcclxuLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT10ZWxdLFxyXG4uZ2lucHV0X2NvbnRhaW5lciB0ZXh0YXJlYSxcclxuLmdpbnB1dF9jb250YWluZXIgLmdmb3JtX191cGxvYWQge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmc6IDExcHggMTVweDtcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjdmOTtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA1cHggMCByZ2JhKCRjb2xvci1ibGFjay0xMDAsIDAuMDYpO1xyXG59XHJcblxyXG5zZWxlY3Q6Om1zLWV4cGFuZCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICAvKiBJRSA4ICovXHJcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xyXG4gIC8qIElFIDUtNyAqL1xyXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclxuICAvKiBHb29kIGJyb3dzZXJzIDopICovXHJcbiAgb3BhY2l0eTogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJhZGlvYnV0dG9uLlxyXG4gKi9cclxuXHJcbi5nZmllbGRfcmFkaW8gPiBsaSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9cmFkaW9dLFxyXG4uZ2ZpZWxkX2NoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9cmFkaW9dICsgbGFiZWwge1xyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlciAxNDBtcztcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmNhY2Y7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggNXB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA2KSwgMCAycHggNHB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA4KTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgdmVydGljYWwtYWxpZ246IC0xcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbCB7XHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICB9XHJcbn1cclxuXHJcbi5wYWluY29tcGxhaW50X2ZpZWxkcyB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLmdmaWVsZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzNHB4O1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDaGVja2JveC5cclxuICovXHJcblxyXG4uZ2ZpZWxkX2NoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlciAxNDBtcztcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmNhY2Y7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggNXB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA2KSwgMCAycHggNHB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA4KTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgdmVydGljYWwtYWxpZ246IC0xcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZ2ZpZWxkX2NoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbCB7XHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQuXHJcbiAqL1xyXG5cclxuLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmdmb3JtX191cGxvYWQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6IDQwcHg7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgZm9udC1zaXplOiAxMDAlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjA5MycsICdSZWd1bGFyJyk7XHJcbiAgfVxyXG5cclxuICAmID4gLmlubGluZS1pY29uIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ncmV5LTQwMDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmdpbnB1dF9jb250YWluZXJfZmlsZXVwbG9hZCAuc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktNDAwO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogT3RoZXIuXHJcbiAqL1xyXG5cclxuLmdmaWVsZF9vdGhlciB7XHJcbiAgaW5wdXRbdHlwZT10ZXh0XSB7XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzRweCk7XHJcbiAgICBtYXJnaW4tbGVmdDogMzRweDtcclxuICB9XHJcbn1cclxuXHJcbiNnZm9ybV9zdWJtaXRfYnV0dG9uXzEge1xyXG4gIHBhZGRpbmc6IDE4cHggMjBweDtcclxuICBib3gtc2hhZG93OiAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzKTtcclxufVxyXG5cclxuI2ZpZWxkXzFfMzUsXHJcbiNmaWVsZF8xXzM2IHtcclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgY29sb3I6ICRjb2xvci1ncmV5LTEwMDtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgY29udGVudDogJ1V3IHZvb3JrZXVyIHdvcmR0IGluZGllbiBtb2dlbGlqayBnZXZvbGdkLic7XHJcbiAgfVxyXG59XHJcblxyXG4jbGFiZWxfMV8yNF8xIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbi10b3A6IC0yOXB4O1xyXG59XHJcblxyXG4uZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3QgLnByYWN0aW9uZXJfX3NlbGVjdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctdG9wOiAzOHB4O1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIC5qcy1zaG93LWRlbnRpc3Qge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgJi5pcy1sYXN0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmV5LTIwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wcmFjdGlvbmVyX19zZWxlY3QgPiBzcGFuOm5vdCgucHJhY3Rpb25lcl9fc2VsZWN0LXRpdGxlKSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbGVmdDogLTE1cHg7XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xyXG4gIHBhZGRpbmc6IDAgMTRweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JleS0yMDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICB6LWluZGV4OiAxMDtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLnByYWN0aW9uZXJfX3NlbGVjdC10aXRsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwYWRkaW5nOiA0cHggMCAwIDE2cHg7XHJcbiAgei1pbmRleDogMTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbn1cclxuXHJcbi5nZm9ybS1oaWRlLWZpZWxkIHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHotaW5kZXg6IC0xO1xyXG59XHJcblxyXG4uZ2Zvcm1fY29sdW1uLS1zZWNvbmQge1xyXG5cclxuICAjaW5wdXRfMV8xNywgI2lucHV0XzlfMTcsICNpbnB1dF80XzE3IHtcclxuICAgIG9wdGlvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3B0aW9uOm5vdCguanMtc2hvdy1kZW50aXN0KTpub3QoLmpzLXNob3ctdHJlYXRtZW50LWRheSk6bm90KC5qcy1zaG93LXRyZWF0bWVudC10aW1lKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyogR2VuZXJhbCBHRiBEYXRlIFBpY2tlciAqL1xyXG5cclxuLy9zYXNzLWxpbnQ6ZGlzYWJsZSBicmFjZS1zdHlsZSBzcGFjZS1hZnRlci1jb2xvbiB6ZXJvLXVuaXQgcXVvdGVzIGVtcHR5LWxpbmUtYmV0d2Vlbi1ibG9ja3MgaGV4LW5vdGF0aW9uIHNpbmdsZS1saW5lLXBlci1zZWxlY3RvciBwcm9wZXJ0eS1zb3J0LW9yZGVyXHJcblxyXG4jdWktZGF0ZXBpY2tlci1kaXYge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgd2lkdGg6IDMwMHB4O1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcbiAgYmFja2dyb3VuZDogI0ZGRjtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcclxuXHJcbiAgLnVpLWljb24ge1xyXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC1zaXplOiAwcHg7XHJcbiAgfVxyXG5cclxuICAudWktaWNvbjpiZWZvcmUge1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnRBd2Vzb21lXCI7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfVxyXG5cclxuICAudWktZGF0ZXBpY2tlci1wcmV2IHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDEwJTtcclxuXHJcbiAgICAudWktaWNvbjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAnXFxmMDYwJztcclxuICAgIH1cclxuXHJcbiAgICAmLnVpLXN0YXRlLWRpc2FibGVkIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC51aS1kYXRlcGlja2VyLW5leHQge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgd2lkdGg6IDEwJTtcclxuXHJcbiAgICAudWktaWNvbjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAnXFxmMDYxJztcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgICYudWktc3RhdGUtZGlzYWJsZWQge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnVpLWRhdGVwaWNrZXItdGl0bGUge1xyXG4gICAgc2VsZWN0IHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnVpLWRhdGVwaWNrZXItbW9udGgge1xyXG4gICAgICBtYXJnaW46IDBweCA1JSA2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnVpLWRhdGVwaWNrZXIteWVhciB7XHJcbiAgICAgIG1hcmdpbjogMHB4IDE1JSA2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudWktZGF0ZXBpY2tlci10b2RheSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGFibGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgdGQsIHRoIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHRkIHtcclxuICAgICAgYSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogNXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLmdmb3JtX3dyYXBwZXIge1xyXG4gIC52YWxpZGF0aW9uX2Vycm9yIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgdG9wOiAtODBweDtcclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC01MHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1yZWQtMzAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5nZmllbGRfZGVzY3JpcHRpb24udmFsaWRhdGlvbl9tZXNzYWdlIHtcclxuICBjb2xvcjogJGNvbG9yLXJlZC0zMDA7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuXHJcbi8vc2Fzcy1saW50OmVuYWJsZSBicmFjZS1zdHlsZSBzcGFjZS1hZnRlci1jb2xvbiB6ZXJvLXVuaXQgcXVvdGVzIGVtcHR5LWxpbmUtYmV0d2Vlbi1ibG9ja3MgaGV4LW5vdGF0aW9uIHNpbmdsZS1saW5lLXBlci1zZWxlY3RvciBwcm9wZXJ0eS1zb3J0LW9yZGVyXHJcblxyXG4vLyBzYXNzLWxpbnQ6ZW5hYmxlIGNsYXNzLW5hbWUtZm9ybWF0IG5vLWNvbG9yLWxpdGVyYWxzIG5vLWlkcyBpZC1uYW1lLWZvcm1hdFxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBHb29nbGUgTWFwc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcblxyXG4uZGVmYXVsdC1jb250ZW50IHtcclxuICAvL0JhY2tncm91bmRcclxuICAuZ29vZ2xlLW1hcHMge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOWZiZmIgMCUsICNmMmY0ZjUgMTAwJSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLy9NYWluIGVsZW1lbnRcclxuLmdvb2dsZS1tYXBzIHtcclxuICBtYXJnaW4tdG9wOiAxMzBweDtcclxufVxyXG5cclxuLy9Hb29nbGUgTWFwcyBFZGl0b3JcclxuLmdtX19lZGl0b3Ige1xyXG4gIHdpZHRoOiA5MCU7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIHBhZGRpbmc6IDYwcHggMDtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktNDAwO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgbGluZS1oZWlnaHQ6IDIzcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBhIHtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IEZyZWUnO1xyXG4gICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgICBjb250ZW50OiAnXFxmMDk1JztcclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9Hb29nbGUgTWFwcyBpRnJhbWVcclxuLmdtX19tYXBzIHtcclxuXHJcbiAgaWZyYW1lIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBIZWFkZXJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5ib2R5LWxvYWQge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB6LWluZGV4OiA5OTk5O1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIG1pbi1oZWlnaHQ6IDEwN3B4O1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgMTAwMG1zO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgb3BhY2l0eTogMDtcclxuICB6LWluZGV4OiA0NTtcclxuICBhbmltYXRpb246IGZhZGVJbkxvZ28gMTUwMG1zIGVhc2U7XHJcbiAgYW5pbWF0aW9uLWRlbGF5OiAxMDAwbXM7XHJcblxyXG4gICYuaGVhZGVyLWxvYWRlZCB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQnKSB7XHJcbiAgICAgIGhlaWdodDogODBweDtcclxuICAgIH1cclxuXHJcbiAgICBoZWlnaHQ6IDk1cHg7XHJcbiAgfVxyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIHdpZHRoOiA5NSU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAubWFpbi1tZW51LWNvbnRhaW5lciB7XHJcblxyXG4gICAgQG1lZGlhKG1pbi13aWR0aDogMTIyMHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhKG1heC13aWR0aDogMTIyMHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB6LWluZGV4OiA5OTtcclxuXHJcbiAgICAgIC5tYWluLW1lbnUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxNTBweDtcclxuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuY2xvc2UtYnRuIHtcclxuICAgICAgQG1lZGlhKG1pbi13aWR0aDogMTIyMHB4KSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDM4cHg7XHJcbiAgICAgIHJpZ2h0OiA1OHB4O1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IDVweDtcclxuICAgICAgICBsZWZ0OiA1cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuanMtbWFpbi1tZW51LWJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMjVweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAxMjIwcHgpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAuanMtbWFpbi1tZW51LWJ1dHRvbi10ZXh0IHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMzBweDtcclxuICAgICAgbGVmdDogLTJweDtcclxuICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICBjb250ZW50OiAnTUVOVSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVhZGVyX19sYW5ndWFnZS1zd2l0Y2hlciB7XHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAxMjIwcHgpIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICByaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHNhc3MtbGludDpkaXNhYmxlIGNsYXNzLW5hbWUtZm9ybWF0XHJcbiAgLmN1cnJlbnQtbWVudS1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuICAvLyBzYXNzLWxpbnQ6ZW5hYmxlIGNsYXNzLW5hbWUtZm9ybWF0XHJcbn1cclxuXHJcblxyXG4ubWFpbi1tZW51LWNvbnRhaW5lci0tYmx1ZSB7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTIyMHB4KSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgfVxyXG59XHJcblxyXG4ubWFpbi1tZW51LWNvbnRhaW5lci0tZ3JlZW4ge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEyMjBweCkge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLTIwMDtcclxuICB9XHJcbn1cclxuXHJcbi5tYWluLW1lbnUtY29udGFpbmVyLS1kYXJrZ3JlZW4ge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEyMjBweCkge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLTIwMDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIZWFkZXIgbG9nby5cclxuICovXHJcblxyXG4uaGVhZGVyX19sb2dvIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcblxyXG4gIGltZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uaGVhZGVyX19sb2dvLXRleHQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICByaWdodDogMTVweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoMTNweCwgMTdweCk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvdHRvbTogMTFweDtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktMzAwO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gICYubWFyZ2luLXRvcC0xMCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICByaWdodDogN3B4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZWFkZXIgY29sdW1ucy5cclxuICovXHJcblxyXG4uaGVhZGVyX19jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICY6bnRoLWNoaWxkKDEpIHtcclxuICAgICAgd2lkdGg6IDQ2JSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgd2lkdGg6IDMwJSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIHdpZHRoOiAyMCU7XHJcbiAgfVxyXG5cclxuICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAxMjIwcHgpIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgIC8vIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB3aWR0aDogODAlO1xyXG4gIH1cclxufVxyXG5cclxuLmhlYWRlcl9fdXBwZXIge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEyMjBweCkgYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICBzdmcge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgLnNlYXJjaC1mb3JtIHtcclxuICAgIEBtZWRpYShtYXgtd2lkdGg6IDEyMjBweCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXM7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG1hcmdpbi1yaWdodDogMzBweDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWdyZXktNDAwO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMTQwbXM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5oZWFkZXJfX21haWwsXHJcbiAgLmhlYWRlcl9fcGhvbmUge1xyXG4gICAgQG1lZGlhKG1heC13aWR0aDogMTIyMHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWdyZXktMzAwO1xyXG4gIH1cclxuXHJcbiAgLmhlYWRlcl9fbWFpbCB7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIC5oZWFkZXJfX21haWwtdGV4dCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggNDAwbXMgZWFzZS1pbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlYWRlcl9fcGhvbmUge1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAuaGVhZGVyX19waG9uZS10ZXh0IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IG1heC13aWR0aCA0MDBtcyBlYXNlLWluO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVhZGVyX19tYWlsLXRleHQsXHJcbiAgLmhlYWRlcl9fcGhvbmUtdGV4dCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMDtcclxuICAgIHRyYW5zaXRpb246IG1heC13aWR0aCAyMDBtcyBlYXNlLW91dDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAuaGVhZGVyX19ydXNoIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAxMjIwcHgpIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xyXG4gICAgICBwYWRkaW5nOiA0cHggMDtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIHBhZGRpbmc6IDNweCAwO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXM7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItcmVkLTMwMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1yZWQtMzAwO1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAxNDBtcztcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgICAgY29sb3I6ICRjb2xvci1yZWQtMzAwO1xyXG5cclxuICAgICAgc3ZnIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXJlZC0zMDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5oZWFkZXJfX2FwcG9pbnRtZW50IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTIyMHB4KSBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICBwYWRkaW5nOiA0cHggMDtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XHJcbiAgcGFkZGluZzogM3B4IDA7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXM7XHJcbiAgLy9ib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIC8vY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBsaW5lLWhlaWdodDogMThweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIC8vICY6aG92ZXIge1xyXG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIC8vICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG4uaGVhZGVyX19sb3dlciB7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTIyMHB4KSBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcclxuICAgIG1hcmdpbi1yaWdodDogODVweDtcclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTIyMHB4KSBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIG1hcmdpbi1yaWdodDogNDVweDtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4gIC5tYWluLW1lbnUge1xyXG4gICAgbWFyZ2luLXRvcDogMnB4O1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5oZWFkZXJfX2ljb25zLXBvcnRyYWl0IHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMjIwcHgpIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDE0MHB4O1xyXG4gIGxlZnQ6IDIwcHg7XHJcbiAgei1pbmRleDogNDA7XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG5cclxuICAuaWNvbnMtcG9ydHJhaXRfX2VtYWlsLFxyXG4gIC5pY29ucy1wb3J0cmFpdF9fcGhvbmUge1xyXG4gICAgd2lkdGg6IDQ1cHg7XHJcbiAgICBoZWlnaHQ6IDM3cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBsaW5lLWhlaWdodDogMzdweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gIH1cclxufVxyXG5cclxuLnNlYXJjaC1pcy1hY3RpdmUge1xyXG4gIHdpZHRoOiAxNzVweDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEhlYWRlciB3aXRoIHNoYWRvdy5cclxuICovXHJcblxyXG4uaGVhZGVyLS1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IDAgMCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG59XHJcblxyXG5cclxuLypcclxuICogU3VibWVudSBydWxlc1xyXG4gKi9cclxuXHJcbi5zdWJtZW51LWNvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIC8vdG9wOiAtMjBweDtcclxuICB3aWR0aDogODBweDtcclxuICBoZWlnaHQ6IDQ2cHg7XHJcbiAgLy9wYWRkaW5nLXRvcDogMzBweDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZTtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLnN1Ym1lbnUtY29udGFpbmVyIC5zdWJtZW51IHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgei1pbmRleDogLTE7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXIgLnN1Ym1lbnUtY29udGFpbmVyIC5zdWJtZW51IHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB6LWluZGV4OiA5O1xyXG4gIH1cclxufVxyXG5cclxuLnN1Ym1lbnUtLWJsdWUge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTEwMDtcclxufVxyXG5cclxuLnN1Ym1lbnUtLWdyZWVuIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tMjAwO1xyXG5cclxuICBhIHtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLnN1Ym1lbnUtLWRhcmtncmVlbiB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLTQwMDtcclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB9XHJcbn1cclxuXHJcbi5zdWJtZW51IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBpbml0aWFsO1xyXG4gIH1cclxuXHJcbiAgLy9kaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDEwN3B4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcGFkZGluZzogMjBweCAwO1xyXG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHotaW5kZXg6IC0xO1xyXG5cclxuICBsaSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWxhc3QtY2hpbGQoMSkge1xyXG4gICAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlciAuc3VibWVudSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHotaW5kZXg6IDk5O1xyXG4gIH1cclxufVxyXG5cclxuLnN1Ym1lbnUtY29udGFpbmVyLWlzLWFjdGl2ZSB7XHJcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBMYW5ndWFnZSBzd2l0Y2hcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5sYW5ndWFnZS1zd2l0Y2gge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDE1cHg7XHJcbiAgICByaWdodDogMzVweDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiA3MHB4O1xyXG4gICAgei1pbmRleDogMTAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIH1cclxuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcbi5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQnKSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgcGFkZGluZy1yaWdodDogMjVweDtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuXHJcbiAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0Jykge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0ycHg7XHJcbiAgICAgIHJpZ2h0OiA1cHg7XHJcbiAgICAgIGNvbnRlbnQ6ICdOTCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQnKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogLTJweDtcclxuICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgY29udGVudDogJ0VOJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6aG92ZXIsXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmsge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydGFpdC1kb3duJykge1xyXG4gICAgaGVpZ2h0OiAyNnB4O1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gIH1cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMjRweDtcclxuICAgIGhlaWdodDogMTZweDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcjeyRpbWFnZS1wYXRofUVOLWZsYWcuanBnJyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKCRjb2xvci1ibGFjay0xMDAsIDAuMTkpO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG4ubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1ubCB7XHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnI3skaW1hZ2UtcGF0aH1OTC1mbGFnLmpwZycpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBPcGVuaW5nIGhvdXJzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ub3BlbmluZy1ob3VycyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgcGFkZGluZzogMjBweCAwO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ncmV5LTEwMDtcclxuICAgIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JleS0xMDA7XHJcbiAgICBib3JkZXItbGVmdDogMDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICB3aWR0aDogY2FsYygzMy4zMzM0JSAtIDIwcHgpO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAyNSU7XHJcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG59XHJcblxyXG4ub2hfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtc2l6ZTogMzRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBsaW5lLWhlaWdodDogNDJweDtcclxuXHJcbiAgc3ZnIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNXB4O1xyXG4gICAgcmlnaHQ6IDNweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5vaF9fY29udGVudCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC01NXB4O1xyXG4gICAgbGVmdDogLTI1cHg7XHJcbiAgICB3aWR0aDogMXB4O1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyA1NXB4KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkYWRlZTI7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcbi5vaF9fdG9nZ2xlIHtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG59XHJcblxyXG4ub2hfX3RvZ2dsZS1hY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XHJcbn1cclxuXHJcbi5vaF9fcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktNDAwO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgLm9oX19kYXkge1xyXG4gICAgd2lkdGg6IDQwJTtcclxuICB9XHJcblxyXG4gIC5vaF9fdGltZSB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC5vaF9fbm90YXRpb24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQYWdpbmF0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucGFnaW5hdGlvbiB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAuc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE51bWJlcnMuXHJcbiAqL1xyXG5cclxuLnBhZ2UtbnVtYmVycyB7XHJcbiAgbWFyZ2luOiAwIDVweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG5cclxuICAmLmN1cnJlbnQge1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxufVxyXG5cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gU2VhcmNoIEZvcm1cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5zZWFyY2gtZm9ybSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogOTBweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogOTAlO1xyXG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMTNweCAwIHJnYmEoMCwgMCwgMCwgMC4yMyk7XHJcbiAgICB6LWluZGV4OiA5OTtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMTBweDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQge1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICB3aWR0aDogMTAlO1xyXG4gICAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItYmxhY2stMTAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTZWFyY2ggcmVzdWx0c1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbi8qKlxyXG4gKiBSZXN1bHRzLlxyXG4gKi9cclxuXHJcbi5zZWFyY2gtcmVzdWx0cyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogNTBweCAwO1xyXG4gIH1cclxuICBwYWRkaW5nOiAxMDBweCAwO1xyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIExvb3AuXHJcbiAqL1xyXG5cclxuLnNlYXJjaC1yZXN1bHRzX19sb29wIHtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luOiA1MHB4IC0xNXB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNlYXJjaCBpdGVtLlxyXG4gKi9cclxuXHJcbi5zZWFyY2gtaXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcclxuICBtYXJnaW46IDE1cHg7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICB0cmFuc2l0aW9uOiBib3JkZXIgMjUwbXMgZWFzZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JleS0xMDA7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLnNlYXJjaC1pdGVtX19sYWJlbCB7XHJcbiAgQGluY2x1ZGUgZm9udCgyMHB4LCAyNXB4KTtcclxuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBTbGlkZXNob3dcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5zbGlkZXNob3ctd3JhcHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBoZWlnaHQ6IDcwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnNsaWRlc2hvdyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcblxyXG4gICYub3dsLWNhcm91c2VsIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyAxMDAwbXM7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG5cclxuICAgICYub3dsLWxvYWRlZCB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLWRvdHMge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0Jykge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTkwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHotaW5kZXg6IDk7XHJcblxyXG4gICAgLm93bC1kb3Qge1xyXG4gICAgICB3aWR0aDogNnB4O1xyXG4gICAgICBoZWlnaHQ6IDZweDtcclxuICAgICAgbWFyZ2luOiAwIDJweDtcclxuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMTQwbXMsIGhlaWdodCAxNDBtcztcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktMTAwO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgd2lkdGg6IDhweDtcclxuICAgICAgICBoZWlnaHQ6IDhweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3RpdmUge1xyXG4gICAgICB3aWR0aDogMTBweDtcclxuICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JleS0yMDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDMwcHg7XHJcbiAgICBib3R0b206IDQwJTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2xpZGVzaG93X19zbGlkZS1jb250ZW50IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA4MSU7XHJcbiAgcGFkZGluZy1yaWdodDogMjVweDtcclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAtNDBweDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHdpZHRoOiAycHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JleS0xMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIG9wYWNpdHk6IDAuNztcclxuICB9XHJcbn1cclxuXHJcblxyXG4uc2xpZGVzaG93X19pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICBoZWlnaHQ6IDcwMHB4O1xyXG4gIHotaW5kZXg6IDk5OTk7XHJcblxyXG4gICYubm8tbGluayB7XHJcblxyXG4gICAgLnNsaWRlc2hvd19fc2xpZGUtY29udGVudDphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zbGlkZXNob3dfX2ltYWdlIGltZyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDYwMHB4O1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG59XHJcblxyXG4uc2xpZGVzaG93X19zbGlkZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgIHdpZHRoOiA5MCU7XHJcbiAgICBtYXJnaW46IC01MHB4IGF1dG8gYXV0bztcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgfVxyXG5cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldCcpIHtcclxuICAgIHJpZ2h0OiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAxNSU7XHJcbiAgYm90dG9tOiA0NXB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogNTAwcHg7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDUwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIC8vYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcclxufVxyXG5cclxuLnNsaWRlc2hvd19fc2xpZGU6aG92ZXIgLm5leHQge1xyXG4gIHJpZ2h0OiAyNXB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG59XHJcblxyXG4uc2xpZGVzaG93X19zdWJ0aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5zbGlkZXNob3dfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgfVxyXG5cclxuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1zaXplOiAzNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uc2xpZGVzaG93X19lZGl0b3Ige1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBsaW5lLWhlaWdodDogMzJweDtcclxuXHJcbiAgdWwsXHJcbiAgb2wge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyM3B4O1xyXG4gIH1cclxuXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG4gIH1cclxufVxyXG5cclxuLy9BZGRpdGlvbmFsIFJ1bGVzXHJcbi5kb3VibGUtY29sdW1uICsgLndyYXBwZXItbGcgLnNsaWRlc2hvdyB7XHJcbiAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbn1cclxuXHJcbi5uby1saW5rIC5zbGlkZXNob3dfX3NsaWRlLWNvbnRlbnQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gVGVhbVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnRlYW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbjogODBweCAwO1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luOiAxMzBweCAwO1xyXG5cclxuICAudGVhbV9fdGl0bGUge1xyXG4gICAgQG1lZGlhKG1heC13aWR0aDogNTYwcHgpIHtcclxuICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQnKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICB9XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMzQ1cHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgZm9udC1zaXplOiAzNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogNDJweDtcclxuICB9XHJcbn1cclxuXHJcbi50ZWFtX19sb29wIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4udGVhbV9fbG9vcC13cmFwcGVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHgpO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcclxuICAgIGhlaWdodDogNDUwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNTQwcHg7XHJcbn1cclxuXHJcbi50ZWFtLXNsaWRlcl9fc2xpZGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI4MG1zIDFtcztcclxuICBvcGFjaXR5OiAwO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI4MG1zIDI4MG1zO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbi50ZWFtLW1lbWJlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbjogMTBweDtcclxuICB6LWluZGV4OiAxO1xyXG5cclxuICBpbWcge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICBoZWlnaHQ6IDIyMHB4O1xyXG4gICAgfVxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIC50bV9fb3ZlcmxheSB7XHJcbiAgICAgIHRyYW5zaXRpb246IDM1MG1zIGVhc2U7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZGVza3RvcCAudGVhbS1tZW1iZXIge1xyXG4gIHdpZHRoOiBjYWxjKDIwJSAtIDIwcHgpO1xyXG5cclxuICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg0MCUgKyAxMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbi50YWJsZXQtbGFuZHNjYXBlIC50ZWFtLW1lbWJlciB7XHJcbiAgd2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDEwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYmxldC1wb3J0cmFpdCAudGVhbS1tZW1iZXIge1xyXG4gIHdpZHRoOiBjYWxjKDMzLjMzMzQlIC0gMjBweCk7XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDY2LjY2NjclICsgMTBweCk7XHJcbiAgfVxyXG59XHJcblxyXG4udG1fX2JvZHkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERvdHMuXHJcbiAqL1xyXG5cclxuLnRlYW0tc2xpZGVyX19kb3RzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogNTBweCAtMnB4IC0ycHg7XHJcbn1cclxuXHJcbi50ZWFtLXNsaWRlcl9fZG90IHtcclxuICB3aWR0aDogNnB4O1xyXG4gIGhlaWdodDogNnB4O1xyXG4gIG1hcmdpbjogMnB4O1xyXG4gIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zLCBoZWlnaHQgMTQwbXM7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmV5LTIwMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgd2lkdGg6IDhweDtcclxuICAgIGhlaWdodDogOHB4O1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgd2lkdGg6IDEwcHg7XHJcbiAgICBoZWlnaHQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE5hdi5cclxuICovXHJcblxyXG4udGVhbS1zbGlkZXJfX25hdiB7XHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDEzMDBweCkge1xyXG4gICAgcmlnaHQ6IC01MHB4O1xyXG4gICAgbGVmdDogLTUwcHg7XHJcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMTAwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IGNhbGMoNTAlIC0gNjBweCk7XHJcbiAgcmlnaHQ6IC04MHB4O1xyXG4gIGxlZnQ6IC04MHB4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB3aWR0aDogY2FsYygxMDAlICsgMTYwcHgpO1xyXG4gIGhlaWdodDogMDtcclxufVxyXG5cclxuLnRlYW0tc2xpZGVyX19uYXYtcHJldiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiA0OXB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgdHJhbnNpdGlvbjogMTQwbXM7XHJcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGNvbG9yLWdyZXktMTAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMTA0JywgJ1JlZ3VsYXInKTtcclxuICB9XHJcblxyXG4gID4gLmlubGluZS1pY29uIHtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4udGVhbS1zbGlkZXJfX25hdi1uZXh0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGJvcmRlci1sZWZ0OiAwO1xyXG4gIH1cclxuXHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDQ5cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gIHRyYW5zaXRpb246IDE0MG1zO1xyXG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGNvbG9yLWdyZXktMTAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMTA1JywgJ1JlZ3VsYXInKTtcclxuICB9XHJcblxyXG4gID4gLmlubGluZS1pY29uIHtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnBob25lIC50ZWFtLW1lbWJlciB7XHJcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XHJcbn1cclxuXHJcbi50bV9fb3ZlcmxheSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdHJhbnNpdGlvbjogMzUwbXMgZWFzZTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgLy9iYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDAtMDY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG9wYWNpdHk6IDA7XHJcblxyXG4gIC50bV9fZnVuY3Rpb24ge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzJweDtcclxuICB9XHJcblxyXG4gIC50bV9fbmFtZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIH1cclxuXHJcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xyXG4gIH1cclxuXHJcbiAgLnRtX19hcHBvaW50bWVudC10aGlzLFxyXG4gIC50bV9fYXBwb2ludG1lbnQge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgZWFzZTtcclxuICAgICAgb3BhY2l0eTogMC44O1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgcGFkZGluZzogM3B4IDVweDtcclxuICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUcmVhdG1lbnRzIHRlYXNlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnRyZWF0bWVudHMtdGVhc2VyIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjlmYmZiIDAlLCAjZjJmNGY1IDEwMCUpO1xyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcblxyXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29sdW1ucy5cclxuICovXHJcblxyXG4udHJlYXRtZW50cy10ZWFzZXJfX2NvbHVtbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4udHJlYXRtZW50cy10ZWFzZXJfX2NvbHVtbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIHdpZHRoOiA1MCU7XHJcbn1cclxuXHJcbi50cmVhdG1lbnRzLXRlYXNlcl9fY29sdW1uLS1sZWZ0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBwYWRkaW5nLXRvcDogMTAwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMTM1cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4udHJlYXRtZW50cy10ZWFzZXJfX2NvbHVtbi0tcmlnaHQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRpdGxlLlxyXG4gKi9cclxuXHJcbi50cmVhdG1lbnRzLXRlYXNlcl9fdGl0bGUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtd2lkdGg6IDM3NHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LXNpemU6IDM0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBsaW5lLWhlaWdodDogNDJweDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENhdGVnb3J5LlxyXG4gKi9cclxuXHJcbi50cmVhdG1lbnRzLXRlYXNlcl9fY2F0ZWdvcnkge1xyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbn1cclxuXHJcbi50cmVhdG1lbnRzLXRlYXNlcl9fY2F0ZWdvcnktdGl0bGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyM3B4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgZm9udCgxN3B4LCAyNnB4KTtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTGlzdC5cclxuICovXHJcblxyXG4udHJlYXRtZW50X19saXN0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW46IDEwcHggNHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbjogLTEwcHggLTMwcHg7XHJcbn1cclxuXHJcbi50cmVhdG1lbnRfX2xpc3QtaXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcGFkZGluZzogMTBweCAzMHB4O1xyXG5cclxuICBhIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS0xMDA7XHJcblxyXG4gICAgLy8gJjo6YmVmb3JlIHtcclxuICAgIC8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAvLyAgIGJvdHRvbTogLTNweDtcclxuICAgIC8vICAgbGVmdDogMDtcclxuICAgIC8vICAgd2lkdGg6IDA7XHJcbiAgICAvLyAgIGhlaWdodDogM3B4O1xyXG4gICAgLy8gICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyAyODBtcztcclxuICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgLy8gICBjb250ZW50OiAnJztcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyAmOjphZnRlciB7XHJcbiAgICAvLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgLy8gICByaWdodDogLTZweDtcclxuICAgIC8vICAgYm90dG9tOiAtNS41cHg7XHJcbiAgICAvLyAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICAvLyAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xyXG4gICAgLy8gICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMW1zO1xyXG4gICAgLy8gICBib3JkZXItd2lkdGg6IDQuNXB4IDAgNC41cHggNnB4O1xyXG4gICAgLy8gICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgLy8gICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvci1ibHVlLTEwMDtcclxuICAgIC8vICAgY29udGVudDogJyc7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gJjpob3Zlcjo6YmVmb3JlIHtcclxuICAgIC8vICAgd2lkdGg6IDEwMCU7XHJcbiAgICAvLyAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDFtcztcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyAmOmhvdmVyOjphZnRlciB7XHJcbiAgICAvLyAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICAvLyAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xyXG4gICAgLy8gICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgMjgwbXM7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gJi5pcy1hY3RpdmUge1xyXG4gICAgLy8gICAmOjpiZWZvcmUge1xyXG4gICAgLy8gICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgLy8gICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIDFtcztcclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vICAgJjo6YWZ0ZXIge1xyXG4gICAgLy8gICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICAvLyAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XHJcbiAgICAvLyAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIDI4MG1zO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRyZWF0bWVudCBpdGVtLlxyXG4gKi9cclxuXHJcbi50cmVhdG1lbnQtaXRlbV9faW1hZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBoZWlnaHQ6IDQwMHB4O1xyXG4gIH1cclxuXHJcbiAgaGVpZ2h0OiA0NjBweDtcclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCb2R5LlxyXG4gKi9cclxuXHJcbi50cmVhdG1lbnQtaXRlbV9fYm9keSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICBwYWRkaW5nLXRvcDogNzBweDtcclxuICBwYWRkaW5nLWxlZnQ6IDcwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGl0bGUuXHJcbiAqL1xyXG5cclxuLnRyZWF0bWVudC1pdGVtX190aXRsZSB7XHJcbiAgQGluY2x1ZGUgZm9udChtYXAtZ2V0KCRmb250LXNpemUsICdoNScpLCBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJ2g1JykpO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZWFzZXIuXHJcbiAqL1xyXG5cclxuLnRyZWF0bWVudC1pdGVtX190ZWFzZXIge1xyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ1RBLlxyXG4gKi9cclxuXHJcbi50cmVhdG1lbnQtaXRlbV9fY3RhIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBtYXJnaW46IC0zcHg7XHJcblxyXG4gID4gYSB7XHJcbiAgICBtYXJnaW46IDNweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRGVzY3JpcHRpb24uXHJcbiAqL1xyXG5cclxuLnRyZWF0bWVudF9fZGVzY3JpcHRpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxuICBwYWRkaW5nLWxlZnQ6IDcwcHg7XHJcbn1cclxuXHJcbi50cmVhdG1lbnRfX2NvbXBhbnkge1xyXG4gIG1hcmdpbi10b3A6IDFweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLnRyZWF0bWVudF9fZGVzY3JpcHRpb24tYnkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDEwNXB4O1xyXG59XHJcblxyXG4udHJlYXRtZW50X19kZXNjcmlwdGlvbi1ieS1jb21wYW55IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDE0NXB4O1xyXG59XHJcblxyXG5cclxuLypcclxuICogQWRkaXRpb25hbCBydWxlcyBmb3IgdGhpcyBlbGVtZW50XHJcbiAqL1xyXG5cclxuLmRvdWJsZS1jb2x1bW4gKyAudHJlYXRtZW50cy10ZWFzZXIge1xyXG4gIG1hcmdpbi10b3A6IDEyMHB4O1xyXG59XHJcblxyXG4uY29udGFjdC10ZWFzZXIgKyAudHJlYXRtZW50cy10ZWFzZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcblxyXG4gICAgLnRyZWF0bWVudHMtdGVhc2VyX19jb2x1bW4ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcmdpbi10b3A6IDkwcHg7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQW5pbWF0aW9uc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuQGtleWZyYW1lcyBmYWRlSW5Mb2dvIHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb2xvclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIENvbG9yIHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG4vLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBjb2xvciBhbmQgYmFja2dyb3VuZCBjb2xvciB1dGlsaXR5IGNsYXNzZXMgYmFzZWQgb25cclxuLy8gZXZlcnkgY29sb3IgZGVmaW5pdGlvbiBpbiBgc2V0dGluZ3MvX2NvbG9yLnNjc3NgLlxyXG4vL1xyXG4vLyBMb29wIHRocm91Z2ggZXZlcnkgYCRrZXlgIGFuZCBgJG1hcGAgaW4gdGhlIGAkY29sb3JzYCB2YXJpYWJsZSBtYXAgZGVmaW5lZCBpblxyXG4vLyBgc2V0dGluZ3MvX2NvbG9yLnNjc3NgLlxyXG5AZWFjaCAka2V5LCAkbWFwIGluICRjb2xvcnMge1xyXG5cclxuICAvLyBMb29wIHRocm91Z2ggZXZlcnkgYCRzaGFkZWAgYW5kIGAkcmdiYCBpbiBgJG1hcGAuXHJcbiAgQGVhY2ggJHNoYWRlLCAkcmdiIGluICRtYXAge1xyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBldmVyeSBgY29sb3JgIGFuZCBgYmFja2dyb3VuZC1jb2xvcmAgcnVsZXMuXHJcbiAgICBAZWFjaCAkcnVsZSBpbiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciB7XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogYCN7JHJ1bGV9YCAjeyRyZ2J9LSN7JHNoYWRlfSBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgIC4jeyRydWxlfS0je3VucXVvdGUoJGtleSl9LSN7dW5xdW90ZSgkc2hhZGUpfSB7XHJcbiAgICAgICAgI3skcnVsZX06ICRyZ2I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgT2JqZWN0IEZpdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIE9iamVjdCBmaXQuXHJcbiAqXHJcbiAqIDEuIEZvbnQgZmFtaWx5IHBvbHlmaWxsIHdpdGggKGh0dHBzOi8vZ2l0aHViLmNvbS9iZnJlZC1pdC9vYmplY3QtZml0LWltYWdlcykuXHJcbiAqL1xyXG5cclxuLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IHZhbHVlIGZvciB0aGUgYG9iamVjdC1maXRgIHByb3BlcnR5LlxyXG5AZWFjaCAkdmFsdWUgaW4gZmlsbCwgY29udGFpbiwgY292ZXIsIG5vbmUsIHNjYWxlLWRvd24ge1xyXG5cclxuICAvKipcclxuICAgKiBgb2JqZWN0LWZpdGAgI3skdmFsdWV9IHV0aWxpdHkgY2xhc3MuXHJcbiAgICovXHJcblxyXG4gIC4jeyR2YWx1ZX0ge1xyXG4gICAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiAjeyR2YWx1ZX07JzsgLyogMSAqL1xyXG4gICAgb2JqZWN0LWZpdDogI3skdmFsdWV9O1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQb3NpdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFBvc2l0aW9uIHV0aWxpdHkgY2xhc3MuXHJcbiAqL1xyXG5cclxuQGVhY2ggJHZhbHVlIGluIHN0YXRpYywgcmVsYXRpdmUsIGFic29sdXRlLCBmaXhlZCwgc3RpY2t5IHtcclxuICAuI3skdmFsdWV9IHtcclxuICAgIHBvc2l0aW9uOiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFRleHRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBGb250IGZhbWlseSB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgka2V5KSB7XHJcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZm9udC1mYW1pbHkge1xyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JHByb3BlcnR5fSB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAkcHJvcGVydHkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQgc2l6ZSB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgka2V5KSB7XHJcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZm9udC1zaXplIHtcclxuICAgICAgLnRleHQtI3ska2V5fS0jeyRwcm9wZXJ0eX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoJHByb3BlcnR5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZXh0IGFsaWdubWVudCB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgka2V5KSB7XHJcbiAgICBAZWFjaCAkZGlyZWN0aW9uIGluIGxlZnQsIHJpZ2h0LCBjZW50ZXIge1xyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JGRpcmVjdGlvbn0ge1xyXG4gICAgICAgIHRleHQtYWxpZ246ICRkaXJlY3Rpb247XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRm9udCB3ZWlnaHQgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKlxyXG4gKiAxLiBNdWx0aXBseSBsb29wZWQgaW50ZWdlciBieSAxMDAgZm9yIGNvcnJlY3QgZm9udCB3ZWlnaHQgdmFsdWUuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgka2V5KSB7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xyXG4gICAgICAkaTogJGkgKiAxMDA7IC8vIFsxXVxyXG5cclxuICAgICAgLnRleHQtI3ska2V5fS0jeyRpfSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICN7JGl9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQgdHJhbnNmb3JtIHVpdGxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuICAgIEBlYWNoICR0cmFuc2Zvcm0gaW4gY2FwaXRhbGl6ZSwgdXBwZXJjYXNlLCBsb3dlcmNhc2UsIG5vbmUsIGZ1bGwtd2lkdGgge1xyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JHRyYW5zZm9ybX0ge1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFZlcnRpY2FsIFJoeXRobVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XHJcbiAgJGk6ICRpICogODtcclxuXHJcbiAgLnZyLSN7JGl9IHtcclxuICAgIG1hcmdpbi1ib3R0b206ICN7JGl9cHg7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFotaW5kZXhcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyBzdGFja2luZyBvcmRlciBpbiBIVE1MLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkei1pbmRleCB7XHJcbiAgLnotaW5kZXgtI3ska2V5fSB7XHJcbiAgICB6LWluZGV4OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFotaW5kZXhcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEEgbGltaXRlZCBhcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBgei1pbmRleGAgcHJvcGVydHkgdG8gcHJldmVudFxyXG4vLyBleGFnZ2VyYXRlZCBhbW91bnRzIGFuZCB1Z2x5IGhhY2tzLlxyXG5cclxuJHotaW5kZXg6IChcclxuICAnMCc6ICAwLFxyXG4gICcxJzogIDEwLFxyXG4gICcyJzogIDIwLFxyXG4gICczJzogIDMwLFxyXG4gICc0JzogIDQwLFxyXG4gICc1JzogIDUwLFxyXG4gICc2JzogIDYwLFxyXG4gICc3JzogIDcwLFxyXG4gICc4JzogIDgwLFxyXG4gICc5JzogIDkwLFxyXG4gICcxMCc6IDEwMFxyXG4pO1xyXG4iXX0= */
