@charset "UTF-8";
/**
 * Settings.
 */
/**
 * Settings.
 */
/**
 * Font family map.
 */
/**
 * Font size map.
 */
/**
 * Line height map.
 */
/**
 * Grid.
 */
/**
 * Assets.
 */
/**
 * Body.
 */
/**
 * Other.
 */
*::selection {
  background-color: #1c1c1c;
  color: white; }

/**
 * Responsive.
 */
/**
 * Vendor.
 */
/*! 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 */
  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;
    -ms-touch-action: pan-Y;
    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;
    -khtml-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: 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 {
  animation-duration: 1000ms;
  animation-fill-mode: both; }

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

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

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

@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 {
    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: transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  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%; }

/**
 * Tools.
 */
/**
 * Tools.
 */
/**
 * Unicode.
 *
 * Preserve escaped unicode string.
 * @param {String} $string - An unicode string.
 * @return {String} A preserved escaped unicode string
 */
/**
 * REM.
 *
 * Convert pixel units to REM units.
 * @param {Number} $pixels - Pixel value.
 * @return {*} - A converted `rem` unit.
 */
/**
 * Column.
 *
 * Calculate given column width.
 * @param {Number} $column - The amount of columns to span.
 * @param {Number} $columns - The amount of columns that can be spanned.
 * @return {String} - Percentage value.
 */
/**
 * Color.
 *
 * Get a color value from two levels deep in the `$color` map.
 * @param {$string} $key - Key of the color to get from the map.
 * @param {Number} $value - Value of the key to get from the map.
 * @return {*} A HSLA color value.
 */
/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -moz-zoom-out;
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }

.mfp-preloader a {
  color: #CCC; }

.mfp-preloader a:hover {
  color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none;
  touch-action: manipulation; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }

.mfp-close:hover,
.mfp-close:focus {
  opacity: 1; }

.mfp-close:active {
  top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }

.mfp-arrow:active {
  margin-top: -54px; }

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1; }

.mfp-arrow:before,
.mfp-arrow:after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  margin-top: 35px;
  margin-left: 35px;
  border: medium inset transparent; }

.mfp-arrow:after {
  border-top-width: 13px;
  border-bottom-width: 13px;
  top: 8px; }

.mfp-arrow:before {
  border-top-width: 21px;
  border-bottom-width: 21px;
  opacity: 0.7; }

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

.mfp-arrow-left:after {
  border-right: 17px solid #FFF;
  margin-left: 31px; }

.mfp-arrow-left:before {
  margin-left: 25px;
  border-right: 27px solid #3F3F3F; }

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

.mfp-arrow-right:after {
  border-left: 17px solid #FFF;
  margin-left: 39px; }

.mfp-arrow-right:before {
  border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 100%;
  max-width: 900px; }

.mfp-iframe-holder .mfp-close {
  top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }

.mfp-iframe-scaler iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }

.mfp-figure:after {
  content: '';
  position: absolute;
  left: 0;
  top: 40px;
  bottom: 40px;
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #444; }

.mfp-figure small {
  color: #BDBDBD;
  display: block;
  font-size: 12px;
  line-height: 14px; }

.mfp-figure figure {
  margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
			 * Remove all paddings around the image on small screen
			 */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

/**
 * Container
 * 
 * Center aligns element with given maximum width, padding, and margins top and bottom.
 * @param {String} $width - Pixel unit value.
 * @param {String} $gap - Pixel unit value.
 * @example @include container(1024px, 20px);
 */
/**
 * Section
 *
 * Add top and bottom spacing to element using paddings.
 * @param {String} $top - Pixel unit value.
 * @param {String} $bottom - Pixel unit value.
 * @example @include section(100px, 100px);
 */
/**
 * Font.
 *
 * Adds `rem` unit based font size property, a fallback `px` unit based font size property, and a `em` unit based line height property to any rule.
 * @param {String} $font-size - Pixel unit value.
 * @param {String} $line-height - Pixel unit value.
 * @example @include font-size(16px, 24px);
 */
/**
 * Text.
 *
 * Shorthand for the font mixin, runs the font mixin based on a common demeanour existing both in the `$font-size` and the `$line-height` maps.
 * @param {string} $value - String
 * @example @include text('p');
 */
/**
 * Font Awesome.
 *
 * Add Font Awesome icons as psuedo elements by using their unicode.
 * @param {String} $content - Unicode string.
 * @param {String} $family - Font Awesome font family string.
 * @example @include fontawesome('f100', 'Light');
 */
/**
 * Media.
 *
 * Media queries according to "The 100% Correct Way To Do CSS Breakpoints" (https://medium.freecodecamp.com/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862).
 * @param {String} $breakpoint - Breakpoint pixel unit value.
 * @example @include media('phone') {}
 */
/**
 * Elements.
 */
/**
 * General.
 */
/**
 * 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: 1.625em;
  min-height: 100vh;
  background-color: white;
  color: #1c1c1c;
  font-family: "Montserrat";
  font-weight: 300;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  /* 1 */
  -webkit-font-smoothing: antialiased;
  /* 2 */ }

/**
 * 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,
.theme__notice p,
.theme__notice a,
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;
  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; }

/**
 * Objects.
 */
/**
 * Button.
 */

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 250ms ease;
  cursor: pointer;
  font-weight: 300; }
  
  .button svg {
    width: 21px;
    height: 20px; }
  
  .button.has-svg-right svg {
    margin-left: 10px; }
  
  .button.has-svg-left svg {
    margin-right: 10px; }

/**
 * Button (default).
 */

.button--default {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em;
  height: 40px;
  padding: 8px 30px;
  background-color: white;
  color: #1c1c1c;
  border-radius: 32px;
  font-weight: 600; }
  
  .button--default:hover {
    background-color: #1c1c1c;
    color: white;
    border: 2px solid white; }

/**
 * Button (default).
 */

.button--black {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em;
  height: 40px;
  padding: 8px 30px;
  background-color: #1c1c1c;
  color: white;
  border-radius: 32px;
  font-weight: 600; }
  
  .button--black:hover {
    background-color: white;
    color: #1c1c1c;
    border: 2px solid #1c1c1c; }

/**
 * Button (border).
 */

.button--border {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em;
  padding: 12px 30px 11px;
  background-color: transparent;
  height: 37px;
  color: white;
  border: 2px solid white;
  border-radius: 32px;
  font-weight: 600; }
  
  .button--border:hover {
    opacity: 60%; }

/**
 * Button (trans).
 */

.button--trans {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em;
  padding: 13px 30px 11px;
  background-color: transparent;
  height: 37px;
  color: white;
  border: 2px solid white;
  border-radius: 32px;
  font-weight: 600; }
  
  .button--trans:hover {
    background-color: white;
    color: #1c1c1c; }

/**
 * Button (default).
 */

.button--menu {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em;
  height: 40px;
  padding: 8px 30px;
  background-color: transparent;
  color: #1c1c1c;
  border-radius: 32px;
  border: 2px solid #1c1c1c;
  font-weight: 600; }
  
  .button--menu:hover {
    opacity: 60%; }
    @media only screen and (max-width: 599px) {
      
      .button--menu:hover {
        opacity: 100%; } }

/**
 * Button (link).
 */

.button--link {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em;
  height: 50px;
  padding: 15px 45px;
  color: #1c1c1c; }
  
  .button--link:hover {
    background-color: #1c1c1c;
    color: white; }

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

/**
 * 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;
  overflow: hidden; }

/**
 * 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-wrap {
  flex-wrap: wrap; }

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

/**
 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
				 * 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 10px; }

/**
			 * 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; }

@media only screen and (max-width: 599px) {
  /**
			 * Column 1 for the `sm` breakpoint.
			 */
  .col-sm-1 {
    flex: 0 1 auto;
    width: 8.33333%;
    padding: 0 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
			 * 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; } }

@media only screen and (min-width: 600px) {
  /**
			 * Column 1 for the `md` breakpoint.
			 */
  .col-md-1 {
    flex: 0 1 auto;
    width: 8.33333%;
    padding: 0 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
			 * 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; } }

@media only screen and (min-width: 900px) {
  /**
			 * Column 1 for the `lg` breakpoint.
			 */
  .col-lg-1 {
    flex: 0 1 auto;
    width: 8.33333%;
    padding: 0 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
			 * 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; } }

@media only screen and (min-width: 1200px) {
  /**
			 * Column 1 for the `xl` breakpoint.
			 */
  .col-xl-1 {
    flex: 0 1 auto;
    width: 8.33333%;
    padding: 0 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
				 * 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 10px; }
  /**
			 * 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; } }

/**
 * Default fields.
 */
label {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.875em;
  display: block;
  margin-bottom: 10px; }


select,
input,
textarea {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.875em;
  width: 100%;
  height: 42px;
  border-radius: 8px;
  padding: 11px 15px;
  background-color: white;
  color: rgba(28, 28, 28, 0.5); }

textarea {
  height: 8em;
  padding-top: 15px; }

.ginput_container_select {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: white;
  color: rgba(28, 28, 28, 0.5);
  border-radius: 8px; }
  .ginput_container_select svg {
    position: absolute;
    top: 14px;
    right: 20px;
    width: 9px;
    height: 13px;
    z-index: 1; }
  .ginput_container_select select {
    position: relative;
    width: calc(100% + 50px);
    max-width: none;
    margin: -2px;
    background-color: transparent;
    border: 0;
    z-index: 2; }

.gfield_checkbox li {
  display: flex; }
  .gfield_checkbox li input[type='checkbox'] {
    margin-top: 6px; }

.gfield_radio li {
  display: flex;
  position: relative; }
  .gfield_radio li label:before {
    content: '';
    border-radius: 50%;
    width: 12px;
    height: 12px;
    background-color: transparent;
    position: absolute;
    top: 8px;
    left: 4px;
    transition: all 250ms ease; }
  .gfield_radio li input[type='checkbox'] {
    background-color: #1c1c1c; }
  .gfield_radio li input:checked + label:before {
    background-color: #1c1c1c; }

input[type='radio'],
input[type='checkbox'] {
  margin-top: 4px;
  border: 2px solid #1c1c1c;
  border-radius: 2px;
  background-color: transparent;
  transition: all 250ms ease;
  margin-right: 10px; }

input[type='checkbox']:checked + li::before {
  background-color: #1c1c1c; }

input[type='checkbox']:checked {
  background-color: #1c1c1c; }

input[type='checkbox'] {
  width: 15px;
  height: 15px; }

input[type='radio'] {
  border-radius: 20px;
  width: 20px;
  height: 20px; }

/**
 * Gravity Forms.
 */
.gfield {
  width: 100%;
  margin-bottom: 48px; }

.gform_fields {
  display: flex;
  flex-wrap: wrap;
  margin: -15px; }
  @media only screen and (max-width: 599px) {
    .gform_fields {
      margin: 0; } }

.gform_footer {
  position: relative;
  margin-bottom: 70px; }

.gfield_html {
  margin-bottom: 0;
  display: flex;
  flex-wrap: wrap; }

.gform_validation_container {
  display: none; }

.hidden_label > label {
  display: none; }

.validation_message {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.42857em;
  margin: 10px;
  color: white;
  font-weight: 600; }

.gform_button {
  position: absolute;
  right: 0;
  margin-top: 15px;
  padding: 2px 30px 11px;
  background-color: transparent;
  height: 37px;
  width: fit-content;
  color: white;
  border: 2px solid white;
  border-radius: 32px;
  font-weight: 600; }
  .gform_button:hover {
    background-color: white;
    color: #1c1c1c; }


.validation_error {
  position: relative;
  margin: 0 0 50px;
  padding: 25px 25px 25px 75px;
  background: white;
  color: #1c1c1c;
  border-radius: 8px; }
  @media only screen and (max-width: 599px) {
    
    .validation_error {
      padding: 20px; } }
  
  .validation_error > svg {
    position: absolute;
    top: calc(50% - 15px);
    left: 30px;
    width: 31px;
    height: 30px;
    color: #1c1c1c; }
  
  .validation_error .close-button {
    position: absolute;
    top: 0;
    right: 5px;
    cursor: pointer; }
    
    .validation_error .close-button svg {
      width: 16px;
      height: 16px;
      color: #1c1c1c; }

.gform_confirmation_message {
  width: 100%;
  padding: 50px;
  background: white br;
    background-display: none; }
  .gform_confirmation_message h4 {
    display: flex;
    align-items: center;
    margin-bottom: 20px; }
    .gform_confirmation_message h4 svg {
      width: 28px;
      height: 28px;
      margin-right: 20px;
      border-radius: 20px;
      background-color: white;
      padding: 5px;
      color: #1c1c1c; }

/**
 * Heading.
 */
h1,
h2,
h3,
.theme__notice p,
.theme__notice a,
h4,
.heading {
  color: #1c1c1c; }
  h1.is-white,
  h2.is-white,
  h3.is-white,
  .theme__notice p.is-white,
  .theme__notice a.is-white,
  h4.is-white,
  .heading.is-white {
    color: white; }

/**
 * Heading 1.
 */
h1,
.heading-1 {
  font-size: 84px;
  font-size: 8.4rem;
  line-height: 1.04762em;
  font-weight: 700; }
  @media only screen and (max-width: 1199px) {
    h1,
    .heading-1 {
      font-size: 38px;
      font-size: 3.8rem;
      line-height: 1.36842em; } }

/**
 * Heading 2.
 */
h2,
.heading-2 {
  font-size: 72px;
  font-size: 7.2rem;
  line-height: 1.08333em;
  font-weight: 700; }
  @media only screen and (max-width: 1199px) {
    h2,
    .heading-2 {
      font-size: 36px;
      font-size: 3.6rem;
      line-height: 1.27778em; } }

/**
 * Heading 3.
 */

h3,
.theme__notice p,
.theme__notice a,
.heading-3 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em;
  font-weight: 700; }
  @media only screen and (max-width: 1199px) {
    
    h3,
    .theme__notice p,
    .theme__notice a,
    .heading-3 {
      font-size: 24px;
      font-size: 2.4rem;
      line-height: 1.41667em;
      font-weight: 700; } }

/**
 * Subheading.
 */

.subheading {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.11111em;
  display: inline-flex;
  position: relative;
  color: #1c1c1c; }
  
  .subheading:after {
    display: block;
    position: absolute;
    bottom: -5px;
    width: 100%;
    height: 1px;
    background-color: #1c1c1c;
    content: ''; }
  
  .subheading.is-white {
    color: white; }
    
    .subheading.is-white:after {
      background-color: white; }

.link {
  color: white;
  text-decoration: underline;
  transition: all 250ms ease; }
  .link.has-svg-right svg {
    margin-left: 10px; }
  .link.has-svg-left svg {
    margin-right: 10px; }
  .link svg {
    position: relative;
    top: 3px;
    width: 14px;
    height: 17px;
    transition: all 250ms ease;
    color: white; }
  .link:hover {
    color: white; }
    .link:hover svg {
      color: white;
      margin-left: 15px; }

.pagination {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 100px 0; }
  @media only screen and (max-width: 899px) {
    .pagination {
      padding: 75px 0; } }
  .pagination .page-numbers {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 2em;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 10px;
    transition: all 250ms ease;
    color: #1c1c1c;
    font-weight: 300; }
    .pagination .page-numbers.current {
      font-weight: 700; }
    .pagination .page-numbers.prev, .pagination .page-numbers.next {
      margin-right: 15px; }
      .pagination .page-numbers.prev svg, .pagination .page-numbers.next svg {
        position: relative;
        top: 0;
        width: 15px;
        height: 30px;
        color: rgba(28, 28, 28, 0.5);
        transition: all 250ms ease; }
      .pagination .page-numbers.prev:hover svg, .pagination .page-numbers.next:hover svg {
        color: #1c1c1c; }
    .pagination .page-numbers.next {
      margin-right: 0;
      margin-left: 5px; }
  .pagination a:hover {
    color: #1c1c1c; }

/**
 * Wrapper (default)
 */
.wrapper {
  max-width: calc(1240px + 100px);
  padding: 0 50px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .wrapper {
      max-width: calc(1240px + 120px);
      padding: 0 60px;
      width: 100%;
      margin: 0 auto; } }
  @media only screen and (max-width: 599px) {
    .wrapper {
      max-width: calc(1240px + 40px);
      padding: 0 20px;
      width: 100%;
      margin: 0 auto; } }

.wrapper--header {
  max-width: calc(1040px + 100px);
  padding: 0 50px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .wrapper--header {
      max-width: calc(1040px + 120px);
      padding: 0 60px;
      width: 100%;
      margin: 0 auto; } }
  @media only screen and (max-width: 599px) {
    .wrapper--header {
      max-width: calc(1040px + 40px);
      padding: 0 20px;
      width: 100%;
      margin: 0 auto; } }

.wrapper--content-header {
  max-width: calc(600px + 100px);
  padding: 0 50px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .wrapper--content-header {
      max-width: calc(600px + 120px);
      padding: 0 60px;
      width: 100%;
      margin: 0 auto; } }
  @media only screen and (max-width: 599px) {
    .wrapper--content-header {
      max-width: calc(600px + 40px);
      padding: 0 20px;
      width: 100%;
      margin: 0 auto; } }

.wrapper--form {
  max-width: calc(820px + 100px);
  padding: 0 50px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .wrapper--form {
      max-width: calc(820px + 120px);
      padding: 0 60px;
      width: 100%;
      margin: 0 auto; } }
  @media only screen and (max-width: 599px) {
    .wrapper--form {
      max-width: calc(820px + 40px);
      padding: 0 20px;
      width: 100%;
      margin: 0 auto; } }

.contact-links {
  display: flex;
  flex-wrap: wrap; }
  @media only screen and (max-width: 599px) {
    .contact-links {
      width: fit-content;
      margin: auto; } }
  .contact-links a {
    text-decoration: none; }

.contact-links__item {
  margin-bottom: 10px;
  display: flex;
  width: 100%; }

@media only screen and (max-width: 599px) {
  .contact-links__item {
    width: 100%; } }

.contact-links__item svg {
  height: 25px;
  width: 25px;
  margin-bottom: -7px;
  margin-right: 10px; }

.contact-links__item:hover {
  opacity: 60%; }

/**
 * Components.
 */
/**
 * Mobile menu button.
 */
@media only screen and (min-width: 1200px) {
  .header__menu-button {
    display: none; } }

@media only screen and (max-width: 1199px) {
  .header__menu-button {
    position: relative;
    width: 30px;
    height: 25px;
    z-index: 100; }
    .header__menu-button span {
      display: inline-block;
      position: absolute;
      right: 0;
      left: 0;
      width: 30px;
      height: 5px;
      margin: auto;
      background-color: white; }
      .header__menu-button span:nth-child(1) {
        top: 0;
        transition: background-color 400ms, top 400ms 400ms, transform 400ms 0s; }
      .header__menu-button span:nth-child(2) {
        top: calc(50% - 2px);
        transition: background-color 400ms, opacity 0ms 400ms;
        opacity: 1; }
      .header__menu-button span:nth-child(3) {
        bottom: 0;
        transition: background-color 400ms, bottom 400ms 400ms, transform 400ms 0s; }
    .header__menu-button.is-active span:nth-child(1) {
      top: calc(50% - 3px);
      transform: rotate(-45deg);
      transition: background-color 400ms, top 400ms, transform 400ms 400ms; }
    .header__menu-button.is-active span:nth-child(2) {
      opacity: 0; }
    .header__menu-button.is-active span:nth-child(3) {
      bottom: calc(50% - 2px);
      transform: rotate(45deg);
      transition: background-color 400ms, bottom 400ms, transform 400ms 400ms; } }

.header {
  position: absolute;
  width: 100%;
  height: 100px;
  display: flex;
  align-items: center; }

.header__wrapper {
  display: flex;
  flex-wrap: wrap;
  color: white;
  align-items: center;
  justify-content: space-between;
  width: 100%; }

.header__navigation {
  display: flex;
  justify-content: center; }
  @media only screen and (max-width: 1199px) {
    .header__navigation {
      display: none; } }

.header__logo {
  z-index: 100;
  display: flex;
  justify-content: flex-start; }
  @media only screen and (max-width: 599px) {
    .header__logo {
      width: calc(100% - 30px); } }

.header__contact {
  display: flex;
  justify-content: flex-end; }
  @media only screen and (max-width: 1199px) {
    .header__contact {
      display: none; } }

.header__main-menu-container .header__main-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center; }
  .header__main-menu-container .header__main-menu .menu-item {
    margin: 15px;
    font-weight: 600; }
    .header__main-menu-container .header__main-menu .menu-item:hover {
      margin-bottom: 13px;
      border-bottom: 2px solid white; }

/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 *
 * 1. Exclude last childs.
 */
.cms-output h2,
.cms-output h3,
.cms-output .theme__notice p,
.theme__notice .cms-output p,
.cms-output .theme__notice a,
.theme__notice .cms-output a,
.cms-output h4 {
  margin-bottom: 30px; }

.cms-output ol,
.cms-output ul {
  list-style-type: none;
  margin-left: 0;
  margin-bottom: 1em; }
  .cms-output ol li,
  .cms-output ul li {
    position: relative;
    padding-left: 40px; }
    .cms-output ol li > svg,
    .cms-output ul li > svg {
      position: absolute;
      top: 2px;
      left: 0;
      width: 22px;
      height: 22px;
      color: #1c1c1c; }
    .cms-output ol li > ul,
    .cms-output ul li > ul {
      list-style-type: square; }
      .cms-output ol li > ul li,
      .cms-output ul li > ul li {
        margin-left: 20px;
        padding: 0; }

.cms-output ol {
  list-style-type: decimal;
  margin-left: 20px; }
  .cms-output ol li {
    padding-left: 0; }

.cms-output strong {
  font-weight: 600; }

.cms-output button {
  margin-top: 20px; }

.cms-output blockquote {
  width: fit-content;
  margin: 50px auto;
  color: #1c1c1c;
  padding: 20px 65px;
  border-left: 8px solid #1c1c1c;
  position: relative; }
  .cms-output blockquote::before {
    font-size: 120px;
    font-size: 12rem;
    line-height: 0.16667em;
    content: "“";
    color: #1c1c1c;
    position: absolute;
    left: 10px;
    top: 36px; }
  .cms-output blockquote::after {
    font-size: 120px;
    font-size: 12rem;
    line-height: 0.16667em;
    content: "”";
    color: #1c1c1c;
    position: absolute;
    right: 10px;
    bottom: -27px; }

.cms-output .img-wrap {
  display: inline-block;
  position: relative;
  margin-top: 50px; }
  .cms-output .img-wrap img {
    position: relative;
    z-index: 30; }

.cms-output a {
  text-decoration: underline; }
  .cms-output a:hover {
    color: #d02a25; }

.navigation-mobile {
  position: fixed;
  top: 100vh;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  transition: all 500ms ease;
  background: #1c1c1c;
  opacity: 0;
  z-index: 99;
  overflow-x: hidden; }
  .navigation-mobile.is-active {
    top: 0;
    opacity: 1; }
  .navigation-mobile::-webkit-scrollbar {
    display: none; }
  .navigation-mobile .wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%; }
  .navigation-mobile:after {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(0%, -50%);
    width: 90px;
    height: 410px;
    background-size: contain;
    content: '';
    z-index: 1; }

/**
 * Main menu.
 */
.navigation-mobile__main > li {
  position: relative; }
  .navigation-mobile__main > li.current_page_ancestor > a:after, .navigation-mobile__main > li.current-menu-item > a:after {
    background-color: white; }
  .navigation-mobile__main > li.is-active svg {
    transform: rotate(-90deg); }
  .navigation-mobile__main > li.is-active > a:after {
    background-color: white; }
  .navigation-mobile__main > li > a {
    font-size: 20px;
    font-size: 2rem;
    line-height: 1.1em;
    position: relative;
    display: flex;
    width: fit-content;
    margin: 15px;
    color: white; }
    .navigation-mobile__main > li > a span {
      padding: 0 20px 0 5px;
      cursor: pointer; }
    .navigation-mobile__main > li > a svg {
      position: relative;
      top: 0;
      width: 11px;
      height: 16px;
      margin-left: 5px;
      transition: all 500ms ease;
      color: white; }
  .navigation-mobile__main > li .submenu-container {
    display: none;
    position: relative;
    margin: 35px -10px 0 10px;
    background-color: #1c1c1c; }
    .navigation-mobile__main > li .submenu-container li {
      display: flex;
      margin-bottom: 35px; }
      .navigation-mobile__main > li .submenu-container li a {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.42857em;
        position: relative;
        font-weight: 400;
        color: white; }
        .navigation-mobile__main > li .submenu-container li a:after {
          position: absolute;
          bottom: -10px;
          left: 0;
          width: 100%;
          height: 6px;
          background-color: white;
          border-radius: 10px;
          transition: all 250ms ease;
          content: ''; }
      .navigation-mobile__main > li .submenu-container li:last-of-type {
        margin-bottom: 0; }
      .navigation-mobile__main > li .submenu-container li.current_page_ancestor > a:after, .navigation-mobile__main > li .submenu-container li.current-menu-item > a:after {
        background-color: white; }

/**
 * Disable scroll.
 */
body.is-active {
  overflow: hidden; }
  body.is-active .header::before {
    bottom: 0; }

.content-cta {
  padding: 100px 0;
  min-height: 400px;
  position: relative;
  display: flex;
  align-items: center; }
  .content-cta.is-home {
    margin-bottom: 100px; }

.content-cta__background {
  display: flex;
  width: 100%;
  justify-content: center;
  position: absolute;
  top: 0;
  z-index: -1;
  height: 100%; }
  .content-cta__background img {
    object-fit: cover;
    width: 100%; }

.content-cta__title {
  margin-bottom: 20px;
  text-align: center; }

.content-cta__teaser {
  margin-bottom: 20px;
  color: white;
  text-align: center; }

.content-cta__link {
  width: fit-content;
  margin: auto; }

.content-form {
  position: relative;
  padding: 100px 0;
  margin-top: 100px; }
  @media only screen and (max-width: 599px) {
    .content-form {
      padding: 50px 0; } }

.content-form__background {
  display: flex;
  width: 100%;
  justify-content: center;
  position: absolute;
  top: 0;
  z-index: -1;
  height: 100%; }
  .content-form__background img {
    object-fit: cover;
    width: 100%; }

.content-form__right,
.content-form__left {
  width: calc(50% - 30px);
  margin: 15px 15px 0; }
  @media only screen and (max-width: 599px) {
    .content-form__right,
    .content-form__left {
      width: 100%;
      margin: 0; } }

.content-form__title {
  text-align: center;
  margin-bottom: 20px; }

.content-form__teaser {
  color: white;
  text-align: center;
  max-width: 400px;
  margin: 0 auto 50px;
  font-weight: 600; }

.content-default__title {
  margin-bottom: 100px; }
  @media only screen and (max-width: 899px) {
    .content-default__title {
      margin-bottom: 30px; } }

.content-default__subtitle {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.11111em;
  font-weight: 700;
  margin-right: 130px; }
  @media only screen and (max-width: 599px) {
    .content-default__subtitle {
      width: 100%;
      margin-bottom: 10px; } }

.content-default__contact {
  margin-top: 30px; }

.content-default__editor {
  max-width: 600px; }
  @media only screen and (max-width: 599px) {
    .content-default__editor {
      width: 100%;
      margin-top: 0; } }

.content-header {
  position: relative;
  padding-bottom: 60px;
  margin-bottom: 100px; }
  @media only screen and (max-width: 899px) {
    .content-header {
      margin-bottom: 50px; } }

.content-header__background {
  display: flex;
  width: 100%;
  justify-content: center;
  position: absolute;
  top: 0;
  z-index: -1;
  height: calc(100% + 150px);
  margin-top: -130px; }
  .content-header__background img {
    object-fit: cover;
    width: 100%; }

.content-header__title {
  text-align: center;
  margin-bottom: 50px; }

.content-header__links {
  align-items: center;
  margin: -20px auto 100px;
  justify-content: center;
  display: flex;
  flex-wrap: wrap; }
  .content-header__links a {
    margin: 15px;
    color: white; }
    @media only screen and (min-width: 900px) {
      .content-header__links a {
        width: calc(50% - 70px);
        overflow: hidden; } }

.content-header__link {
  font-weight: 600; }

.content-header__more {
  display: flex;
  border-top: 1px solid white;
  width: 100%;
  padding: 50px 0 15px 0; }
  .content-header__more .content-header__more-text {
    color: #1c1c1c; }
  .content-header__more svg {
    width: 16px;
    height: 24px; }

.content-header__services {
  width: 100%; }
  @media only screen and (max-width: 899px) {
    .content-header__services .owl-stage-outer {
      overflow: visible; } }

.content-header__service {
  border: 2px solid white;
  border-radius: 0 0 0 60px;
  padding: 20px;
  color: white;
  height: 100%;
  transition: all 300ms ease-in;
  width: 180px; }
  @media only screen and (min-width: 900px) {
    .content-header__service {
      height: 240px; } }
  .content-header__service a {
    width: 100%;
    height: 100%; }
  .content-header__service.is-active, .content-header__service:hover {
    background-color: white;
    color: #1c1c1c; }
    .content-header__service.is-active .content-header__more-text, .content-header__service:hover .content-header__more-text {
      font-size: 14px;
      font-size: 1.4rem;
      line-height: 1.28571em;
      display: block;
      transition: 100ms ease-in;
      margin-left: 20px; }
    .content-header__service.is-active .content-header__more-svg, .content-header__service:hover .content-header__more-svg {
      margin: -3px 0 0 28px;
      transition: 100ms ease; }
    .content-header__service.is-active .content-header__more, .content-header__service:hover .content-header__more {
      border-top: 1px solid #1c1c1c; }

.content-header__more-text {
  display: none; }

.content-header__wrapper {
  margin-top: 130px; }

.content-header__service-icon {
  width: 100%;
  margin-bottom: 10px;
  margin-top: 20px; }
  .content-header__service-icon svg {
    width: 30px;
    height: 30px; }

.content-header__service-title {
  font-weight: 700;
  width: 100%;
  margin-bottom: 20px;
  height: 20px;
  vertical-align: bottom; }

.project-item {
  position: relative;
  margin-bottom: 50px;
  transition: 200ms ease-in; }
  .project-item:hover {
    opacity: 80%; }

.project-list__left .project-item:nth-child(odd) .project-item__image {
  height: 480px; }
  @media only screen and (max-width: 599px) {
    .project-list__left .project-item:nth-child(odd) .project-item__image {
      height: 200px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .project-list__left .project-item:nth-child(odd) .project-item__image {
      height: 320px; } }

.project-list__left .project-item:nth-child(odd) .project-item__body {
  bottom: 0; }
  @media only screen and (max-width: 599px) {
    .project-list__left .project-item:nth-child(odd) .project-item__body {
      top: 0;
      bottom: none; } }

.project-list__left .project-item:nth-child(even) .project-item__image {
  height: 350px; }
  @media only screen and (max-width: 899px) {
    .project-list__left .project-item:nth-child(even) .project-item__image {
      height: 200px; } }

.project-list__left .project-item:nth-child(even) .project-item__body {
  top: 0; }

.project-list__right .project-item:nth-child(even) .project-item__image {
  height: 480px; }
  @media only screen and (max-width: 599px) {
    .project-list__right .project-item:nth-child(even) .project-item__image {
      height: 200px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .project-list__right .project-item:nth-child(even) .project-item__image {
      height: 320px; } }

.project-list__right .project-item:nth-child(even) .project-item__body {
  bottom: 0; }
  @media only screen and (max-width: 599px) {
    .project-list__right .project-item:nth-child(even) .project-item__body {
      top: 0;
      bottom: none; } }

.project-list__right .project-item:nth-child(odd) .project-item__image {
  height: 350px; }
  @media only screen and (max-width: 899px) {
    .project-list__right .project-item:nth-child(odd) .project-item__image {
      height: 200px; } }

.project-list__right .project-item:nth-child(odd) .project-item__body {
  top: 0; }

.project-item__image {
  display: flex;
  width: 100%;
  justify-content: center;
  z-index: -1;
  border-radius: 20px; }
  .project-item__image img {
    border-radius: 20px;
    object-fit: cover;
    width: 100%;
    height: 100%; }

.project-item__body {
  position: absolute;
  padding: 20px; }
  .project-item__body .project-item__subtitle {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.11111em;
    color: white;
    font-weight: 700; }

.project-list {
  margin-bottom: 100px; }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .project-list {
      margin-bottom: 50px; } }

.project-list__wrap {
  margin: 100px -15px 0; }
  @media only screen and (max-width: 899px) {
    .project-list__wrap {
      margin: 50px 0 0 0; } }

.project-list__column {
  width: calc(50% - 30px);
  margin: 15px; }
  @media only screen and (max-width: 599px) {
    .project-list__column {
      width: 100%;
      margin: 0; } }

.submenu__wrap {
  margin: -10px;
  margin-top: 100px; }
  @media only screen and (max-width: 899px) {
    .submenu__wrap {
      margin: 50px 0;
      height: 40px;
      position: relative; } }
  @media only screen and (max-width: 899px) {
    .submenu__wrap .owl-stage-outer {
      overflow: visible; } }
  .submenu__wrap .owl-stage {
    height: 40px;
    overflow: hidden; }
  .submenu__wrap .is-active {
    background-color: #1c1c1c;
    color: white; }

.submenu {
  margin-bottom: 100px; }
  @media only screen and (max-width: 899px) {
    .submenu {
      margin-bottom: 50px; } }

.submenu__item {
  margin: 10px; }
  @media only screen and (max-width: 899px) {
    .submenu__item {
      margin: 0; } }

.images {
  margin-bottom: 100px; }
  @media only screen and (max-width: 599px) {
    .images {
      margin-bottom: 50px; } }

.images__wrapper {
  margin: 0 -15px -30px; }

.images__column {
  width: calc(50% - 30px);
  margin: 0 15px; }
  @media only screen and (max-width: 599px) {
    .images__column {
      width: 100%; } }

.images__image {
  margin-bottom: 30px; }
  @media only screen and (max-width: 899px) {
    .images__image {
      max-height: 300px; } }

.images__image {
  border-radius: 20px;
  height: 480px;
  position: relative;
  overflow: hidden; }
  .images__image img {
    width: 100%;
    height: 100%;
    border-radius: 20px; }

.footer {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.625em;
  margin-top: 100px; }
  .footer .is-active svg {
    transform: rotate(90deg); }

.footer__titles {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 30px; }
  @media only screen and (max-width: 599px) {
    .footer__titles {
      margin-bottom: 0; } }

.footer__title-button {
  width: 100%;
  font-weight: 700; }
  @media only screen and (max-width: 899px) {
    .footer__title-button {
      width: fit-content; } }

.footer__title {
  margin-top: -56px;
  margin-bottom: 30px;
  font-weight: 700; }

.footer__title-wrap {
  display: flex;
  width: 75%; }
  @media only screen and (max-width: 599px) {
    .footer__title-wrap {
      width: 80%;
      margin: auto;
      cursor: pointer; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .footer__title-wrap {
      width: 50%;
      min-height: 20px;
      cursor: pointer; } }
  .footer__title-wrap svg {
    display: none;
    height: 20px;
    width: 10px;
    margin-top: 4px;
    margin-left: 5px;
    transition: all 300ms ease; }
    @media only screen and (max-width: 899px) {
      .footer__title-wrap svg {
        display: block; } }

.footer__content {
  display: flex;
  flex-wrap: wrap; }
  @media only screen and (max-width: 599px) {
    .footer__content {
      width: 80%;
      margin: auto; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .footer__content {
      margin-bottom: 20px; } }

.footer__sitemaps {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 40px;
  width: 75%; }
  @media only screen and (max-width: 599px) {
    .footer__sitemaps {
      width: 100%;
      margin-bottom: 70px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .footer__sitemaps {
      width: calc(50% - 30px);
      margin-right: 30px; } }
  @media only screen and (max-width: 599px) {
    .footer__sitemaps .is-active {
      margin-top: 20px; } }
  @media only screen and (max-width: 899px) {
    .footer__sitemaps .is-active {
      display: block; } }
  .footer__sitemaps a:hover {
    opacity: 60%; }

.footer__columns {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  @media only screen and (max-width: 899px) {
    .footer__columns {
      display: none; } }

.footer__column {
  width: calc(33% - 30px);
  margin-right: 30px; }
  @media only screen and (max-width: 599px) {
    .footer__column {
      width: 100%;
      margin-right: 0; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .footer__column {
      width: 100%; } }

.footer__contact {
  width: 25%; }
  @media only screen and (max-width: 599px) {
    .footer__contact {
      width: 100%;
      margin-bottom: 20px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .footer__contact {
      width: calc(50% - 30px); } }

.footer__editor ul li {
  margin-bottom: 10px; }

.footer__bottom {
  background-color: #1c1c1c;
  text-align: center;
  padding: 10px 0; }

.footer__disclaimer {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.85714em;
  margin: auto;
  color: white; }

.text-image {
  margin-bottom: 100px; }
  @media only screen and (max-width: 599px) {
    .text-image {
      margin-bottom: 50px; } }

.text-image--position-right {
  flex-direction: row-reverse; }

.text-image__wrapper {
  margin: -15px; }

.text-image__column {
  width: calc(50% - 30px);
  margin: 0 15px; }
  @media only screen and (max-width: 599px) {
    .text-image__column {
      width: 100%; } }

.text-image__image {
  margin-bottom: 15px; }
  @media only screen and (max-width: 899px) {
    .text-image__image {
      max-height: 300px; } }

.text-image__title {
  margin-bottom: 30px; }

.text-image__image {
  border-radius: 20px;
  height: 480px;
  position: relative; }
  .text-image__image img {
    width: 100%;
    height: 100%;
    border-radius: 20px; }

.theme__notice {
  position: fixed;
  bottom: 0;
  left: 0;
  background-color: #ffc840;
  padding: 30px 0;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  transition: all 300ms ease-in-out;
  z-index: 99; }
  @media only screen and (max-width: 899px) {
    .theme__notice {
      padding: 20px 10px; } }
  .theme__notice p, .theme__notice a {
    text-align: center;
    color: #1c1c1c; }
  .theme__notice a {
    transition: all 300ms ease-in-out; }
    .theme__notice a:hover {
      opacity: 0.7; }
  .theme__notice.is-active {
    opacity: 1;
    pointer-events: all; }

.theme__notice-close {
  width: 30px;
  height: 30px;
  position: absolute;
  top: 5px;
  right: 20px;
  transition: all 300ms ease-in-out;
  cursor: pointer; }
  @media only screen and (max-width: 899px) {
    .theme__notice-close {
      right: inherit;
      left: 10px;
      top: 10px;
      width: 20px;
      height: 20px; } }
  .theme__notice-close path {
    fill: #1c1c1c; }
  .theme__notice-close:hover {
    opacity: 0.7; }

/**
 * Utilities.
 */
/**
 * Color utility classes.
 *
 * Automatically generated color and background color utility classes based on every color definition in `settings/_color.scss`.
 * Loop through every `$key` and `$map` in the `$colors` variable map defined in `settings/_color.scss`.
 */
/**
			 * `color` #1c1c1c-100 color utility.
			 */
.color-black-100 {
  color: #1c1c1c; }

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

/**
			 * `color` rgba(28, 28, 28, 0.5)-50 color utility.
			 */
.color-black-50 {
  color: rgba(28, 28, 28, 0.5); }

/**
			 * `background-color` rgba(28, 28, 28, 0.5)-50 color utility.
			 */
.background-color-black-50 {
  background-color: rgba(28, 28, 28, 0.5); }

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

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

/**
			 * `color` #d02a25-100 color utility.
			 */
.color-red-100 {
  color: #d02a25; }

/**
			 * `background-color` #d02a25-100 color utility.
			 */
.background-color-red-100 {
  background-color: #d02a25; }

/**
 * Visually hide any element from the user.
 */
.visually-hidden {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(1px); }

/**
 * Make lazyload placeholder 100% wide.
 */
.lazyload {
  width: 100%; }

/**
 * Helper class for object fit polyfill. Add this class to any element
 * that utilizes the `object-fit` property.
 */

.object-fit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-family: 'object-fit: cover;';
  object-fit: cover; }

/**
 * Align center.
 */
.align-center {
  text-align: center; }

/**
 * Align left.
 */
.align-left {
  text-align: left; }

/**
 * Align right.
 */
.align-right {
  text-align: right; }

/**
 * Object fit.
 *
 * 1. Font family polyfill with (https://github.com/bfred-it/object-fit-images).
 * Loop through every value for the `object-fit` property.
 */
/**
	 * `object-fit` fill utility class.
	 */
.fill {
  font-family: "object-fit: fill;";
  /* 1 */
  object-fit: fill; }

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

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

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

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

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

.relative {
  position: relative; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.sticky {
  position: sticky; }

/**
 * Font family utility classes.
 */
.text-xs-default {
  font-family: "Montserrat"; }

.text-xs-quote {
  font-family: "sans-serif"; }

@media only screen and (max-width: 599px) {
  .text-sm-default {
    font-family: "Montserrat"; }
  .text-sm-quote {
    font-family: "sans-serif"; } }

@media only screen and (min-width: 600px) {
  .text-md-default {
    font-family: "Montserrat"; }
  .text-md-quote {
    font-family: "sans-serif"; } }

@media only screen and (min-width: 900px) {
  .text-lg-default {
    font-family: "Montserrat"; }
  .text-lg-quote {
    font-family: "sans-serif"; } }

@media only screen and (min-width: 1200px) {
  .text-xl-default {
    font-family: "Montserrat"; }
  .text-xl-quote {
    font-family: "sans-serif"; } }

/**
 * Text size utility classes.
 */
.text-xs-h1 {
  font-size: 84px;
  font-size: 8.4rem;
  line-height: 1.04762em; }

.text-xs-h2 {
  font-size: 72px;
  font-size: 7.2rem;
  line-height: 1.08333em; }

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

.text-xs-h4 {
  font-size: 52px;
  font-size: 5.2rem;
  line-height: 0.73077em; }

.text-xs-h5 {
  font-size: 46px;
  font-size: 4.6rem;
  line-height: 0.78261em; }

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

@media only screen and (max-width: 599px) {
  .text-sm-h1 {
    font-size: 84px;
    font-size: 8.4rem;
    line-height: 1.04762em; }
  .text-sm-h2 {
    font-size: 72px;
    font-size: 7.2rem;
    line-height: 1.08333em; }
  .text-sm-h3 {
    font-size: 48px;
    font-size: 4.8rem;
    line-height: 1.20833em; }
  .text-sm-h4 {
    font-size: 52px;
    font-size: 5.2rem;
    line-height: 0.73077em; }
  .text-sm-h5 {
    font-size: 46px;
    font-size: 4.6rem;
    line-height: 0.78261em; }
  .text-sm-p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.625em; } }

@media only screen and (min-width: 600px) {
  .text-md-h1 {
    font-size: 84px;
    font-size: 8.4rem;
    line-height: 1.04762em; }
  .text-md-h2 {
    font-size: 72px;
    font-size: 7.2rem;
    line-height: 1.08333em; }
  .text-md-h3 {
    font-size: 48px;
    font-size: 4.8rem;
    line-height: 1.20833em; }
  .text-md-h4 {
    font-size: 52px;
    font-size: 5.2rem;
    line-height: 0.73077em; }
  .text-md-h5 {
    font-size: 46px;
    font-size: 4.6rem;
    line-height: 0.78261em; }
  .text-md-p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.625em; } }

@media only screen and (min-width: 900px) {
  .text-lg-h1 {
    font-size: 84px;
    font-size: 8.4rem;
    line-height: 1.04762em; }
  .text-lg-h2 {
    font-size: 72px;
    font-size: 7.2rem;
    line-height: 1.08333em; }
  .text-lg-h3 {
    font-size: 48px;
    font-size: 4.8rem;
    line-height: 1.20833em; }
  .text-lg-h4 {
    font-size: 52px;
    font-size: 5.2rem;
    line-height: 0.73077em; }
  .text-lg-h5 {
    font-size: 46px;
    font-size: 4.6rem;
    line-height: 0.78261em; }
  .text-lg-p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.625em; } }

@media only screen and (min-width: 1200px) {
  .text-xl-h1 {
    font-size: 84px;
    font-size: 8.4rem;
    line-height: 1.04762em; }
  .text-xl-h2 {
    font-size: 72px;
    font-size: 7.2rem;
    line-height: 1.08333em; }
  .text-xl-h3 {
    font-size: 48px;
    font-size: 4.8rem;
    line-height: 1.20833em; }
  .text-xl-h4 {
    font-size: 52px;
    font-size: 5.2rem;
    line-height: 0.73077em; }
  .text-xl-h5 {
    font-size: 46px;
    font-size: 4.6rem;
    line-height: 0.78261em; }
  .text-xl-p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.625em; } }

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

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

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

@media only screen and (max-width: 599px) {
  .text-sm-left {
    text-align: left; }
  .text-sm-right {
    text-align: right; }
  .text-sm-center {
    text-align: center; } }

@media only screen and (min-width: 600px) {
  .text-md-left {
    text-align: left; }
  .text-md-right {
    text-align: right; }
  .text-md-center {
    text-align: center; } }

@media only screen and (min-width: 900px) {
  .text-lg-left {
    text-align: left; }
  .text-lg-right {
    text-align: right; }
  .text-lg-center {
    text-align: center; } }

@media only screen and (min-width: 1200px) {
  .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; }

@media only screen and (max-width: 599px) {
  .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; } }

@media only screen and (min-width: 600px) {
  .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; } }

@media only screen and (min-width: 900px) {
  .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; } }

@media only screen and (min-width: 1200px) {
  .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; }

@media only screen and (max-width: 599px) {
  .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; } }

@media only screen and (min-width: 600px) {
  .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; } }

@media only screen and (min-width: 900px) {
  .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; } }

@media only screen and (min-width: 1200px) {
  .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; }

/**
 * 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsInNldHRpbmdzL19hbGwuc2NzcyIsInNldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCJzZXR0aW5ncy9fY29sb3Iuc2NzcyIsInNldHRpbmdzL196LWluZGV4LnNjc3MiLCJzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2NzcyIsIi4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCIuLi8uLi9idWlsZC9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL293bC5jYXJvdXNlbC5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fY29yZS5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYW5pbWF0ZS5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYXV0b2hlaWdodC5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fbGF6eWxvYWQuc2NzcyIsIi4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX3ZpZGVvLnNjc3MiLCJ0b29scy9fYWxsLnNjc3MiLCJ0b29scy9fZnVuY3Rpb25zLnNjc3MiLCJ0b29scy9fbWFnbmlmaWMtcG9wdXAuc2NzcyIsInRvb2xzL19taXhpbnMuc2NzcyIsImdlbmVyaWMvX2Jhc2Uuc2NzcyIsImdlbmVyaWMvX3Jlc2V0LnNjc3MiLCJvYmplY3RzL19idXR0b25zLnNjc3MiLCJvYmplY3RzL19jb250YWluZXIuc2NzcyIsIm9iamVjdHMvX2NvbnRlbnQtY29uc3RyYWludC5zY3NzIiwib2JqZWN0cy9fZmxleC5zY3NzIiwib2JqZWN0cy9fZm9ybS5zY3NzIiwib2JqZWN0cy9faGVhZGluZ3Muc2NzcyIsIm9iamVjdHMvX2xpbmtzLnNjc3MiLCJvYmplY3RzL19wYWdpbmF0aW9uLnNjc3MiLCJvYmplY3RzL193cmFwcGVyLnNjc3MiLCJvYmplY3RzL19jb250YWN0LWxpbmtzLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX2Ntcy1vdXRwdXQuc2NzcyIsImNvbXBvbmVudHMvX25hdmlnYXRpb24tbW9iaWxlLnNjc3MiLCJjb21wb25lbnRzL19jdGEuc2NzcyIsImNvbXBvbmVudHMvX2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvX2RlZmF1bHQuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRlbnQtaGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19wcm9qZWN0LWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvX3Byb2plY3QtbGlzdC5zY3NzIiwiY29tcG9uZW50cy9fc3VibWVudS5zY3NzIiwiY29tcG9uZW50cy9faW1hZ2VzLnNjc3MiLCJjb21wb25lbnRzL19mb290ZXIuc2NzcyIsImNvbXBvbmVudHMvX3RleHQtaW1hZ2Uuc2NzcyIsImNvbXBvbmVudHMvX25vdGljZS5zY3NzIiwidXRpbGl0aWVzL19jb2xvci5zY3NzIiwidXRpbGl0aWVzL19oZWxwZXJzLnNjc3MiLCJ1dGlsaXRpZXMvX29iamVjdC1maXQuc2NzcyIsInV0aWxpdGllcy9fcG9zaXRpb24uc2NzcyIsInV0aWxpdGllcy9fdGV4dC5zY3NzIiwidXRpbGl0aWVzL192ZXJ0aWNhbC1yaHl0aG0uc2NzcyIsInV0aWxpdGllcy9fei1pbmRleC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBTZXR0aW5ncy5cclxuICovXHJcbkBpbXBvcnQgJ3NldHRpbmdzL2FsbCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFZlbmRvci5cclxuICovXHJcbkBpbXBvcnQgJy4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZSc7XHJcbkBpbXBvcnQgJy4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3Mvb3dsLmNhcm91c2VsJztcclxuXHJcbi8qKlxyXG4gKiBUb29scy5cclxuICovXHJcbkBpbXBvcnQgJ3Rvb2xzL2FsbCc7XHJcblxyXG4vKipcclxuICogRWxlbWVudHMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYWwuXHJcbiAqL1xyXG5AaW1wb3J0ICdnZW5lcmljL2Jhc2UnO1xyXG5AaW1wb3J0ICdnZW5lcmljL3Jlc2V0JztcclxuXHJcbi8qKlxyXG4gKiBPYmplY3RzLlxyXG4gKi9cclxuQGltcG9ydCAnb2JqZWN0cy9idXR0b25zJztcclxuQGltcG9ydCAnb2JqZWN0cy9jb250YWluZXInO1xyXG5AaW1wb3J0ICdvYmplY3RzL2NvbnRlbnQtY29uc3RyYWludCc7XHJcbkBpbXBvcnQgJ29iamVjdHMvZmxleCc7XHJcbkBpbXBvcnQgJ29iamVjdHMvZm9ybSc7XHJcbkBpbXBvcnQgJ29iamVjdHMvaGVhZGluZ3MnO1xyXG5AaW1wb3J0ICdvYmplY3RzL2xpbmtzJztcclxuQGltcG9ydCAnb2JqZWN0cy9wYWdpbmF0aW9uJztcclxuQGltcG9ydCAnb2JqZWN0cy93cmFwcGVyJztcclxuQGltcG9ydCAnb2JqZWN0cy9jb250YWN0LWxpbmtzJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRzLlxyXG4gKi9cclxuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkZXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2Ntcy1vdXRwdXQnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL25hdmlnYXRpb24tbW9iaWxlJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9jdGEnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvcm0nO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2RlZmF1bHQnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRlbnQtaGVhZGVyJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9wcm9qZWN0LWl0ZW0nO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2plY3QtbGlzdCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3VibWVudSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaW1hZ2VzJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9mb290ZXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RleHQtaW1hZ2UnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL25vdGljZSc7XHJcblxyXG4vKipcclxuICogVXRpbGl0aWVzLlxyXG4gKi9cclxuQGltcG9ydCAndXRpbGl0aWVzL2NvbG9yJztcclxuQGltcG9ydCAndXRpbGl0aWVzL2hlbHBlcnMnO1xyXG5AaW1wb3J0ICd1dGlsaXRpZXMvb2JqZWN0LWZpdCc7XHJcbkBpbXBvcnQgJ3V0aWxpdGllcy9wb3NpdGlvbic7XHJcbkBpbXBvcnQgJ3V0aWxpdGllcy90ZXh0JztcclxuQGltcG9ydCAndXRpbGl0aWVzL3ZlcnRpY2FsLXJoeXRobSc7XHJcbkBpbXBvcnQgJ3V0aWxpdGllcy96LWluZGV4JztcclxuIiwiLyoqXHJcbiAqIFNldHRpbmdzLlxyXG4gKi9cclxuIFxyXG5AaW1wb3J0ICd0eXBvZ3JhcGh5JztcclxuQGltcG9ydCAnY29sb3InO1xyXG5AaW1wb3J0ICd6LWluZGV4JztcclxuQGltcG9ydCAnZGVmaW5pdGlvbnMnO1xyXG4iLCIvKipcclxuICogRm9udCBmYW1pbHkgbWFwLlxyXG4gKi9cclxuXHJcbiRmb250LWZhbWlseTogKFxyXG5cdCdkZWZhdWx0JzogJ01vbnRzZXJyYXQnLFxyXG5cdCdxdW90ZSc6ICdzYW5zLXNlcmlmJ1xyXG4pO1xyXG5cclxuLyoqXHJcbiAqIEZvbnQgc2l6ZSBtYXAuXHJcbiAqL1xyXG5cclxuJGZvbnQtc2l6ZTogKFxyXG5cdCdoMSc6IDg0cHgsXHJcblx0J2gyJzogNzJweCxcclxuXHQnaDMnOiA0OHB4LFxyXG5cdCdoNCc6IDUycHgsXHJcblx0J2g1JzogNDZweCxcclxuXHQncCc6IDE2cHhcclxuKTtcclxuXHJcblxyXG4vKipcclxuICogTGluZSBoZWlnaHQgbWFwLlxyXG4gKi9cclxuXHJcbiRsaW5lLWhlaWdodDogKFxyXG5cdCdoMSc6IDg4cHgsXHJcblx0J2gyJzogNzhweCxcclxuXHQnaDMnOiA1OHB4LFxyXG5cdCdoNCc6IDM4cHgsXHJcblx0J2g1JzogMzZweCxcclxuXHQncCc6IDI2cHhcclxuKTtcclxuIiwiLy8gQ29sb3IgbWFwLlxyXG4kY29sb3JzOiAoXHJcblx0J2JsYWNrJzogKFxyXG5cdFx0JzEwMCc6IGhzbGEoMCwgMCUsIDExJSwgMSksIC8vIDFDMUMxQ1xyXG5cdFx0JzUwJzogaHNsYSgwLCAwJSwgMTElLCAwLjUpXHJcblx0KSxcclxuXHQnd2hpdGUnOiAoXHJcblx0XHQnMTAwJzogaHNsYSgwLCAwJSwgMTAwJSwgMSkgLy8gZmZmXHJcblx0KSxcclxuXHQncmVkJzogKFxyXG5cdFx0JzEwMCc6IGhzbGEoMiwgNzAlLCA0OCUsIDEpIC8vIEQwMkMyNVxyXG5cdClcclxuKTtcclxuXHJcbi8vIENvbG9yIHNob3J0aGFuZCB2YXJpYWJsZXMuXHJcbiRibGFjay0xMDA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnYmxhY2snKSwgJzEwMCcpO1xyXG4kYmxhY2stNTA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnYmxhY2snKSwgJzUwJyk7XHJcbiR3aGl0ZS0xMDA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnd2hpdGUnKSwgJzEwMCcpO1xyXG4kcmVkLTEwMDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdyZWQnKSwgJzEwMCcpO1xyXG4iLCIvLyBBIGxpbWl0ZWQgYXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgYHotaW5kZXhgIHByb3BlcnR5IHRvIHByZXZlbnRcclxuLy8gRXhhZ2dlcmF0ZWQgYW1vdW50cyBhbmQgdWdseSBoYWNrcy5cclxuXHJcbiR6LWluZGV4OiAoXHJcblx0JzAnOlx0MCxcclxuXHQnMSc6XHQxMCxcclxuXHQnMic6XHQyMCxcclxuXHQnMyc6XHQzMCxcclxuXHQnNCc6XHQ0MCxcclxuXHQnNSc6XHQ1MCxcclxuXHQnNic6XHQ2MCxcclxuXHQnNyc6XHQ3MCxcclxuXHQnOCc6XHQ4MCxcclxuXHQnOSc6XHQ5MCxcclxuXHQnMTAnOiAxMDBcclxuKTtcclxuIiwiLyoqXHJcbiAqIEdyaWQuXHJcbiAqL1xyXG5cclxuLy8gR3JpZCB3aWR0aC5cclxuLy8gTWF4aW11bSBjb250YWluZXIgd2lkdGguXHJcbiRncmlkLXdpZHRoOiAxMDI0cHg7XHJcblxyXG4vLyBHcmlkIGNvbHVtbnMuXHJcbi8vIEFtb3VudCBvZiBncmlkIGNvbHVtbnMgdG8gY2FsY3VsYXRlIGEgY29sdW1uIHdpZHRoIHdpdGguXHJcbiRncmlkLWNvbHVtbnM6IDEyO1xyXG5cclxuLy8gR3JpZCBnYXAuXHJcbi8vIFNwYWNlIGJldHdlZW4gZ3JpZCBjb2x1bW5zLCBhdXRvbWF0ZWQuXHJcbiRncmlkLWdhcDogMjBweDtcclxuXHJcblxyXG4vKipcclxuICogQXNzZXRzLlxyXG4gKi9cclxuXHJcbi8vIEltYWdlIHBhdGguXHJcbiRpbWFnZS1wYXRoOiAnLi4vaW1hZ2VzLyc7XHJcblxyXG5cclxuLyoqXHJcbiAqIEJvZHkuXHJcbiAqL1xyXG5cclxuLy8gQm9keSBiYWNrZ3JvdW5kIGNvbG9yLlxyXG4kYm9keS1iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cclxuLy8gQm9keSBjb2xvci5cclxuJGJvZHktY29sb3I6ICRibGFjay0xMDA7XHJcblxyXG4vLyBCb2R5IGZvbnQgZmFtaWx5LlxyXG4kYm9keS1mb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICdkZWZhdWx0Jyk7XHJcblxyXG4vLyBCb2R5IHRleHQuXHJcbiRib2R5LXRleHQ6ICdwJztcclxuXHJcblxyXG4vKipcclxuICogT3RoZXIuXHJcbiAqL1xyXG5cclxuLy8gTGluayBjb2xvci5cclxuJGxpbmstY29sb3I6ICRyZWQtMTAwO1xyXG5cclxuLy8gU2VsZWN0IGNvbG9yLlxyXG4qOjpzZWxlY3Rpb24ge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRibGFjay0xMDA7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXNwb25zaXZlLlxyXG4gKi9cclxuXHJcbi8vIEdyaWQgYnJlYWtwb2ludCBhbGlhcy5cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0eHM6IG51bGwsXHJcblx0c206ICdwaG9uZScsXHJcblx0bWQ6ICd0YWJsZXQtcG9ydHJhaXQtdXAnLFxyXG5cdGxnOiAndGFibGV0LWxhbmRzY2FwZS11cCcsXHJcblx0eGw6ICdkZXNrdG9wJ1xyXG4pO1xyXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiQGltcG9ydCAnY29yZSc7XG5AaW1wb3J0ICdhbmltYXRlJztcbkBpbXBvcnQgJ2F1dG9oZWlnaHQnO1xuQGltcG9ydCAnbGF6eWxvYWQnO1xuQGltcG9ydCAndmlkZW8nO1xuIiwiLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlXG4gKi9cbi5vd2wtY2Fyb3VzZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHR3aWR0aDogMTAwJTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0LyogcG9zaXRpb24gcmVsYXRpdmUgYW5kIHotaW5kZXggZml4IHdlYmtpdCByZW5kZXJpbmcgZm9udHMgaXNzdWUgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXG5cdC5vd2wtc3RhZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQtbXMtdG91Y2gtYWN0aW9uOiBwYW4tWTtcblx0XHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0XHQtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqL1xuXHR9XG5cblx0Lm93bC1zdGFnZTphZnRlciB7XG5cdFx0Y29udGVudDogXCIuXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdGxpbmUtaGVpZ2h0OiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXG5cdC5vd2wtc3RhZ2Utb3V0ZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcblx0fVxuXG5cdC5vd2wtd3JhcHBlcixcblx0Lm93bC1pdGVte1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHRcdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0fVxuXG5cdC5vd2wtaXRlbSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1pbi1oZWlnaHQ6IDFweDtcblx0XHRmbG9hdDogbGVmdDtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0fVxuXHQub3dsLWl0ZW0gaW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdC5vd2wtbmF2LmRpc2FibGVkLFxuXHQub3dsLWRvdHMuZGlzYWJsZWQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQub3dsLW5hdiAub3dsLXByZXYsXG5cdC5vd2wtbmF2IC5vd2wtbmV4dCxcblx0Lm93bC1kb3Qge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG5cdC5vd2wtbmF2IGJ1dHRvbi5vd2wtcHJldixcblx0Lm93bC1uYXYgYnV0dG9uLm93bC1uZXh0LFxuXHRidXR0b24ub3dsLWRvdCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0cGFkZGluZzowIWltcG9ydGFudDtcblx0XHRmb250OiBpbmhlcml0O1xuXHR9XG5cblx0Ji5vd2wtbG9hZGVkIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYub3dsLWxvYWRpbmcge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLm93bC1oaWRkZW4ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQmLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG5cblx0Ji5vd2wtZHJhZyAub3dsLWl0ZW0ge1xuXHRcdHRvdWNoLWFjdGlvbjogcGFuLXk7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG5cdCYub3dsLWdyYWIge1xuXHRcdGN1cnNvcjogbW92ZTtcblx0XHRjdXJzb3I6IGdyYWI7XG5cdH1cblxuXHQmLm93bC1ydGwge1xuXHRcdGRpcmVjdGlvbjogcnRsO1xuXHR9XG5cblx0Ji5vd2wtcnRsIC5vd2wtaXRlbSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG59XG5cbi8qIE5vIEpzICovXG4ubm8tanMgLm93bC1jYXJvdXNlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2Vse1xuXHQuYW5pbWF0ZWQge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cdH1cblx0Lm93bC1hbmltYXRlZC1pbiB7XG5cdFx0ei1pbmRleDogMDtcblx0fVxuXHQub3dsLWFuaW1hdGVkLW91dCB7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXHQuZmFkZU91dCB7XG5cdFx0YW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG4iLCIvKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cbiAqL1xuXG4ub3dsLWhlaWdodCB7XG5cdHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbn1cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIExhenkgTG9hZCBQbHVnaW5cbiAqL1xuXG4ub3dsLWNhcm91c2VsIHtcblx0Lm93bC1pdGVtIHtcblx0XHQub3dsLWxhenkge1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0XHRUaGlzIGlzIGludHJvZHVjZWQgZHVlIHRvIGEgYnVnIGluIElFMTEgd2hlcmUgbGF6eSBsb2FkaW5nIGNvbWJpbmVkIHdpdGggYXV0b2hlaWdodCBwbHVnaW4gY2F1c2VzIGEgd3Jvbmdcblx0XHRcdGNhbGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQgb2YgdGhlIG93bC1pdGVtIHRoYXQgYnJlYWtzIHBhZ2UgbGF5b3V0c1xuXHRcdCAqL1xuXHRcdC5vd2wtbGF6eVtzcmNePVwiXCJdLCAub3dsLWxhenk6bm90KFtzcmNdKSB7XG5cdFx0XHRtYXgtaGVpZ2h0OiAwO1xuXHRcdH1cblxuXHRcdGltZy5vd2wtbGF6eSB7XG5cdFx0XHR0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuXHRcdH1cblx0fVxufVxuXG4iLCIkb3dsLWltYWdlLXBhdGg6IFwiXCIgIWRlZmF1bHQ7XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIFZpZGVvIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWx7XG5cdC5vd2wtdmlkZW8td3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5LWljb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0d2lkdGg6IDgwcHg7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRvcDogNTAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAtNDBweDtcblx0XHRtYXJnaW4tdG9wOiAtNDBweDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoXCIjeyRvd2wtaW1hZ2UtcGF0aH1vd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR6LWluZGV4OiAxO1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5LWljb246aG92ZXIge1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tdG4sXG5cdC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tdG4ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXHR9XG5cblx0Lm93bC12aWRlby1mcmFtZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKipcclxuICogVG9vbHMuXHJcbiAqL1xyXG5cclxuQGltcG9ydCAnZnVuY3Rpb25zJztcclxuQGltcG9ydCAnbWFnbmlmaWMtcG9wdXAnO1xyXG5AaW1wb3J0ICdtaXhpbnMnO1xyXG4iLCIvKipcclxuICogVW5pY29kZS5cclxuICpcclxuICogUHJlc2VydmUgZXNjYXBlZCB1bmljb2RlIHN0cmluZy5cclxuICogQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBBbiB1bmljb2RlIHN0cmluZy5cclxuICogQHJldHVybiB7U3RyaW5nfSBBIHByZXNlcnZlZCBlc2NhcGVkIHVuaWNvZGUgc3RyaW5nXHJcbiAqL1xyXG4gXHJcbi8vIHNhc3MtbGludDpkaXNhYmxlIHF1b3Rlc1xyXG5AZnVuY3Rpb24gdW5pY29kZSgkc3RyaW5nKSB7XHJcblx0QHJldHVybiB1bnF1b3RlKFwiXFwnXCIpICsgdW5xdW90ZShzdHItaW5zZXJ0KCRzdHJpbmcsICdcXFxcJywgMSkpICsgdW5xdW90ZShcIlxcJ1wiKTtcclxufVxyXG4vLyBzYXNzLWxpbnQ6ZW5hYmxlIHF1b3Rlc1xyXG5cclxuXHJcbi8qKlxyXG4gKiBSRU0uXHJcbiAqXHJcbiAqIENvbnZlcnQgcGl4ZWwgdW5pdHMgdG8gUkVNIHVuaXRzLlxyXG4gKiBAcGFyYW0ge051bWJlcn0gJHBpeGVscyAtIFBpeGVsIHZhbHVlLlxyXG4gKiBAcmV0dXJuIHsqfSAtIEEgY29udmVydGVkIGByZW1gIHVuaXQuXHJcbiAqL1xyXG5cclxuQGZ1bmN0aW9uIHJlbSgkcGl4ZWxzKSB7XHJcblx0QGlmICh1bml0bGVzcygkcGl4ZWxzKSkge1xyXG5cdFx0QGVycm9yICdWYWx1ZSBmb3IgYCN7JHBpeGVsc31gIHNob3VsZCBiZSBhIGBweGAgdW5pdC4nO1xyXG5cdH1cclxuXHRAcmV0dXJuICgoJHBpeGVscyAvIDEwcHgpICogMXJlbSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29sdW1uLlxyXG4gKlxyXG4gKiBDYWxjdWxhdGUgZ2l2ZW4gY29sdW1uIHdpZHRoLlxyXG4gKiBAcGFyYW0ge051bWJlcn0gJGNvbHVtbiAtIFRoZSBhbW91bnQgb2YgY29sdW1ucyB0byBzcGFuLlxyXG4gKiBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBUaGUgYW1vdW50IG9mIGNvbHVtbnMgdGhhdCBjYW4gYmUgc3Bhbm5lZC5cclxuICogQHJldHVybiB7U3RyaW5nfSAtIFBlcmNlbnRhZ2UgdmFsdWUuXHJcbiAqL1xyXG5cclxuQGZ1bmN0aW9uIGNvbHVtbigkY29sdW1uLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xyXG5cdEByZXR1cm4gKCRjb2x1bW5cdCogMTAwJSAvICRjb2x1bW5zKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2xvci5cclxuICpcclxuICogR2V0IGEgY29sb3IgdmFsdWUgZnJvbSB0d28gbGV2ZWxzIGRlZXAgaW4gdGhlIGAkY29sb3JgIG1hcC5cclxuICogQHBhcmFtIHskc3RyaW5nfSAka2V5IC0gS2V5IG9mIHRoZSBjb2xvciB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4gKiBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgb2YgdGhlIGtleSB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4gKiBAcmV0dXJuIHsqfSBBIEhTTEEgY29sb3IgdmFsdWUuXHJcbiAqL1xyXG5cclxuQGZ1bmN0aW9uIGNvbG9yKCRrZXksICR2YWx1ZSkge1xyXG5cdEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICRrZXkpLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIGluZGVudGF0aW9uIG5vLXF1YWxpZnlpbmctZWxlbWVudHMgc2hvcnRoYW5kLXZhbHVlcyBzaW5nbGUtbGluZS1wZXItc2VsZWN0b3IgY2xhc3MtbmFtZS1mb3JtYXQgbm8taWRzIGlkLW5hbWUtZm9ybWF0IHByb3BlcnR5LXNvcnQtb3JkZXIgbm8tY29sb3ItbGl0ZXJhbHMgaGV4LW5vdGF0aW9uIGJyYWNlLXN0eWxlIHplcm8tdW5pdCBzcGFjZS1hZnRlci1jb2xvbiBlbXB0eS1saW5lLWJldHdlZW4tYmxvY2tzXHJcblxyXG5cclxuLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXHJcbi5tZnAtYmcge1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHR6LWluZGV4OiAxMDQyO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdGJhY2tncm91bmQ6ICMwYjBiMGI7XHJcblx0b3BhY2l0eTogMC44OyB9XHJcblxyXG4ubWZwLXdyYXAge1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHR6LWluZGV4OiAxMDQzO1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcblx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcbi5tZnAtY29udGFpbmVyIHtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRsZWZ0OiAwO1xyXG5cdHRvcDogMDtcclxuXHRwYWRkaW5nOiAwIDhweDtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4ubWZwLWNvbnRhaW5lcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6ICcnO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxyXG5cclxuLm1mcC1hbGlnbi10b3AgLm1mcC1jb250YWluZXI6YmVmb3JlIHtcclxuXHRkaXNwbGF5OiBub25lOyB9XHJcblxyXG4ubWZwLWNvbnRlbnQge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRtYXJnaW46IDAgYXV0bztcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdHotaW5kZXg6IDEwNDU7IH1cclxuXHJcbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXHJcbi5tZnAtYWpheC1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRjdXJzb3I6IGF1dG87IH1cclxuXHJcbi5tZnAtYWpheC1jdXIge1xyXG5cdGN1cnNvcjogcHJvZ3Jlc3M7IH1cclxuXHJcbi5tZnAtem9vbS1vdXQtY3VyLCAubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcclxuXHRjdXJzb3I6IC1tb3otem9vbS1vdXQ7XHJcblx0Y3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xyXG5cdGN1cnNvcjogem9vbS1vdXQ7IH1cclxuXHJcbi5tZnAtem9vbSB7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xyXG5cdGN1cnNvcjogLW1vei16b29tLWluO1xyXG5cdGN1cnNvcjogem9vbS1pbjsgfVxyXG5cclxuLm1mcC1hdXRvLWN1cnNvciAubWZwLWNvbnRlbnQge1xyXG5cdGN1cnNvcjogYXV0bzsgfVxyXG5cclxuLm1mcC1jbG9zZSxcclxuLm1mcC1hcnJvdyxcclxuLm1mcC1wcmVsb2FkZXIsXHJcbi5tZnAtY291bnRlciB7XHJcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdHVzZXItc2VsZWN0OiBub25lOyB9XHJcblxyXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XHJcblx0ZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLm1mcC1oaWRlIHtcclxuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbi5tZnAtcHJlbG9hZGVyIHtcclxuXHRjb2xvcjogI0NDQztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiA1MCU7XHJcblx0d2lkdGg6IGF1dG87XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdG1hcmdpbi10b3A6IC0wLjhlbTtcclxuXHRsZWZ0OiA4cHg7XHJcblx0cmlnaHQ6IDhweDtcclxuXHR6LWluZGV4OiAxMDQ0OyB9XHJcblx0Lm1mcC1wcmVsb2FkZXIgYSB7XHJcblx0XHRjb2xvcjogI0NDQzsgfVxyXG5cdFx0Lm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XHJcblx0XHRcdGNvbG9yOiAjRkZGOyB9XHJcblxyXG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXIge1xyXG5cdGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnQge1xyXG5cdGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbmJ1dHRvbi5tZnAtY2xvc2UsXHJcbmJ1dHRvbi5tZnAtYXJyb3cge1xyXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHRib3JkZXI6IDA7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdG91dGxpbmU6IG5vbmU7XHJcblx0cGFkZGluZzogMDtcclxuXHR6LWluZGV4OiAxMDQ2O1xyXG5cdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XHJcblx0cGFkZGluZzogMDtcclxuXHRib3JkZXI6IDA7IH1cclxuXHJcbi5tZnAtY2xvc2Uge1xyXG5cdHdpZHRoOiA0NHB4O1xyXG5cdGhlaWdodDogNDRweDtcclxuXHRsaW5lLWhlaWdodDogNDRweDtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0cmlnaHQ6IDA7XHJcblx0dG9wOiAwO1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0b3BhY2l0eTogMC42NTtcclxuXHRwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xyXG5cdGNvbG9yOiAjRkZGO1xyXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRmb250LXNpemU6IDI4cHg7XHJcblx0Zm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlOyB9XHJcblx0Lm1mcC1jbG9zZTpob3ZlcixcclxuXHQubWZwLWNsb3NlOmZvY3VzIHtcclxuXHRcdG9wYWNpdHk6IDE7IH1cclxuXHQubWZwLWNsb3NlOmFjdGl2ZSB7XHJcblx0XHR0b3A6IDFweDsgfVxyXG5cclxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZSB7XHJcblx0Y29sb3I6ICMzMzM7IH1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsXHJcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcclxuXHRjb2xvcjogI0ZGRjtcclxuXHRyaWdodDogLTZweDtcclxuXHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRwYWRkaW5nLXJpZ2h0OiA2cHg7XHJcblx0d2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtY291bnRlciB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRyaWdodDogMDtcclxuXHRjb2xvcjogI0NDQztcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0bGluZS1oZWlnaHQ6IDE4cHg7XHJcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxyXG5cclxuLm1mcC1hcnJvdyB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdG9wYWNpdHk6IDAuNjU7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHRvcDogNTAlO1xyXG5cdG1hcmdpbi10b3A6IC01NXB4O1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0d2lkdGg6IDkwcHg7XHJcblx0aGVpZ2h0OiAxMTBweDtcclxuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XHJcblx0Lm1mcC1hcnJvdzphY3RpdmUge1xyXG5cdFx0bWFyZ2luLXRvcDogLTU0cHg7IH1cclxuXHQubWZwLWFycm93OmhvdmVyLFxyXG5cdC5tZnAtYXJyb3c6Zm9jdXMge1xyXG5cdFx0b3BhY2l0eTogMTsgfVxyXG5cdC5tZnAtYXJyb3c6YmVmb3JlLFxyXG5cdC5tZnAtYXJyb3c6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHdpZHRoOiAwO1xyXG5cdFx0aGVpZ2h0OiAwO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHRvcDogMDtcclxuXHRcdG1hcmdpbi10b3A6IDM1cHg7XHJcblx0XHRtYXJnaW4tbGVmdDogMzVweDtcclxuXHRcdGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50OyB9XHJcblx0Lm1mcC1hcnJvdzphZnRlciB7XHJcblx0XHRib3JkZXItdG9wLXdpZHRoOiAxM3B4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcclxuXHRcdHRvcDogOHB4OyB9XHJcblx0Lm1mcC1hcnJvdzpiZWZvcmUge1xyXG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMjFweDtcclxuXHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XHJcblx0XHRvcGFjaXR5OiAwLjc7IH1cclxuXHJcbi5tZnAtYXJyb3ctbGVmdCB7XHJcblx0bGVmdDogMDsgfVxyXG5cdC5tZnAtYXJyb3ctbGVmdDphZnRlciB7XHJcblx0XHRib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcclxuXHRcdG1hcmdpbi1sZWZ0OiAzMXB4OyB9XHJcblx0Lm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSB7XHJcblx0XHRtYXJnaW4tbGVmdDogMjVweDtcclxuXHRcdGJvcmRlci1yaWdodDogMjdweCBzb2xpZCAjM0YzRjNGOyB9XHJcblxyXG4ubWZwLWFycm93LXJpZ2h0IHtcclxuXHRyaWdodDogMDsgfVxyXG5cdC5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDE3cHggc29saWQgI0ZGRjtcclxuXHRcdG1hcmdpbi1sZWZ0OiAzOXB4OyB9XHJcblx0Lm1mcC1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxyXG5cclxuLm1mcC1pZnJhbWUtaG9sZGVyIHtcclxuXHRwYWRkaW5nLXRvcDogNDBweDtcclxuXHRwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxyXG5cdC5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNvbnRlbnQge1xyXG5cdFx0bGluZS1oZWlnaHQ6IDA7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1heC13aWR0aDogOTAwcHg7IH1cclxuXHQubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XHJcblx0XHR0b3A6IC00MHB4OyB9XHJcblxyXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdHBhZGRpbmctdG9wOiA1Ni4yNSU7IH1cclxuXHQubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0Ym94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcblx0XHRiYWNrZ3JvdW5kOiAjMDAwOyB9XHJcblxyXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXHJcbmltZy5tZnAtaW1nIHtcclxuXHR3aWR0aDogYXV0bztcclxuXHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGxpbmUtaGVpZ2h0OiAwO1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0cGFkZGluZzogNDBweCAwIDQwcHg7XHJcblx0bWFyZ2luOiAwIGF1dG87IH1cclxuXHJcbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xyXG4ubWZwLWZpZ3VyZSB7XHJcblx0bGluZS1oZWlnaHQ6IDA7IH1cclxuXHQubWZwLWZpZ3VyZTphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHR0b3A6IDQwcHg7XHJcblx0XHRib3R0b206IDQwcHg7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0d2lkdGg6IGF1dG87XHJcblx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG5cdFx0YmFja2dyb3VuZDogIzQ0NDsgfVxyXG5cdC5tZnAtZmlndXJlIHNtYWxsIHtcclxuXHRcdGNvbG9yOiAjQkRCREJEO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRmb250LXNpemU6IDEycHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTRweDsgfVxyXG5cdC5tZnAtZmlndXJlIGZpZ3VyZSB7XHJcblx0XHRtYXJnaW46IDA7IH1cclxuXHJcbi5tZnAtYm90dG9tLWJhciB7XHJcblx0bWFyZ2luLXRvcDogLTM2cHg7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMTAwJTtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGN1cnNvcjogYXV0bzsgfVxyXG5cclxuLm1mcC10aXRsZSB7XHJcblx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRsaW5lLWhlaWdodDogMThweDtcclxuXHRjb2xvcjogI0YzRjNGMztcclxuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcblx0cGFkZGluZy1yaWdodDogMzZweDsgfVxyXG5cclxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuXHRtYXgtd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XHJcblx0Y3Vyc29yOiBwb2ludGVyOyB9XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcclxuXHQvKipcclxuXHRcdFx0ICogUmVtb3ZlIGFsbCBwYWRkaW5ncyBhcm91bmQgdGhlIGltYWdlIG9uIHNtYWxsIHNjcmVlblxyXG5cdFx0XHQgKi9cclxuXHQubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xyXG5cdFx0cGFkZGluZy1yaWdodDogMDsgfVxyXG5cdC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XHJcblx0XHRwYWRkaW5nOiAwOyB9XHJcblx0Lm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcclxuXHRcdHRvcDogMDtcclxuXHRcdGJvdHRvbTogMDsgfVxyXG5cdC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZSBzbWFsbCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHRtYXJnaW4tbGVmdDogNXB4OyB9XHJcblx0Lm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhciB7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHR0b3A6IGF1dG87XHJcblx0XHRwYWRkaW5nOiAzcHggNXB4O1xyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG5cdFx0Lm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhcjplbXB0eSB7XHJcblx0XHRcdHBhZGRpbmc6IDA7IH1cclxuXHQubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcclxuXHRcdHJpZ2h0OiA1cHg7XHJcblx0XHR0b3A6IDNweDsgfVxyXG5cdC5tZnAtaW1nLW1vYmlsZSAubWZwLWNsb3NlIHtcclxuXHRcdHRvcDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0d2lkdGg6IDM1cHg7XHJcblx0XHRoZWlnaHQ6IDM1cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMzVweDtcclxuXHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdHBhZGRpbmc6IDA7IH0gfVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcclxuXHQubWZwLWFycm93IHtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC43NSk7IH1cclxuXHQubWZwLWFycm93LWxlZnQge1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogMDsgfVxyXG5cdC5tZnAtYXJyb3ctcmlnaHQge1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogMTAwJTsgfVxyXG5cdC5tZnAtY29udGFpbmVyIHtcclxuXHRcdHBhZGRpbmctbGVmdDogNnB4O1xyXG5cdFx0cGFkZGluZy1yaWdodDogNnB4OyB9IH1cclxuXHJcbi8vIHNhc3MtbGludDplbmFibGUgaW5kZW50YXRpb24gbm8tcXVhbGlmeWluZy1lbGVtZW50cyBzaG9ydGhhbmQtdmFsdWVzIHNpbmdsZS1saW5lLXBlci1zZWxlY3RvciBjbGFzcy1uYW1lLWZvcm1hdCBuby1pZHMgaWQtbmFtZS1mb3JtYXQgcHJvcGVydHktc29ydC1vcmRlciBuby1jb2xvci1saXRlcmFscyBoZXgtbm90YXRpb24gYnJhY2Utc3R5bGUgemVyby11bml0IHNwYWNlLWFmdGVyLWNvbG9uIGVtcHR5LWxpbmUtYmV0d2Vlbi1ibG9ja3NcclxuIiwiLyoqXHJcbiAqIENvbnRhaW5lclxyXG4gKiBcclxuICogQ2VudGVyIGFsaWducyBlbGVtZW50IHdpdGggZ2l2ZW4gbWF4aW11bSB3aWR0aCwgcGFkZGluZywgYW5kIG1hcmdpbnMgdG9wIGFuZCBib3R0b20uXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gJGdhcCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbiAqIEBleGFtcGxlIEBpbmNsdWRlIGNvbnRhaW5lcigxMDI0cHgsIDIwcHgpO1xyXG4gKi9cclxuXHJcbkBtaXhpbiBjb250YWluZXIoJHdpZHRoOiAkZ3JpZC13aWR0aCwgJGdhcDogJGdyaWQtZ2FwKSB7XHJcblx0QGlmICh0eXBlLW9mKCR3aWR0aCkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRnYXApID09IG51bWJlcikge1xyXG5cdFx0QGlmICgkZ2FwICE9IDApIHtcclxuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKCN7JHdpZHRofSArICN7KCRnYXAgKiAyKX0pO1xyXG5cdFx0XHRwYWRkaW5nOiAwICRnYXA7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0bWF4LXdpZHRoOiAkd2lkdGg7XHJcblx0XHR9XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGVycm9yICdBcmd1bWVudHMgYCR3aWR0aGAgYW5kIGAkZ2FwYCBzaG91bGQgYmUgYSBudW1iZXInO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZWN0aW9uXHJcbiAqXHJcbiAqIEFkZCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIHRvIGVsZW1lbnQgdXNpbmcgcGFkZGluZ3MuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkdG9wIC0gUGl4ZWwgdW5pdCB2YWx1ZS5cclxuICogQHBhcmFtIHtTdHJpbmd9ICRib3R0b20gLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAZXhhbXBsZSBAaW5jbHVkZSBzZWN0aW9uKDEwMHB4LCAxMDBweCk7XHJcbiAqLyBcclxuXHJcbkBtaXhpbiBzZWN0aW9uKCR0b3A6IDAsICRib3R0b206IDApIHtcclxuXHRAaWYgKHR5cGUtb2YoJHRvcCkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRib3R0b20pID09IG51bWJlcikge1xyXG5cdFx0cGFkZGluZzogJHRvcCAwICRib3R0b207XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAZXJyb3IgJ0FyZ3VtZW50cyBgJHRvcGAgYW5kIGBib3R0b21gIHNob3VsZCBiZSBhIG51bWJlcic7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvbnQuXHJcbiAqXHJcbiAqIEFkZHMgYHJlbWAgdW5pdCBiYXNlZCBmb250IHNpemUgcHJvcGVydHksIGEgZmFsbGJhY2sgYHB4YCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYW5kIGEgYGVtYCB1bml0IGJhc2VkIGxpbmUgaGVpZ2h0IHByb3BlcnR5IHRvIGFueSBydWxlLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gJGZvbnQtc2l6ZSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkbGluZS1oZWlnaHQgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAZXhhbXBsZSBAaW5jbHVkZSBmb250LXNpemUoMTZweCwgMjRweCk7XHJcbiAqL1xyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XHJcblx0QGlmICh0eXBlLW9mKCRmb250LXNpemUpID09IG51bWJlciBhbmQgdW5pdCgkZm9udC1zaXplKSA9PSAncHgnKSB7XHJcblx0XHRmb250LXNpemU6ICRmb250LXNpemU7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGVycm9yICdWYWx1ZSBmb3IgYCN7JGZvbnQtc2l6ZX1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcblx0fVxyXG5cdEBpZiAodHlwZS1vZigkbGluZS1oZWlnaHQpID09IG51bWJlciBhbmQgdW5pdCgkbGluZS1oZWlnaHQpID09ICdweCcpIHtcclxuXHRcdGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodCAvICRmb250LXNpemUpICogMWVtKTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEBlcnJvciAnVmFsdWUgZm9yIGAjeyRsaW5lLWhlaWdodH1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQuXHJcbiAqXHJcbiAqIFNob3J0aGFuZCBmb3IgdGhlIGZvbnQgbWl4aW4sIHJ1bnMgdGhlIGZvbnQgbWl4aW4gYmFzZWQgb24gYSBjb21tb24gZGVtZWFub3VyIGV4aXN0aW5nIGJvdGggaW4gdGhlIGAkZm9udC1zaXplYCBhbmQgdGhlIGAkbGluZS1oZWlnaHRgIG1hcHMuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFsdWUgLSBTdHJpbmdcclxuICogQGV4YW1wbGUgQGluY2x1ZGUgdGV4dCgncCcpO1xyXG4gKi8gXHJcblxyXG5AbWl4aW4gdGV4dCgkdmFsdWUpIHtcclxuXHRAaWYgKHR5cGUtb2YoJHZhbHVlKSA9PSBzdHJpbmcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQobWFwLWdldCgkZm9udC1zaXplLCAkdmFsdWUpLCBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJHZhbHVlKSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAZXJyb3IgJ1ZhbHVlIHNob3VsZCBiZSBhIHN0cmluZyc7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvbnQgQXdlc29tZS5cclxuICpcclxuICogQWRkIEZvbnQgQXdlc29tZSBpY29ucyBhcyBwc3VlZG8gZWxlbWVudHMgYnkgdXNpbmcgdGhlaXIgdW5pY29kZS5cclxuICogQHBhcmFtIHtTdHJpbmd9ICRjb250ZW50IC0gVW5pY29kZSBzdHJpbmcuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkZmFtaWx5IC0gRm9udCBBd2Vzb21lIGZvbnQgZmFtaWx5IHN0cmluZy5cclxuICogQGV4YW1wbGUgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YxMDAnLCAnTGlnaHQnKTtcclxuICovXHJcblxyXG5AbWl4aW4gZm9udGF3ZXNvbWUoJGNvbnRlbnQsICRmYW1pbHkpIHtcclxuXHRAaWYgKHR5cGUtb2YoJGZhbWlseSkgPT0gc3RyaW5nKSB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0Zm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSAjeyRmYW1pbHl9JztcclxuXHRcdGNvbnRlbnQ6IHVuaWNvZGUoJGNvbnRlbnQpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGVycm9yICdBcmd1bWVudCBgJGZhbWlseWAgc2hvdWxkIGJlIGEgc3RyaW5nJztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWVkaWEuXHJcbiAqXHJcbiAqIE1lZGlhIHF1ZXJpZXMgYWNjb3JkaW5nIHRvIFwiVGhlIDEwMCUgQ29ycmVjdCBXYXkgVG8gRG8gQ1NTIEJyZWFrcG9pbnRzXCIgKGh0dHBzOi8vbWVkaXVtLmZyZWVjb2RlY2FtcC5jb20vdGhlLTEwMC1jb3JyZWN0LXdheS10by1kby1jc3MtYnJlYWtwb2ludHMtODhkNmE1YmExODYyKS5cclxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gQnJlYWtwb2ludCBwaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAZXhhbXBsZSBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7fVxyXG4gKi8gXHJcbiBcclxuQG1peGluIG1lZGlhKCRzaXplKSB7XHJcblx0QGlmICgkc2l6ZSA9PSAnZGVza3RvcCcpIHtcclxuXHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogOTAwcHgpIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogOTAwcHgpIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSB7XHJcblx0XHRcdEBjb250ZW50O1xyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIGFuZChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcblx0XHRcdEBjb250ZW50O1xyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWF4LXdpZHRoOiA4OTlweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0Jykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSBhbmQobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAoJHNpemUgPT0gJ3Bob25lJykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDU5OXB4KSB7XHJcblx0XHRcdEBjb250ZW50O1xyXG5cdFx0fVxyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGFuZCBwYWRkaW5nIGZyb20gZXZlcnkgc2VsZWN0b3IgaW5jbHVkaW5nIHRoZWlyXHJcbiAqIHBzdWVkbyBzZWxlY3RvcnMuXHJcbiAqXHJcbiAqIDEuIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3ggc2l6aW5nLlxyXG4gKlx0XHQoY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlKS5cclxuICovXHJcblxyXG4qLFxyXG4qOjpiZWZvcmUsXHJcbio6OmFmdGVyIHtcclxuXHRtYXJnaW46IDA7XHJcblx0cGFkZGluZzogMDtcclxuXHRib3gtc2l6aW5nOiBpbmhlcml0OyAvKiAxICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudCB0byBtYXhpdW0gdmlld3BvcnQgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBTZXQgcm9vdCBmb250IHNpemUgdG8gMTAuXHJcbiAqL1xyXG5cclxuaHRtbCB7XHJcblx0aGVpZ2h0OiAxMDB2aDtcclxuXHRmb250LXNpemU6IDYyLjUlOyAvKiAxICovXHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcblx0QGluY2x1ZGUgdGV4dCgkYm9keS10ZXh0KTtcclxuXHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1xyXG5cdGNvbG9yOiAkYm9keS1jb2xvcjtcclxuXHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcblx0Zm9udC13ZWlnaHQ6IDMwMDtcclxuXHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8qIDEgKi9cclxuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLyogMiAqL1xyXG59XHJcbiIsIi8qKlxyXG4gKiBDdXN0b20gdXNlciBhZ2VudCByZXNldHMgYW5kIG92ZXJyaWRlcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpblxyXG4gKiBOb3JtYWxpemUgOC4wLjAuIFRoaXMgbW9zdGx5IHJlbW92ZXMgc29tZSBhbm5veWluZyBtYXJnaW4gYW5kIHBhZGRpbmdcclxuICogZGVmYXVsdHMsIGJvcmRlciByYWRpdXMsIGFuZCBvdXRsaW5lcy5cclxuICovXHJcblxyXG5hIHtcclxuXHRjb2xvcjogaW5oZXJpdDtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gQ2hyb21lIDYyLjArIG9uIG1hY09TLlxyXG4gKi9cclxuXHJcbmJ1dHRvbiB7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGJvcmRlci1yYWRpdXM6IDA7IC8qIDEgKi9cclxuXHRvdXRsaW5lOiBub25lO1xyXG5cdGJhY2tncm91bmQ6IG5vbmU7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0Ym9yZGVyOiAwO1xyXG59XHJcblxyXG5maWd1cmUge1xyXG5cdG1hcmdpbjogMDtcclxufVxyXG5cclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNiB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0Zm9udC1zaXplOiBpbmhlcml0O1xyXG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xyXG59XHJcblxyXG5ociB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIHdoaXRlIHNwYWNlLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogYXV0bztcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAxICovXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIGluaGVyaXRlZCB1c2VyIGFnZW50IGFwcGVhcmFuY2UuXHJcbiAqL1xyXG5cclxuaW5wdXQsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHRib3JkZXI6IDA7XHJcblx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHRvdXRsaW5lOiBub25lO1xyXG5cdGFwcGVhcmFuY2U6IG5vbmU7IC8qIDEgKi9cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBPbmx5IGFsbG93IHZlcnRpY2FsIHJlc2l6aW5nIHRvIHByZXZlbnQgdGhlIHRleHRhcmVhXHJcbiAqXHRcdGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lci5cclxuICovXHJcblxyXG50ZXh0YXJlYSB7XHJcblx0cmVzaXplOiB2ZXJ0aWNhbDtcclxufVxyXG5cclxudWwsXHJcbm9sIHtcclxuXHRtYXJnaW46IDA7XHJcblx0cGFkZGluZzogMDtcclxuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbn1cclxuXHJcbnAge1xyXG5cdG1hcmdpbjogMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBDb2xsYXBzZSBib3JkZXJzIHRvIHByZXZlbnQgZG91YmxlIHNpZGVkIGJvcmRlcnMuXHJcbiAqL1xyXG5cclxudGFibGUge1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvKiAxICovXHJcbn1cclxuXHJcbnN0cm9uZyB7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG4iLCIvKipcclxuICogQnV0dG9uLlxyXG4gKi9cclxuXHJcbiVidXR0b24sXHJcbi5idXR0b24ge1xyXG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWZhbWlseSwgJ2hlYWRpbmcnKTtcclxuXHRmb250LXdlaWdodDogMzAwO1xyXG5cclxuXHRzdmcge1xyXG5cdFx0d2lkdGg6IDIxcHg7XHJcblx0XHRoZWlnaHQ6IDIwcHg7XHJcblx0fVxyXG5cclxuXHQmLmhhcy1zdmctcmlnaHQge1xyXG5cdFx0c3ZnIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmhhcy1zdmctbGVmdCB7XHJcblx0XHRzdmcge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJ1dHRvbiAoZGVmYXVsdCkuXHJcbiAqL1xyXG5cclxuJWJ1dHRvbi0tZGVmYXVsdCxcclxuLmJ1dHRvbi0tZGVmYXVsdCB7XHJcblx0QGluY2x1ZGUgZm9udCgxNnB4LCAxOHB4KTtcclxuXHRoZWlnaHQ6IDQwcHg7XHJcblx0cGFkZGluZzogOHB4IDMwcHg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTEwMDtcclxuXHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRib3JkZXItcmFkaXVzOiAzMnB4O1xyXG5cdGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0Ym9yZGVyOiAycHggc29saWQgJHdoaXRlLTEwMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQnV0dG9uIChkZWZhdWx0KS5cclxuICovXHJcblxyXG4lYnV0dG9uLS1ibGFjayxcclxuLmJ1dHRvbi0tYmxhY2sge1xyXG5cdEBpbmNsdWRlIGZvbnQoMTZweCwgMThweCk7XHJcblx0aGVpZ2h0OiA0MHB4O1xyXG5cdHBhZGRpbmc6IDhweCAzMHB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRibGFjay0xMDA7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0Ym9yZGVyLXJhZGl1czogMzJweDtcclxuXHRmb250LXdlaWdodDogNjAwO1xyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdGJvcmRlcjogMnB4IHNvbGlkICRibGFjay0xMDA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJ1dHRvbiAoYm9yZGVyKS5cclxuICovXHJcblxyXG4lYnV0dG9uLS1ib3JkZXIsXHJcbi5idXR0b24tLWJvcmRlciB7XHJcblx0QGluY2x1ZGUgZm9udCgxNnB4LCAxOHB4KTtcclxuXHRwYWRkaW5nOiAxMnB4IDMwcHggMTFweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRoZWlnaHQ6IDM3cHg7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0Ym9yZGVyOiAycHggc29saWQgJHdoaXRlLTEwMDtcclxuXHRib3JkZXItcmFkaXVzOiAzMnB4O1xyXG5cdGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0b3BhY2l0eTogNjAlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCdXR0b24gKHRyYW5zKS5cclxuICovXHJcblxyXG4lYnV0dG9uLS10cmFucyxcclxuLmJ1dHRvbi0tdHJhbnMge1xyXG5cdEBpbmNsdWRlIGZvbnQoMTZweCwgMThweCk7XHJcblx0cGFkZGluZzogMTNweCAzMHB4IDExcHg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0aGVpZ2h0OiAzN3B4O1xyXG5cdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdGJvcmRlcjogMnB4IHNvbGlkICR3aGl0ZS0xMDA7XHJcblx0Ym9yZGVyLXJhZGl1czogMzJweDtcclxuXHRmb250LXdlaWdodDogNjAwO1xyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQnV0dG9uIChkZWZhdWx0KS5cclxuICovXHJcblxyXG4lYnV0dG9uLS1tZW51LFxyXG4uYnV0dG9uLS1tZW51IHtcclxuXHRAaW5jbHVkZSBmb250KDE2cHgsIDE4cHgpO1xyXG5cdGhlaWdodDogNDBweDtcclxuXHRwYWRkaW5nOiA4cHggMzBweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRib3JkZXItcmFkaXVzOiAzMnB4O1xyXG5cdGJvcmRlcjogMnB4IHNvbGlkICRibGFjay0xMDA7XHJcblx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcblx0Jjpob3ZlciB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRcdG9wYWNpdHk6IDEwMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdG9wYWNpdHk6IDYwJTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQnV0dG9uIChsaW5rKS5cclxuICovXHJcblxyXG4lYnV0dG9uLS1saW5rLFxyXG4uYnV0dG9uLS1saW5rIHtcclxuXHRAaW5jbHVkZSBmb250KDE2cHgsIDE4cHgpO1xyXG5cdGhlaWdodDogNTBweDtcclxuXHRwYWRkaW5nOiAxNXB4IDQ1cHg7XHJcblx0Y29sb3I6ICRibGFjay0xMDA7XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogVGhlIGNvbnRhaW5lciBvYmplY3QgY2VudGVycyBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudC5cclxuICovXHJcblxyXG4uY29udGFpbmVyIHtcclxuXHRAaW5jbHVkZSBjb250YWluZXI7XHJcbn1cclxuIiwiLyoqXHJcbiAqIFRoZSBjb250ZW50IGNvbnN0cmFpbnQgaXMgYSBjb25zdHJhaW50IGZvciBhbGwgdGhlIGNvbnRlbnQgd2l0aGluXHJcbiAqIHRoZSBkb2N1bWVudC4gSXQgY2FuIGJlIG1hbmlwdWxhdGVkIGJ5IENTUyBvciBKYXZhU2NyaXB0IHdpdGhvdXRcclxuICogaW5mbHVlbmNpbmcgdGhlIGJvZHkuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtY29uc3RyYWludCB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuIiwiLyoqXHJcbiAqIEV4YW1wbGUgb2YgYSBmbGV4IGJhc2VkIGNvbHVtbiBncmlkIGxheW91dCBpbiBwcmFjdGljZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gKlx0IDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqXHQgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cclxuICogPC9kaXY+XHJcbiAqXHJcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxyXG4gKiBvZiB0aGUgcm93IG9uIGFsbCBtZWRpYSwgYnV0IHdpbGwgY29udmVydCB0byBhIGZ1bGwgd2lkdGggY29sdW1uIG9uIHRoZVxyXG4gKiBzbWFsbCBgLXNtYCBicmVha3BvaW50IGFsaWFzLCB3aGljaCBpcyBtb2JpbGUgb25seS4gUmVmZXIgdG9cclxuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEZsZXggb2JqZWN0LlxyXG4gKlxyXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cclxuICovXHJcblxyXG4uZmxleCB7XHJcblx0ZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLmZsZXgtd3JhcCB7XHJcblx0ZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZsZXggb2JqZWN0IHdpdGggYSBjb2x1bW4gYmFzZWQgbGF5b3V0IHN5c3RlbS5cclxuICovXHJcblxyXG4ucm93IHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXg6IDAgMSBhdXRvO1xyXG5cdGZsZXgtZmxvdzogcm93IHdyYXA7XHJcblx0bWFyZ2luOiAwIC0jeygkZ3JpZC1nYXAvMil9O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJveCwgdGhlIGluc2lkZSBvZiBhIGNvbHVtbi5cclxuICovXHJcblxyXG4uYm94IHtcclxuXHRmbGV4OiAxO1xyXG59XHJcblxyXG5cclxuLy8gTG9vcCB0aHJvdWdoIGFsbCB0aGUga2V5cyBpbiB0aGUgYCRicmVha3BvaW50c2AgdmFyaWFibGUgbWFwIGRlZmluZWQgaW5cclxuLy8gYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYC5cclxuQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmVha3BvaW50cyB7XHJcblxyXG5cdC8vIENyZWF0ZSBhIG1lZGlhIHF1ZXJ5IGZvciBldmVyeSBrZXkgaW4gYCRicmVha3BvaW50c2AuXHJcblx0QGluY2x1ZGUgbWVkaWEoJHZhbHVlKSB7XHJcblxyXG5cdFx0Ly8gSXRlcmF0ZSBmcm9tIDEgdGhyb3VnaCB0aGUgYW1vdW50IG9mIGdyaWQgY29sdW1ucyBkZWZpbmVkIGJ5XHJcblx0XHQvLyBgJGdyaWQtY29sdW1uc2AgaW4gYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYC5cclxuXHRcdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XHJcblxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICogQ29sdW1uICN7JGl9IGZvciB0aGUgYCN7JGtleX1gIGJyZWFrcG9pbnQuXHJcblx0XHRcdCAqL1xyXG5cclxuXHRcdFx0LmNvbC0jeyRrZXl9LSN7JGl9IHtcclxuXHRcdFx0XHRmbGV4OiAwIDEgYXV0bztcclxuXHRcdFx0XHR3aWR0aDogY29sdW1uKCRpKTtcclxuXHRcdFx0XHRwYWRkaW5nOiAwICgkZ3JpZC1nYXAvMik7XHJcblx0XHRcdH1cclxuXHJcblxyXG5cdFx0XHQvLyBPdXRwdXQgYW4gb2Zmc2V0IHV0aWxpdHkgY2xhc3MgaWYgdGhlIGl0ZXJhdG9yIGlzIGxlc3MgdGhhbiB0aGUgYW1vdW50XHJcblx0XHRcdC8vIG9mIGdyaWQgY29sdW1ucyBkZWZpbmVkIGJ5IGAkZ3JpZC1jb2x1bW5zYCBpblxyXG5cdFx0XHQvLyBgc2V0dGluZ3MvX2RlZmluaXRpb25zLnNjc3NgLlxyXG5cdFx0XHRAaWYgKCRpIDwgJGdyaWQtY29sdW1ucykge1xyXG5cclxuXHRcdFx0XHQvKipcclxuXHRcdFx0XHQgKiBPZmZzZXQgI3skaX0gZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuXHRcdFx0XHQgKi9cclxuXHJcblx0XHRcdFx0Lm9mZnNldC0jeyRrZXl9LSN7JGl9IHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiBjb2x1bW4oJGkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvLyBMb29wIHRocm91Z2ggYWxsIHZhbHVlcyBmb3IgdGhlIGBhbGlnbi1pdGVtc2AgcHJvcGVydHkuXHJcblx0XHRAZWFjaCAkdmFsdWUgaW4gc3RyZXRjaCwgY2VudGVyLCBmbGV4LXN0YXJ0LCBmbGV4LWVuZCwgYmFzZWxpbmUge1xyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIEFsaWduIGAjeyR2YWx1ZX1gIGZvciB0aGUgI3ska2V5fSBicmVha3BvaW50LlxyXG5cdFx0XHQgKi9cclxuXHJcblx0XHRcdC5hbGlnbi0jeyRrZXl9LSN7JHZhbHVlfSB7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6ICR2YWx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvLyBMb29wIHRocm91Z2ggYWxsIHZhbHVlcyBmb3IgdGhlIGBqdXN0aWZ5LWNvbnRlbnRgIHByb3BlcnR5LlxyXG5cdFx0QGVhY2ggJHZhbHVlIGluIHN0YXJ0LCBjZW50ZXIsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZCwgc3BhY2UtZXZlbmx5IHtcclxuXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiBKdXN0aWZ5IGAjeyR2YWx1ZX1gIGZvciB0aGUgI3ska2V5fSBicmVha3BvaW50LlxyXG5cdFx0XHQgKi9cclxuXHJcblx0XHRcdC5qdXN0aWZ5LSN7JGtleX0tI3skdmFsdWV9IHtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvLyBMb29wIHRocm91Z2ggZXZlcnkgZGlyZWN0aW9uIGZyb20gbGVmdCB0byByaWdodC5cclxuXHRcdEBlYWNoICRkaXJlY3Rpb24gaW4gbGVmdCwgcmlnaHQge1xyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIEJsZWVkICN7JGRpcmVjdGlvbn0gZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcblx0XHRcdCAqL1xyXG5cclxuXHRcdFx0LmJsZWVkLSN7JGtleX0tI3skZGlyZWN0aW9ufSB7XHJcblx0XHRcdFx0cGFkZGluZy0jeyRkaXJlY3Rpb259OiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuXHRcdCAqL1xyXG5cclxuXHRcdC5maXJzdC0jeyRrZXl9IHtcclxuXHRcdFx0b3JkZXI6IC0xO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuXHRcdCAqL1xyXG5cclxuXHRcdC5sYXN0LSN7JGtleX0ge1xyXG5cdFx0XHRvcmRlcjogMTtcclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYCN7JGtleX1gIGJyZWFrcG9pbnQuXHJcblx0XHQgKi9cclxuXHJcblx0XHQucmV2ZXJzZS0jeyRrZXl9IHtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogRGVmYXVsdCBmaWVsZHMuXHJcbiAqL1xyXG5cclxubGFiZWwge1xyXG5cdEBpbmNsdWRlIGZvbnQoMTZweCwgMzBweCk7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuJWlucHV0LFxyXG5zZWxlY3QsXHJcbmlucHV0LFxyXG50ZXh0YXJlYSB7XHJcblx0QGluY2x1ZGUgZm9udCgxNnB4LCAzMHB4KTtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDQycHg7XHJcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xyXG5cdHBhZGRpbmc6IDExcHggMTVweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdGNvbG9yOiAkYmxhY2stNTBcclxufVxyXG5cclxudGV4dGFyZWEge1xyXG5cdGhlaWdodDogOGVtO1xyXG5cdHBhZGRpbmctdG9wOiAxNXB4O1xyXG59XHJcblxyXG4uZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3Qge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0Y29sb3I6ICRibGFjay01MDtcclxuXHRib3JkZXItcmFkaXVzOiA4cHg7XHJcblxyXG5cdHN2ZyB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDE0cHg7XHJcblx0XHRyaWdodDogMjBweDtcclxuXHRcdHdpZHRoOiA5cHg7XHJcblx0XHRoZWlnaHQ6IDEzcHg7XHJcblx0XHR6LWluZGV4OiAxO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0IHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHdpZHRoOiBjYWxjKDEwMCUgKyA1MHB4KTtcclxuXHRcdG1heC13aWR0aDogbm9uZTtcclxuXHRcdG1hcmdpbjogLTJweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cdFx0ei1pbmRleDogMjtcclxuXHR9XHJcbn1cclxuXHJcbi5nZmllbGRfY2hlY2tib3gge1xyXG5cdGxpIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblxyXG5cdFx0aW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XHJcblx0XHRcdG1hcmdpbi10b3A6IDZweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5nZmllbGRfcmFkaW8ge1xyXG5cdGxpIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0bGFiZWw6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHRcdFx0d2lkdGg6IDEycHg7XHJcblx0XHRcdGhlaWdodDogMTJweDtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiA4cHg7XHJcblx0XHRcdGxlZnQ6IDRweDtcclxuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibGFjay0xMDA7XHJcblx0XHR9XHJcblxyXG5cdFx0aW5wdXQ6Y2hlY2tlZCtsYWJlbDpiZWZvcmUge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuaW5wdXRbdHlwZT0ncmFkaW8nXSxcclxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XHJcblx0bWFyZ2luLXRvcDogNHB4O1xyXG5cdGJvcmRlcjogMnB4IHNvbGlkICRibGFjay0xMDA7XHJcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkK2xpOjpiZWZvcmUge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRibGFjay0xMDA7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XHJcblx0d2lkdGg6IDE1cHg7XHJcblx0aGVpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdyYWRpbyddIHtcclxuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xyXG5cdHdpZHRoOiAyMHB4O1xyXG5cdGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHcmF2aXR5IEZvcm1zLlxyXG4gKi9cclxuXHJcbi5nZmllbGQge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdG1hcmdpbi1ib3R0b206IDQ4cHg7XHJcbn1cclxuXHJcbi5nZm9ybV9maWVsZHMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdG1hcmdpbjogMDtcclxuXHR9XHJcblxyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdG1hcmdpbjogLTE1cHhcclxufVxyXG5cclxuLmdmb3JtX2Zvb3RlciB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1hcmdpbi1ib3R0b206IDcwcHg7XHJcbn1cclxuXHJcbi5nZmllbGRfaHRtbCB7XHJcblx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxufVxyXG5cclxuLmdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uaGlkZGVuX2xhYmVsID4gbGFiZWwge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi52YWxpZGF0aW9uX21lc3NhZ2Uge1xyXG5cdEBpbmNsdWRlIGZvbnQoMTRweCwgMjBweCk7XHJcblx0bWFyZ2luOiAxMHB4O1xyXG5cdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5nZm9ybV9idXR0b24ge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRyaWdodDogMDtcclxuXHRtYXJnaW4tdG9wOiAxNXB4O1xyXG5cdHBhZGRpbmc6IDJweCAzMHB4IDExcHg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0aGVpZ2h0OiAzN3B4O1xyXG5cdHdpZHRoOiBmaXQtY29udGVudDtcclxuXHRjb2xvcjogJHdoaXRlLTEwMDtcclxuXHRib3JkZXI6IDJweCBzb2xpZCAkd2hpdGUtMTAwO1xyXG5cdGJvcmRlci1yYWRpdXM6IDMycHg7XHJcblx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcblx0Jjpob3ZlciB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0Y29sb3I6ICRibGFjay0xMDA7XHJcblx0fVxyXG59XHJcblxyXG4ldmFsaWRhdGlvbl9lcnJvcixcclxuLnZhbGlkYXRpb25fZXJyb3Ige1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHBhZGRpbmc6IDIwcHg7XHJcblx0fVxyXG5cclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0bWFyZ2luOiAwIDAgNTBweDtcclxuXHRwYWRkaW5nOiAyNXB4IDI1cHggMjVweCA3NXB4O1xyXG5cdGJhY2tncm91bmQ6ICR3aGl0ZS0xMDA7XHJcblx0Y29sb3I6ICRibGFjay0xMDA7XHJcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xyXG5cclxuXHQ+IHN2ZyB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IGNhbGMoNTAlIC0gMTVweCk7XHJcblx0XHRsZWZ0OiAzMHB4O1xyXG5cdFx0d2lkdGg6IDMxcHg7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHR9XHJcblxyXG5cdC5jbG9zZS1idXR0b24ge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0cmlnaHQ6IDVweDtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHJcblx0XHRzdmcge1xyXG5cdFx0XHR3aWR0aDogMTZweDtcclxuXHRcdFx0aGVpZ2h0OiAxNnB4O1xyXG5cdFx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0cGFkZGluZzogNTBweDtcclxuXHRiYWNrZ3JvdW5kOiAkd2hpdGUtMTAwXHJcblxyXG5cdGJyIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cclxuXHRoNCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG5cdFx0c3ZnIHtcclxuXHRcdFx0d2lkdGg6IDI4cHg7XHJcblx0XHRcdGhlaWdodDogMjhweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAyMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0XHRwYWRkaW5nOiA1cHg7XHJcblx0XHRcdGNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogSGVhZGluZy5cclxuICovXHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuJWhlYWRpbmcsXHJcbi5oZWFkaW5nIHtcclxuXHRmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICdoZWFkaW5nJyk7XHJcblx0Y29sb3I6ICRibGFjay0xMDA7XHJcblxyXG5cdCYuaXMtd2hpdGUge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogSGVhZGluZyAxLlxyXG4gKi9cclxuXHJcbmgxLFxyXG4uaGVhZGluZy0xIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG5cdFx0QGluY2x1ZGUgZm9udCgzOHB4LCA1MnB4KTtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoODRweCwgODhweCk7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEhlYWRpbmcgMi5cclxuICovXHJcblxyXG5oMixcclxuJWhlYWRpbmctMixcclxuLmhlYWRpbmctMiB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoMzZweCwgNDZweCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBmb250KDcycHgsIDc4cHgpO1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIZWFkaW5nIDMuXHJcbiAqL1xyXG5cclxuaDMsXHJcbiVoZWFkaW5nLTMsXHJcbi5oZWFkaW5nLTMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDI0cHgsIDM0cHgpO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoNDhweCwgNThweCk7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFN1YmhlYWRpbmcuXHJcbiAqL1xyXG5cclxuJXN1YmhlYWRpbmcsXHJcbi5zdWJoZWFkaW5nIHtcclxuXHRAaW5jbHVkZSBmb250KDE4cHgsIDIwcHgpO1xyXG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogLTVweDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxcHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0fVxyXG5cclxuXHQmLmlzLXdoaXRlIHtcclxuXHRcdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIubGluayB7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcblxyXG5cdCYuaGFzLXN2Zy1yaWdodCB7XHJcblx0XHRzdmcge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuaGFzLXN2Zy1sZWZ0IHtcclxuXHRcdHN2ZyB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN2ZyB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR0b3A6IDNweDtcclxuXHRcdHdpZHRoOiAxNHB4O1xyXG5cdFx0aGVpZ2h0OiAxN3B4O1xyXG5cdFx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcblx0XHRjb2xvcjogJHdoaXRlLTEwMDtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblxyXG5cdFx0c3ZnIHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIucGFnaW5hdGlvbiB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0cGFkZGluZzogNzVweCAwO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRwYWRkaW5nOiAxMDBweCAwO1xyXG5cclxuXHQucGFnZS1udW1iZXJzIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoMThweCwgMzZweCk7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdFx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcblx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XHJcblxyXG5cdFx0Ji5jdXJyZW50IHtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdH1cclxuXHJcblx0XHQmLnByZXYsXHJcblx0XHQmLm5leHQge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcblxyXG5cdFx0XHRzdmcge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDE1cHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdFx0XHRcdGNvbG9yOiAkYmxhY2stNTA7XHJcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdHN2ZyB7XHJcblx0XHRcdFx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLm5leHQge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdyYXBwZXIgKGRlZmF1bHQpXHJcbiAqL1xyXG5cclxuLndyYXBwZXIge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcigxMjQwcHgsIDYwcHgpO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKDEyNDBweCwgMjBweCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBjb250YWluZXIoMTI0MHB4LCA1MHB4KTtcclxufVxyXG5cclxuLndyYXBwZXItLWhlYWRlciB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKDEwNDBweCwgNjBweCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRAaW5jbHVkZSBjb250YWluZXIoMTA0MHB4LCAyMHB4KTtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGNvbnRhaW5lcigxMDQwcHgsIDUwcHgpO1xyXG59XHJcblxyXG4ud3JhcHBlci0tY29udGVudC1oZWFkZXIge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcig2MDBweCwgNjBweCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRAaW5jbHVkZSBjb250YWluZXIoNjAwcHgsIDIwcHgpO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgY29udGFpbmVyKDYwMHB4LCA1MHB4KTtcclxufVxyXG5cclxuLndyYXBwZXItLWZvcm0ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcig4MjBweCwgNjBweCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRAaW5jbHVkZSBjb250YWluZXIoODIwcHgsIDIwcHgpO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgY29udGFpbmVyKDgyMHB4LCA1MHB4KTtcclxufVxyXG4iLCIuY29udGFjdC1saW5rcyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRhY3QtbGlua3NfX2l0ZW0ge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbnRhY3QtbGlua3NfX2l0ZW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgc3ZnIHtcclxuICAgIGhlaWdodDogMjVweDtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTdweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgb3BhY2l0eTogNjAlO1xyXG4gIH1cclxufSIsIi8qKlxyXG4gKiBNb2JpbGUgbWVudSBidXR0b24uXHJcbiAqL1xyXG5cclxuJHRyYW5zaXRpb24tdGltaW5nOiA0MDBtcztcclxuXHJcbi5oZWFkZXJfX21lbnUtYnV0dG9uIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6IDMwcHg7XHJcblx0XHRoZWlnaHQ6IDI1cHg7XHJcblx0XHR6LWluZGV4OiAxMDA7XHJcblxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0d2lkdGg6IDMwcHg7XHJcblx0XHRcdGhlaWdodDogNXB4O1xyXG5cdFx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblxyXG5cdFx0XHQmOm50aC1jaGlsZCgxKSB7XHJcblx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tdGltaW5nLCB0b3AgJHRyYW5zaXRpb24tdGltaW5nICR0cmFuc2l0aW9uLXRpbWluZywgdHJhbnNmb3JtICR0cmFuc2l0aW9uLXRpbWluZyAwcztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JjpudGgtY2hpbGQoMikge1xyXG5cdFx0XHRcdHRvcDogY2FsYyg1MCUgLSAycHgpO1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tdGltaW5nLCBvcGFjaXR5IDBtcyAkdHJhbnNpdGlvbi10aW1pbmc7XHJcblx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JjpudGgtY2hpbGQoMykge1xyXG5cdFx0XHRcdGJvdHRvbTogMDtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLXRpbWluZywgYm90dG9tICR0cmFuc2l0aW9uLXRpbWluZyAkdHJhbnNpdGlvbi10aW1pbmcsIHRyYW5zZm9ybSAkdHJhbnNpdGlvbi10aW1pbmcgMHM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLmlzLWFjdGl2ZSB7XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDEpIHtcclxuXHRcdFx0XHRcdHRvcDogY2FsYyg1MCUgLSAzcHgpO1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuXHRcdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tdGltaW5nLCB0b3AgJHRyYW5zaXRpb24tdGltaW5nLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tdGltaW5nICR0cmFuc2l0aW9uLXRpbWluZztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDIpIHtcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmOm50aC1jaGlsZCgzKSB7XHJcblx0XHRcdFx0XHRib3R0b206IGNhbGMoNTAlIC0gMnB4KTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tdGltaW5nLCBib3R0b20gJHRyYW5zaXRpb24tdGltaW5nLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tdGltaW5nICR0cmFuc2l0aW9uLXRpbWluZztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5oZWFkZXIge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMHB4O1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmhlYWRlcl9fd3JhcHBlciB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0d2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkZXJfX25hdmlnYXRpb24ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLmhlYWRlcl9fbG9nbyB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xyXG5cdH1cclxuXHJcblxyXG5cdHotaW5kZXg6IDEwMDtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxufVxyXG5cclxuLmhlYWRlcl9fY29udGFjdCB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbn1cclxuXHJcbi5oZWFkZXJfX21haW4tbWVudS1jb250YWluZXIge1xyXG5cdC5oZWFkZXJfX21haW4tbWVudSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHQubWVudS1pdGVtIHtcclxuXHRcdFx0bWFyZ2luOiAxNXB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTNweDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgJHdoaXRlLTEwMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogRXZlcnkgY29uY2VpdmFibGUgSFRNTCBlbGVtZW50IHdpdGhpbiBhIGAuY21zLW91dHB1dGAgd3JhcHBlci5cclxuICpcclxuICogMS4gRXhjbHVkZSBsYXN0IGNoaWxkcy5cclxuICovXHJcblxyXG4uY21zLW91dHB1dCB7XHJcblx0aDIsXHJcblx0aDMsXHJcblx0aDQge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHR9XHJcblxyXG5cdG9sLFxyXG5cdHVsIHtcclxuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMWVtO1xyXG5cclxuXHRcdGxpIHtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDQwcHg7XHJcblxyXG5cdFx0XHQ+IHN2ZyB7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDogMnB4O1xyXG5cdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDIycHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAyMnB4O1xyXG5cdFx0XHRcdGNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcclxuXHJcblx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b2wge1xyXG5cdFx0bGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XHJcblxyXG5cdFx0bGkge1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzdHJvbmcge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHR9XHJcblxyXG5cdGJ1dHRvbiB7XHJcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cdH1cclxuXHJcblx0YmxvY2txdW90ZSB7XHJcblx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XHJcblx0XHRtYXJnaW46IDUwcHggYXV0bztcclxuXHRcdGNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdFx0cGFkZGluZzogMjBweCA2NXB4O1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDhweCBzb2xpZCAkYmxhY2stMTAwO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMTIwcHgsIDIwcHgpO1xyXG5cdFx0XHRjb250ZW50OiBcIuKAnFwiO1xyXG5cdFx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OiAxMHB4O1xyXG5cdFx0XHR0b3A6IDM2cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRAaW5jbHVkZSBmb250KDEyMHB4LCAyMHB4KTtcclxuXHRcdFx0Y29udGVudDogXCLigJ1cIjtcclxuXHRcdFx0Y29sb3I6ICRibGFjay0xMDA7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0cmlnaHQ6IDEwcHg7XHJcblx0XHRcdGJvdHRvbTogLTI3cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaW1nLXdyYXAge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luLXRvcDogNTBweDtcclxuXHJcblx0XHRpbWcge1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdHotaW5kZXg6IDMwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YSB7XHJcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0Y29sb3I6ICRyZWQtMTAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIubmF2aWdhdGlvbi1tb2JpbGUge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHR0b3A6IDEwMHZoO1xyXG5cdHJpZ2h0OiAwO1xyXG5cdGJvdHRvbTogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG5cdGJhY2tncm91bmQ6ICRibGFjay0xMDA7XHJcblx0b3BhY2l0eTogMDtcclxuXHR6LWluZGV4OiA5OTtcclxuXHRvdmVyZmxvdy14OiBoaWRkZW47XHJcblxyXG5cdCYuaXMtYWN0aXZlIHtcclxuXHRcdHRvcDogMDtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG5cclxuXHQmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHJcblx0LndyYXBwZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiA1MCU7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAtNTAlKTtcclxuXHRcdHdpZHRoOiA5MHB4O1xyXG5cdFx0aGVpZ2h0OiA0MTBweDtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0ei1pbmRleDogMTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWFpbiBtZW51LlxyXG4gKi9cclxuXHJcbi5uYXZpZ2F0aW9uLW1vYmlsZV9fbWFpbiB7XHJcblx0PiBsaSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0Ji5jdXJyZW50X3BhZ2VfYW5jZXN0b3IsXHJcblx0XHQmLmN1cnJlbnQtbWVudS1pdGVtIHtcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0XHRzdmcge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdD4gYSB7XHJcblx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdD4gYSB7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMjBweCwgMjJweCk7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0Zm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAnaGVhZGluZycpO1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XHJcblx0XHRcdG1hcmdpbjogMTVweDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDIwcHggMCA1cHg7XHJcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRzdmcge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDExcHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAxNnB4O1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA1cHg7XHJcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuc3VibWVudS1jb250YWluZXIge1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdG1hcmdpbjogMzVweCAtMTBweCAwIDEwcHg7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibGFjay0xMDA7XHJcblxyXG5cdFx0XHRsaSB7XHJcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG5cclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMTRweCwgMjBweCk7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICdoZWFkaW5nJyk7XHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblxyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0Ym90dG9tOiAtMTBweDtcclxuXHRcdFx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0XHRcdGhlaWdodDogNnB4O1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xyXG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gc2Fzcy1saW50OmRpc2FibGUgY2xhc3MtbmFtZS1mb3JtYXRcclxuXHRcdFx0XHQmLmN1cnJlbnRfcGFnZV9hbmNlc3RvcixcclxuXHRcdFx0XHQmLmN1cnJlbnQtbWVudS1pdGVtIHtcclxuXHRcdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8gc2Fzcy1saW50OmVuYWJsZSBjbGFzcy1uYW1lLWZvcm1hdFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogRGlzYWJsZSBzY3JvbGwuXHJcbiAqL1xyXG5cclxuYm9keS5pcy1hY3RpdmUge1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdC5oZWFkZXI6OmJlZm9yZSB7XHJcblx0XHRib3R0b206IDA7XHJcblx0fVxyXG59XHJcbiIsIi5jb250ZW50LWN0YSB7XHJcblx0cGFkZGluZzogMTAwcHggMDtcclxuXHRtaW4taGVpZ2h0OiA0MDBweDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHQmLmlzLWhvbWUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudC1jdGFfX2JhY2tncm91bmQge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHR6LWluZGV4OiAtMTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdGltZyB7XHJcblx0XHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHRcdHdpZHRoOiAxMDAlXHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudC1jdGFfX3RpdGxlIHtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmNvbnRlbnQtY3RhX190ZWFzZXIge1xyXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uY29udGVudC1jdGFfX2xpbmsge1xyXG5cdHdpZHRoOiBmaXQtY29udGVudDtcclxuXHRtYXJnaW46IGF1dG87XHJcbn1cclxuIiwiLmNvbnRlbnQtZm9ybSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0cGFkZGluZzogNTBweCAwO1xyXG5cdH1cclxuXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHBhZGRpbmc6IDEwMHB4IDA7XHJcblx0bWFyZ2luLXRvcDogMTAwcHg7XHJcbn1cclxuXHJcbi5jb250ZW50LWZvcm1fX2JhY2tncm91bmQge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHR6LWluZGV4OiAtMTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdGltZyB7XHJcblx0XHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHRcdHdpZHRoOiAxMDAlXHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudC1mb3JtX19yaWdodCxcclxuLmNvbnRlbnQtZm9ybV9fbGVmdCB7IFxyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdH1cclxuXHJcblx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XHJcblx0bWFyZ2luOiAxNXB4IDE1cHggMDsgXHJcbn1cclxuXHJcbi5jb250ZW50LWZvcm1fX3RpdGxlIHtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLmNvbnRlbnQtZm9ybV9fdGVhc2VyIHtcclxuXHRjb2xvcjogJHdoaXRlLTEwMDtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0bWF4LXdpZHRoOiA0MDBweDtcclxuXHRtYXJnaW46IDAgYXV0byA1MHB4O1xyXG5cdGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuIiwiLmNvbnRlbnQtZGVmYXVsdF9fdGl0bGUge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0fVxyXG5cclxuXHRtYXJnaW4tYm90dG9tOiAxMDBweDtcclxufVxyXG5cclxuLmNvbnRlbnQtZGVmYXVsdF9fc3VidGl0bGUge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblx0XHJcblx0QGluY2x1ZGUgZm9udCgxOHB4LCAyMHB4KTtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG5cdG1hcmdpbi1yaWdodDogMTMwcHg7XHJcbn1cclxuXHJcbi5jb250ZW50LWRlZmF1bHRfX2NvbnRhY3Qge1xyXG5cdG1hcmdpbi10b3A6IDMwcHg7XHJcbn1cclxuXHJcbi5jb250ZW50LWRlZmF1bHRfX2VkaXRvciB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tdG9wOiAwO1xyXG5cdH1cclxuXHJcblx0bWF4LXdpZHRoOiA2MDBweDtcclxufVxyXG4iLCIuY29udGVudC1oZWFkZXIge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuXHRtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50LWhlYWRlcl9fYmFja2dyb3VuZCB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdHotaW5kZXg6IC0xO1xyXG5cdGhlaWdodDogY2FsYygxMDAlICsgMTUwcHgpO1xyXG5cdG1hcmdpbi10b3A6IC0xMzBweDtcclxuXHJcblx0aW1nIHtcclxuXHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0d2lkdGg6IDEwMCVcclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50LWhlYWRlcl9fdGl0bGUge1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG59XHJcblxyXG4uY29udGVudC1oZWFkZXJfX2xpbmtzIHtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdG1hcmdpbjogLTIwcHggYXV0byAxMDBweDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcclxuXHRhIHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSA3MHB4KTtcclxuICAgIFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdH1cclxuXHJcblx0XHRtYXJnaW46IDE1cHg7XHJcblx0XHRjb2xvcjogJHdoaXRlLTEwMDtcclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50LWhlYWRlcl9fbGluayB7XHJcblx0Zm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmNvbnRlbnQtaGVhZGVyX19tb3JlIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGUtMTAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdHBhZGRpbmc6IDUwcHggMCAxNXB4IDA7XHJcblxyXG5cdC5jb250ZW50LWhlYWRlcl9fbW9yZS10ZXh0IHtcclxuXHRcdGNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdH1cclxuXHJcblx0c3ZnIHtcclxuXHRcdHdpZHRoOiAxNnB4O1xyXG5cdFx0aGVpZ2h0OiAyNHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnQtaGVhZGVyX19zZXJ2aWNlcyB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblxyXG5cdC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG59XHJcblxyXG4uY29udGVudC1oZWFkZXJfX3NlcnZpY2Uge1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSAoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcblx0XHRoZWlnaHQ6IDI0MHB4O1xyXG5cdH1cclxuXHJcblx0Ym9yZGVyOiAycHggc29saWQgJHdoaXRlLTEwMDtcclxuXHRib3JkZXItcmFkaXVzOiAwIDAgMCA2MHB4O1xyXG5cdHBhZGRpbmc6IDIwcHg7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluO1xyXG5cdHdpZHRoOiAxODBweDtcclxuXHJcblx0YSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblxyXG5cdCYuaXMtYWN0aXZlLFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTEwMDtcclxuXHRcdGNvbG9yOiAkYmxhY2stMTAwO1xyXG5cclxuXHRcdC5jb250ZW50LWhlYWRlcl9fbW9yZS10ZXh0IHtcclxuXHRcdFx0QGluY2x1ZGUgZm9udCgxNHB4LCAxOHB4KTtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHRyYW5zaXRpb246IDEwMG1zIGVhc2UtaW47XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jb250ZW50LWhlYWRlcl9fbW9yZS1zdmcge1xyXG5cdFx0XHRtYXJnaW46IC0zcHggMCAwIDI4cHg7XHJcblx0XHRcdHRyYW5zaXRpb246IDEwMG1zIGVhc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNvbnRlbnQtaGVhZGVyX19tb3JlIHtcclxuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0xMDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudC1oZWFkZXJfX21vcmUtdGV4dCB7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmNvbnRlbnQtaGVhZGVyX193cmFwcGVyIHtcclxuXHRtYXJnaW4tdG9wOiAxMzBweDtcclxufVxyXG5cclxuLmNvbnRlbnQtaGVhZGVyX19zZXJ2aWNlLWljb24ge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuXHJcblx0c3ZnIHtcclxuXHRcdHdpZHRoOiAzMHB4O1xyXG5cdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnQtaGVhZGVyX19zZXJ2aWNlLXRpdGxlIHtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0aGVpZ2h0OiAyMHB4O1xyXG5cdHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbn1cclxuIiwiLnByb2plY3QtaXRlbSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1hcmdpbi1ib3R0b206IDUwcHg7XHJcblx0dHJhbnNpdGlvbjogMjAwbXMgZWFzZS1pbjtcclxuXHJcblx0Jjpob3ZlciB7XHJcblx0XHRvcGFjaXR5OiA4MCU7XHJcblx0fVxyXG59XHJcblxyXG4ucHJvamVjdC1saXN0X19sZWZ0IHtcclxuXHQucHJvamVjdC1pdGVtOm50aC1jaGlsZChvZGQpIHtcclxuXHRcdC5wcm9qZWN0LWl0ZW1fX2ltYWdlIHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0XHRcdGhlaWdodDogMjAwcHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcblx0XHRcdFx0aGVpZ2h0OiAzMjBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aGVpZ2h0OiA0ODBweDtcclxuXHRcdH1cclxuXHJcblx0XHQucHJvamVjdC1pdGVtX19ib2R5IHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRib3R0b206IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5wcm9qZWN0LWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcclxuXHRcdC5wcm9qZWN0LWl0ZW1fX2ltYWdlIHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHRcdGhlaWdodDogMjAwcHg7XHJcblx0XHRcdH1cclxuXHRcdFxyXG5cdFx0XHRoZWlnaHQ6IDM1MHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5wcm9qZWN0LWl0ZW1fX2JvZHkge1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ucHJvamVjdC1saXN0X19yaWdodCB7XHJcblx0LnByb2plY3QtaXRlbTpudGgtY2hpbGQoZXZlbikge1xyXG5cdFx0LnByb2plY3QtaXRlbV9faW1hZ2Uge1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRcdFx0aGVpZ2h0OiAyMDBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuXHRcdFx0XHRoZWlnaHQ6IDMyMHB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRoZWlnaHQ6IDQ4MHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5wcm9qZWN0LWl0ZW1fX2JvZHkge1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdGJvdHRvbTogbm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnByb2plY3QtaXRlbTpudGgtY2hpbGQob2RkKSB7XHJcblx0XHQucHJvamVjdC1pdGVtX19pbWFnZSB7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdFx0XHRoZWlnaHQ6IDIwMHB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRoZWlnaHQ6IDM1MHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5wcm9qZWN0LWl0ZW1fX2JvZHkge1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ucHJvamVjdC1pdGVtX19pbWFnZSB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR6LWluZGV4OiAtMTtcclxuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xyXG5cclxuXHRpbWcge1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0fVxyXG59XHJcblxyXG4ucHJvamVjdC1pdGVtX19ib2R5IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0cGFkZGluZzogMjBweDtcclxuXHJcblx0LnByb2plY3QtaXRlbV9fc3VidGl0bGUge1xyXG5cdFx0QGluY2x1ZGUgZm9udCgxOHB4LCAyMHB4KTtcclxuXHRcdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHR9XHJcbn1cclxuIiwiLnByb2plY3QtbGlzdCB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XHJcblx0fVxyXG5cclxuXHRtYXJnaW4tYm90dG9tOiAxMDBweDtcclxufVxyXG5cclxuLnByb2plY3QtbGlzdF9fd3JhcCB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0bWFyZ2luOiA1MHB4IDAgMCAwO1xyXG5cdH1cclxuXHJcblx0bWFyZ2luOiAxMDBweCAtMTVweCAwO1xyXG59XHJcblxyXG4ucHJvamVjdC1saXN0X19jb2x1bW4ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdH1cclxuXHJcblx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XHJcblx0bWFyZ2luOiAxNXB4O1xyXG59XHJcbiIsIi5zdWJtZW51X193cmFwIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHRtYXJnaW46IDUwcHggMDtcclxuXHRcdGhlaWdodDogNDBweDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cdC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5vd2wtc3RhZ2Uge1xyXG5cdFx0aGVpZ2h0OiA0MHB4O1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHR9XHJcblxyXG5cdG1hcmdpbjogLTEwcHg7XHJcblx0bWFyZ2luLXRvcDogMTAwcHg7XHJcblxyXG5cdC5pcy1hY3RpdmUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdH1cclxufVxyXG5cclxuLnN1Ym1lbnUge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XHRcclxuXHR9XHJcblxyXG5cdG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4uc3VibWVudV9faXRlbSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdH1cclxuXHJcblx0bWFyZ2luOiAxMHB4O1xyXG59XHJcbiIsIi5pbWFnZXMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XHJcblx0fVxyXG5cclxuXHRtYXJnaW4tYm90dG9tOiAxMDBweDtcclxufVxyXG5cclxuLmltYWdlc19fd3JhcHBlciB7XHJcblx0bWFyZ2luOiAwIC0xNXB4IC0zMHB4O1xyXG59XHJcblxyXG4uaW1hZ2VzX19jb2x1bW4ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XHJcblx0bWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcbi5pbWFnZXNfX2ltYWdlIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHRtYXgtaGVpZ2h0OiAzMDBweDtcclxuXHR9XHJcblxyXG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcbi5pbWFnZXNfX2ltYWdlIHtcclxuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xyXG5cdGhlaWdodDogNDgwcHg7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdGltZyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcblx0fVxyXG59XHJcbiIsIi5mb290ZXIge1xyXG5cdEBpbmNsdWRlIGZvbnQoMTZweCwgMjZweCk7XHJcblx0bWFyZ2luLXRvcDogMTAwcHg7XHJcblxyXG5cdC5pcy1hY3RpdmUge1xyXG5cdFx0c3ZnIHtcclxuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmZvb3Rlcl9fdGl0bGVzIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxufVxyXG5cclxuLmZvb3Rlcl9fdGl0bGUtYnV0dG9uIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XHJcblx0fVxyXG5cclxuXHR3aWR0aDogMTAwJTtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4uZm9vdGVyX190aXRsZSB7XHJcblx0bWFyZ2luLXRvcDogLTU2cHg7XHJcblx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4uZm9vdGVyX190aXRsZS13cmFwIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHR3aWR0aDogODAlO1xyXG5cdFx0bWFyZ2luOiBhdXRvO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRtaW4taGVpZ2h0OiAyMHB4O1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHR3aWR0aDogNzUlO1xyXG5cclxuXHRzdmcge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEgKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblxyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdGhlaWdodDogMjBweDtcclxuXHRcdHdpZHRoOiAxMHB4O1xyXG5cdFx0bWFyZ2luLXRvcDogNHB4O1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDVweDtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlO1xyXG5cdH1cclxufVxyXG5cclxuLmZvb3Rlcl9fY29udGVudCB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0d2lkdGg6IDgwJTtcclxuXHRcdG1hcmdpbjogYXV0bztcclxuXHR9XHJcblx0XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0fVxyXG5cclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDsgXHJcbn1cclxuXHJcbi5mb290ZXJfX3NpdGVtYXBzIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDcwcHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG5cdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XHJcblx0fVxyXG5cclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG5cdHdpZHRoOiA3NSU7XHJcblxyXG5cdC5pcy1hY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRvcGFjaXR5OiA2MCU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZm9vdGVyX19jb2x1bW5zIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZm9vdGVyX19jb2x1bW4ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdH1cclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cclxuXHR3aWR0aDogY2FsYygzMyUgLSAzMHB4KTtcclxuXHRtYXJnaW4tcmlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcbi5mb290ZXJfX2NvbnRhY3Qge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIG1lZGlhICgndGFibGV0LXBvcnRyYWl0Jykge1xyXG5cdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XHJcblx0fVxyXG5cclxuXHR3aWR0aDogMjUlO1xyXG59XHJcblxyXG4uZm9vdGVyX19lZGl0b3Ige1xyXG5cdHVsIHtcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5mb290ZXJfX2JvdHRvbSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0cGFkZGluZzogMTBweCAwO1xyXG59XHJcblxyXG4uZm9vdGVyX19kaXNjbGFpbWVyIHtcclxuXHRAaW5jbHVkZSBmb250KDE0cHgsIDI2cHgpO1xyXG5cdG1hcmdpbjogYXV0bztcclxuXHRjb2xvcjogJHdoaXRlLTEwMDtcclxufVxyXG4iLCIudGV4dC1pbWFnZSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHR9XHJcblxyXG5cdG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4udGV4dC1pbWFnZS0tcG9zaXRpb24tcmlnaHQge1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxufVxyXG5cclxuLnRleHQtaW1hZ2VfX3dyYXBwZXIge1xyXG5cdG1hcmdpbjogLTE1cHg7XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX19jb2x1bW4ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XHJcblx0bWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX19pbWFnZSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0bWF4LWhlaWdodDogMzAwcHg7XHJcblx0fVxyXG5cclxuXHRtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fdGl0bGUge1xyXG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX19pbWFnZSB7XHJcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHRoZWlnaHQ6IDQ4MHB4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0aW1nIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcbn1cclxuIiwiLnRoZW1lX19ub3RpY2Uge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdHBhZGRpbmc6IDIwcHggMTBweDtcclxuXHR9XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdGJvdHRvbTogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmM4NDA7XHJcblx0cGFkZGluZzogMzBweCAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdG9wYWNpdHk6IDA7XHJcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4tb3V0O1xyXG5cdHotaW5kZXg6IDk5O1xyXG5cclxuXHRwLCBhIHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdEBleHRlbmQgaDM7XHJcblx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHR9XHJcblxyXG5cdGEge1xyXG5cdFx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4tb3V0O1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRvcGFjaXR5OiAwLjc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IGFsbDtcclxuXHR9XHJcbn1cclxuXHJcbi50aGVtZV9fbm90aWNlLWNsb3NlIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHRyaWdodDogaW5oZXJpdDtcclxuXHRcdGxlZnQ6IDEwcHg7XHJcblx0XHR0b3A6IDEwcHg7XHJcblx0XHR3aWR0aDogMjBweDtcclxuXHRcdGhlaWdodDogMjBweDtcclxuXHR9XHJcblx0d2lkdGg6IDMwcHg7XHJcblx0aGVpZ2h0OiAzMHB4O1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDVweDtcclxuXHRyaWdodDogMjBweDtcclxuXHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHRwYXRoIHtcclxuXHRcdGZpbGw6ICRibGFjay0xMDA7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdG9wYWNpdHk6IDAuNztcclxuXHR9XHJcbn0iLCIvKipcclxuICogQ29sb3IgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKlxyXG4gKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBjb2xvciBhbmQgYmFja2dyb3VuZCBjb2xvciB1dGlsaXR5IGNsYXNzZXMgYmFzZWQgb24gZXZlcnkgY29sb3IgZGVmaW5pdGlvbiBpbiBgc2V0dGluZ3MvX2NvbG9yLnNjc3NgLlxyXG4gKiBMb29wIHRocm91Z2ggZXZlcnkgYCRrZXlgIGFuZCBgJG1hcGAgaW4gdGhlIGAkY29sb3JzYCB2YXJpYWJsZSBtYXAgZGVmaW5lZCBpbiBgc2V0dGluZ3MvX2NvbG9yLnNjc3NgLlxyXG4gKi9cclxuIFxyXG5AZWFjaCAka2V5LCAkbWFwIGluICRjb2xvcnMge1xyXG5cclxuXHQvLyBMb29wIHRocm91Z2ggZXZlcnkgYCRzaGFkZWAgYW5kIGAkcmdiYCBpbiBgJG1hcGAuXHJcblx0QGVhY2ggJHNoYWRlLCAkcmdiIGluICRtYXAge1xyXG5cclxuXHRcdC8vIExvb3AgdGhyb3VnaCBldmVyeSBgY29sb3JgIGFuZCBgYmFja2dyb3VuZC1jb2xvcmAgcnVsZXMuXHJcblx0XHRAZWFjaCAkcnVsZSBpbiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciB7XHJcblxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICogYCN7JHJ1bGV9YCAjeyRyZ2J9LSN7JHNoYWRlfSBjb2xvciB1dGlsaXR5LlxyXG5cdFx0XHQgKi9cclxuXHJcblx0XHRcdC4jeyRydWxlfS0je3VucXVvdGUoJGtleSl9LSN7dW5xdW90ZSgkc2hhZGUpfSB7XHJcblx0XHRcdFx0I3skcnVsZX06ICRyZ2I7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFZpc3VhbGx5IGhpZGUgYW55IGVsZW1lbnQgZnJvbSB0aGUgdXNlci5cclxuICovXHJcblxyXG4udmlzdWFsbHktaGlkZGVuIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0d2lkdGg6IDFweDtcclxuXHRoZWlnaHQ6IDFweDtcclxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0Y2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xyXG5cdGNsaXAtcGF0aDogaW5zZXQoMXB4KTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBNYWtlIGxhenlsb2FkIHBsYWNlaG9sZGVyIDEwMCUgd2lkZS5cclxuICovXHJcblxyXG4ubGF6eWxvYWQge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhlbHBlciBjbGFzcyBmb3Igb2JqZWN0IGZpdCBwb2x5ZmlsbC4gQWRkIHRoaXMgY2xhc3MgdG8gYW55IGVsZW1lbnRcclxuICogdGhhdCB1dGlsaXplcyB0aGUgYG9iamVjdC1maXRgIHByb3BlcnR5LlxyXG4gKi9cclxuXHJcbiVvYmplY3QtZml0LFxyXG4ub2JqZWN0LWZpdCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRyaWdodDogMDtcclxuXHRib3R0b206IDA7XHJcblx0bGVmdDogMDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblx0Zm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiBjb3ZlcjsnO1xyXG5cdG9iamVjdC1maXQ6IGNvdmVyO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEFsaWduIGNlbnRlci5cclxuICovXHJcblxyXG4uYWxpZ24tY2VudGVyIHtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBbGlnbiBsZWZ0LlxyXG4gKi9cclxuXHJcbi5hbGlnbi1sZWZ0IHtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4vKipcclxuICogQWxpZ24gcmlnaHQuXHJcbiAqL1xyXG5cclxuLmFsaWduLXJpZ2h0IHtcclxuXHR0ZXh0LWFsaWduOiByaWdodDtcclxufVxyXG4iLCIvKipcclxuICogT2JqZWN0IGZpdC5cclxuICpcclxuICogMS4gRm9udCBmYW1pbHkgcG9seWZpbGwgd2l0aCAoaHR0cHM6Ly9naXRodWIuY29tL2JmcmVkLWl0L29iamVjdC1maXQtaW1hZ2VzKS5cclxuICogTG9vcCB0aHJvdWdoIGV2ZXJ5IHZhbHVlIGZvciB0aGUgYG9iamVjdC1maXRgIHByb3BlcnR5LlxyXG4gKi9cclxuXHJcbkBlYWNoICR2YWx1ZSBpbiBmaWxsLCBjb250YWluLCBjb3Zlciwgbm9uZSwgc2NhbGUtZG93biB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGBvYmplY3QtZml0YCAjeyR2YWx1ZX0gdXRpbGl0eSBjbGFzcy5cclxuXHQgKi9cclxuXHJcblx0LiN7JHZhbHVlfSB7XHJcblx0XHRmb250LWZhbWlseTogJ29iamVjdC1maXQ6ICN7JHZhbHVlfTsnOyAvKiAxICovXHJcblx0XHRvYmplY3QtZml0OiAjeyR2YWx1ZX07XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBQb3NpdGlvbiB1dGlsaXR5IGNsYXNzLlxyXG4gKi9cclxuXHJcbkBlYWNoICR2YWx1ZSBpbiBzdGF0aWMsIHJlbGF0aXZlLCBhYnNvbHV0ZSwgZml4ZWQsIHN0aWNreSB7XHJcblx0LiN7JHZhbHVlfSB7XHJcblx0XHRwb3NpdGlvbjogJHZhbHVlO1xyXG5cdH1cclxufVxyXG4iLCJcclxuLyoqXHJcbiAqIEZvbnQgZmFtaWx5IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XHJcblx0XHRAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZm9udC1mYW1pbHkge1xyXG5cdFx0XHQudGV4dC0jeyRrZXl9LSN7JHByb3BlcnR5fSB7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAkcHJvcGVydHkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQgc2l6ZSB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xyXG5cdFx0QGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJGZvbnQtc2l6ZSB7XHJcblx0XHRcdC50ZXh0LSN7JGtleX0tI3skcHJvcGVydHl9IHtcclxuXHRcdFx0XHRAaW5jbHVkZSB0ZXh0KCRwcm9wZXJ0eSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGV4dCBhbGlnbm1lbnQgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcclxuXHRcdEBlYWNoICRkaXJlY3Rpb24gaW4gbGVmdCwgcmlnaHQsIGNlbnRlciB7XHJcblx0XHRcdC50ZXh0LSN7JGtleX0tI3skZGlyZWN0aW9ufSB7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogJGRpcmVjdGlvbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGb250IHdlaWdodCB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqXHJcbiAqIDEuIE11bHRpcGx5IGxvb3BlZCBpbnRlZ2VyIGJ5IDEwMCBmb3IgY29ycmVjdCBmb250IHdlaWdodCB2YWx1ZS5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XHJcblx0XHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xyXG5cdFx0XHQkaTogJGkgKiAxMDA7IC8vIFsxXVxyXG5cclxuXHRcdFx0LnRleHQtI3ska2V5fS0jeyRpfSB7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6ICN7JGl9O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQgdHJhbnNmb3JtIHVpdGxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XHJcblx0XHRAZWFjaCAkdHJhbnNmb3JtIGluIGNhcGl0YWxpemUsIHVwcGVyY2FzZSwgbG93ZXJjYXNlLCBub25lLCBmdWxsLXdpZHRoIHtcclxuXHRcdFx0LnRleHQtI3ska2V5fS0jeyR0cmFuc2Zvcm19IHtcclxuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogVmVydGljYWwgUmh5dGhtLlxyXG4gKi9cclxuIFxyXG5AZm9yICRpIGZyb20gMCB0aHJvdWdoIDEwIHtcclxuXHQkaTogJGkgKiA4O1xyXG5cclxuXHQudnItI3skaX0ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogI3skaX1weDtcclxuXHR9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIHN0YWNraW5nIG9yZGVyIGluIEhUTUwuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJHZhbHVlIGluICR6LWluZGV4IHtcclxuXHQuei1pbmRleC0jeyRrZXl9IHtcclxuXHRcdHotaW5kZXg6ICR2YWx1ZTtcclxuXHR9XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRztBQ0ZIOztHQUVHO0FDRkg7O0dBRUc7QUFPSDs7R0FFRztBQVlIOztHQUVHO0FHekJIOztHQUVHO0FBZUg7O0dBRUc7QUFNSDs7R0FFRztBQWVIOztHQUVHO0FBTUgsQUFBQSxDQUFDLEFBQUEsV0FBVyxDQUFDO0VBQ1osZ0JBQWdCLEVGaERSLE9BQW1CO0VFaUQzQixLQUFLLEVGN0NHLEtBQW9CLEdFOEM1Qjs7QUFFRDs7R0FFRztBTG5ESDs7R0FFRztBTVJILDRFQUE0RTtBQUU1RTtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsSUFBSTtFQUFFLE9BQU87RUFDMUIsd0JBQXdCLEVBQUUsSUFBSTtF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 */
