/**
 * HINT.css is a tooltip library made in pure CSS.
 *
 * Source: https://github.com/chinchang/hint.css
 * Demo: http://kushagragour.in/lab/hint/
 *
 * Release under The MIT License
 *
 */
@font-face {
  font-family: "Cloverlock";
  src: url("../fonts/cloverlock-regular-latin.svg#Cloverlock") format("svg"), url("../fonts/cloverlock-regular-latin.eot?") format("eot"), url("../fonts/cloverlock-regular-latin.woff2") format("woff2"), url("../fonts/cloverlock-regular-latin.woff") format("woff"), url("../fonts/cloverlock-regular-latin.ttf") format("truetype"); }

@font-face {
  font-family: "Cloverlock";
  font-weight: bold;
  src: url("../fonts/cloverlock-bold-latin.svg#Cloverlock") format("svg"), url("../fonts/cloverlock-bold-latin.eot?") format("eot"), url("../fonts/cloverlock-bold-latin.woff2") format("woff2"), url("../fonts/cloverlock-bold-latin.woff") format("woff"), url("../fonts/cloverlock-bold-latin.ttf") format("truetype"); }

@font-face {
  font-family: "Cloverlock";
  font-style: italic;
  src: url("../fonts/cloverlock-italic-latin.svg#Cloverlock") format("svg"), url("../fonts/cloverlock-italic-latin.eot?") format("eot"), url("../fonts/cloverlock-italic-latin.woff2") format("woff2"), url("../fonts/cloverlock-italic-latin.woff") format("woff"), url("../fonts/cloverlock-italic-latin.ttf") format("truetype"); }

@font-face {
  font-family: "ExocM";
  src: url("../fonts/exoc-medium.svg#ExocM") format("svg"), url("../fonts/exoc-medium.eot?") format("eot"), url("../fonts/exoc-medium.woff2") format("woff2"), url("../fonts/exoc-medium.woff") format("woff"), url("../fonts/exoc-medium.ttf") format("truetype"); }

@font-face {
  font-family: "ExocR";
  src: url("../fonts/exoc-regular.svg#ExocR") format("svg"), url("../fonts/exoc-regular.eot?") format("eot"), url("../fonts/exoc-regular.woff2") format("woff2"), url("../fonts/exoc-regular.woff") format("woff"), url("../fonts/exoc-regular.ttf") format("truetype"); }

@font-face {
  font-family: "RUExocM";
  src: url("../fonts/cyrillic-exoc-medium.svg#RUExocM") format("svg"), url("../fonts/cyrillic-exoc-medium.eot?") format("eot"), url("../fonts/cyrillic-exoc-medium.woff2") format("woff2"), url("../fonts/cyrillic-exoc-medium.woff") format("woff"), url("../fonts/cyrillic-exoc-medium.ttf") format("truetype"); }

@font-face {
  font-family: "RUExocR";
  src: url("../fonts/cyrillic-exoc-regular.svg#RUExocR") format("svg"), url("../fonts/cyrillic-exoc-regular.eot?") format("eot"), url("../fonts/cyrillic-exoc-regular.woff2") format("woff2"), url("../fonts/cyrillic-exoc-regular.woff") format("woff"), url("../fonts/cyrillic-exoc-regular.ttf") format("truetype"); }

@font-face {
  font-family: "Latoc";
  src: url("../fonts/cyrillic-latoc-regular.svg#Latoc") format("svg"), url("../fonts/cyrillic-latoc-regular.eot?") format("eot"), url("../fonts/cyrillic-latoc-regular.woff2") format("woff2"), url("../fonts/cyrillic-latoc-regular.woff") format("woff"), url("../fonts/cyrillic-latoc-regular.ttf") format("truetype"); }

@font-face {
  font-family: "Latoc";
  font-weight: bold;
  src: url("../fonts/cyrillic-latoc-bold.svg#Latoc") format("svg"), url("../fonts/cyrillic-latoc-bold.eot?") format("eot"), url("../fonts/cyrillic-latoc-bold.woff2") format("woff2"), url("../fonts/cyrillic-latoc-bold.woff") format("woff"), url("../fonts/cyrillic-latoc-bold.ttf") format("truetype"); }

@font-face {
  font-family: "Latoc";
  font-style: italic;
  src: url("../fonts/cyrillic-latoc-italic.svg#Latoc") format("svg"), url("../fonts/cyrillic-latoc-italic.eot?") format("eot"), url("../fonts/cyrillic-latoc-italic.woff2") format("woff2"), url("../fonts/cyrillic-latoc-italic.woff") format("woff"), url("../fonts/cyrillic-latoc-italic.ttf") format("truetype"); }

@font-face {
  font-family: "Latoc";
  font-style: italic;
  font-weight: bold;
  src: url("../fonts/cyrillic-latoc-bolditalic.svg#Latoc") format("svg"), url("../fonts/cyrillic-latoc-bolditalic.eot?") format("eot"), url("../fonts/cyrillic-latoc-bolditalic.woff2") format("woff2"), url("../fonts/cyrillic-latoc-bolditalic.woff") format("woff"), url("../fonts/cyrillic-latoc-bolditalic.ttf") format("truetype"); }

/**
 * source: hint-core.scss
 *
 * Defines the basic styling for the tooltip.
 * Each tooltip is made of 2 parts:
 * 	1) body (:after)
 * 	2) arrow (:before)
 *
 * Classes added:
 * 	1) hint
 */
[class*="hint--"] {
  position: relative;
  display: inline-block;
  /**
	 * tooltip arrow
	 */
  /**
	 * tooltip body
	 */ }
  [class*="hint--"]:before, [class*="hint--"]:after {
    position: absolute;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    visibility: hidden;
    opacity: 0;
    z-index: 1000000;
    pointer-events: none;
    -webkit-transition: 0.2s ease;
    transition: 0.2s ease;
    -webkit-transition-delay: 0ms;
    transition-delay: 0ms; }
  [class*="hint--"]:hover:before, [class*="hint--"]:hover:after {
    visibility: visible;
    opacity: 1; }
  [class*="hint--"]:hover:before, [class*="hint--"]:hover:after {
    -webkit-transition-delay: 100ms;
    transition-delay: 100ms; }
  [class*="hint--"]:before {
    content: '';
    position: absolute;
    background: transparent;
    border: 6px solid transparent;
    z-index: 1000001; }
  [class*="hint--"]:after {
    background: rgba(0, 0, 0, 0.9);
    color: white;
    padding: 8px 10px;
    font-size: 15px;
    line-height: 15px;
    white-space: nowrap; }
    [class*="hint--"]:after:lang(en) {
      font-family: Cloverlock, Helvetica, Arial, sans-serif; }
    [class*="hint--"]:after:lang(ru) {
      font-family: Latoc, sans-serif; }
  [class*="hint--"][aria-label]:after {
    content: attr(aria-label); }
  [class*="hint--"][data-hint]:after {
    content: attr(data-hint); }

[aria-label='']:before, [aria-label='']:after,
[data-hint='']:before,
[data-hint='']:after {
  display: none !important; }

/**
 * source: hint-position.scss
 *
 * Defines the positoning logic for the tooltips.
 *
 * Classes added:
 * 	1) hint--top
 * 	2) hint--bottom
 * 	3) hint--left
 * 	4) hint--right
 */
/**
 * set default color for tooltip arrows
 */
.hint--top-left:before {
  border-top-color: rgba(0, 0, 0, 0.9); }

.hint--top-right:before {
  border-top-color: rgba(0, 0, 0, 0.9); }

.hint--top:before {
  border-top-color: rgba(0, 0, 0, 0.9); }

.hint--bottom-left:before {
  border-bottom-color: rgba(0, 0, 0, 0.9); }

.hint--bottom-right:before {
  border-bottom-color: rgba(0, 0, 0, 0.9); }

.hint--bottom:before {
  border-bottom-color: rgba(0, 0, 0, 0.9); }

.hint--left:before {
  border-left-color: rgba(0, 0, 0, 0.9); }

.hint--right:before {
  border-right-color: rgba(0, 0, 0, 0.9); }

/**
 * top tooltip
 */
.hint--top:before {
  margin-bottom: -11px; }

.hint--top:before, .hint--top:after {
  bottom: 100%;
  left: 50%; }

.hint--top:before {
  left: calc(50% - 6px); }

.hint--top:after {
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
      transform: translateX(-50%); }

.hint--top:hover:before {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--top:hover:after {
  -webkit-transform: translateX(-50%) translateY(-8px);
  -ms-transform: translateX(-50%) translateY(-8px);
      transform: translateX(-50%) translateY(-8px); }

/**
 * bottom tooltip
 */
.hint--bottom:before {
  margin-top: -11px; }

.hint--bottom:before, .hint--bottom:after {
  top: 100%;
  left: 50%; }

.hint--bottom:before {
  left: calc(50% - 6px); }

.hint--bottom:after {
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
      transform: translateX(-50%); }

.hint--bottom:hover:before {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--bottom:hover:after {
  -webkit-transform: translateX(-50%) translateY(8px);
  -ms-transform: translateX(-50%) translateY(8px);
      transform: translateX(-50%) translateY(8px); }

/**
 * right tooltip
 */
.hint--right:before {
  margin-left: -11px;
  margin-bottom: -6px; }

.hint--right:after {
  margin-bottom: -15px; }

.hint--right:before, .hint--right:after {
  left: 100%;
  bottom: 50%; }

.hint--right:hover:before {
  -webkit-transform: translateX(8px);
  -ms-transform: translateX(8px);
      transform: translateX(8px); }

.hint--right:hover:after {
  -webkit-transform: translateX(8px);
  -ms-transform: translateX(8px);
      transform: translateX(8px); }

/**
 * left tooltip
 */
.hint--left:before {
  margin-right: -11px;
  margin-bottom: -6px; }

.hint--left:after {
  margin-bottom: -15px; }

.hint--left:before, .hint--left:after {
  right: 100%;
  bottom: 50%; }

.hint--left:hover:before {
  -webkit-transform: translateX(-8px);
  -ms-transform: translateX(-8px);
      transform: translateX(-8px); }

.hint--left:hover:after {
  -webkit-transform: translateX(-8px);
  -ms-transform: translateX(-8px);
      transform: translateX(-8px); }

/**
 * top-left tooltip
 */
.hint--top-left:before {
  margin-bottom: -11px; }

.hint--top-left:before, .hint--top-left:after {
  bottom: 100%;
  left: 50%; }

.hint--top-left:before {
  left: calc(50% - 6px); }

.hint--top-left:after {
  -webkit-transform: translateX(-100%);
  -ms-transform: translateX(-100%);
      transform: translateX(-100%); }

.hint--top-left:after {
  margin-left: 12px; }

.hint--top-left:hover:before {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--top-left:hover:after {
  -webkit-transform: translateX(-100%) translateY(-8px);
  -ms-transform: translateX(-100%) translateY(-8px);
      transform: translateX(-100%) translateY(-8px); }

/**
 * top-right tooltip
 */
.hint--top-right:before {
  margin-bottom: -11px; }

.hint--top-right:before, .hint--top-right:after {
  bottom: 100%;
  left: 50%; }

.hint--top-right:before {
  left: calc(50% - 6px); }

.hint--top-right:after {
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
      transform: translateX(0); }

.hint--top-right:after {
  margin-left: -12px; }

.hint--top-right:hover:before {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--top-right:hover:after {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

/**
 * bottom-left tooltip
 */
.hint--bottom-left:before {
  margin-top: -11px; }

.hint--bottom-left:before, .hint--bottom-left:after {
  top: 100%;
  left: 50%; }

.hint--bottom-left:before {
  left: calc(50% - 6px); }

.hint--bottom-left:after {
  -webkit-transform: translateX(-100%);
  -ms-transform: translateX(-100%);
      transform: translateX(-100%); }

.hint--bottom-left:after {
  margin-left: 12px; }

.hint--bottom-left:hover:before {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--bottom-left:hover:after {
  -webkit-transform: translateX(-100%) translateY(8px);
  -ms-transform: translateX(-100%) translateY(8px);
      transform: translateX(-100%) translateY(8px); }

/**
 * bottom-right tooltip
 */
.hint--bottom-right:before {
  margin-top: -11px; }

.hint--bottom-right:before, .hint--bottom-right:after {
  top: 100%;
  left: 50%; }

.hint--bottom-right:before {
  left: calc(50% - 6px); }

.hint--bottom-right:after {
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
      transform: translateX(0); }

.hint--bottom-right:after {
  margin-left: -12px; }

.hint--bottom-right:hover:before {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--bottom-right:hover:after {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

/**
 * source: hint-sizes.scss
 *
 * Defines width restricted tooltips that can span
 * across multiple lines.
 *
 * Classes added:
 * 	1) hint--small
 * 	2) hint--medium
 * 	3) hint--large
 *
 */
.hint--small:after,
.hint--medium:after,
.hint--large:after {
  white-space: normal;
  line-height: 1.4em;
  word-wrap: break-word; }

.hint--small:after {
  width: 80px; }

.hint--medium:after {
  width: 150px; }

.hint--large:after {
  width: 300px; }

/**
 * source: hint-always.scss
 *
 * Defines a persisted tooltip which shows always.
 *
 * Classes added:
 * 	1) hint--always
 *
 */
.hint--always:after, .hint--always:before {
  opacity: 1;
  visibility: visible; }

.hint--always.hint--top:before {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--always.hint--top:after {
  -webkit-transform: translateX(-50%) translateY(-8px);
  -ms-transform: translateX(-50%) translateY(-8px);
      transform: translateX(-50%) translateY(-8px); }

.hint--always.hint--top-left:before {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--always.hint--top-left:after {
  -webkit-transform: translateX(-100%) translateY(-8px);
  -ms-transform: translateX(-100%) translateY(-8px);
      transform: translateX(-100%) translateY(-8px); }

.hint--always.hint--top-right:before {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--always.hint--top-right:after {
  -webkit-transform: translateY(-8px);
  -ms-transform: translateY(-8px);
      transform: translateY(-8px); }

.hint--always.hint--bottom:before {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--always.hint--bottom:after {
  -webkit-transform: translateX(-50%) translateY(8px);
  -ms-transform: translateX(-50%) translateY(8px);
      transform: translateX(-50%) translateY(8px); }

.hint--always.hint--bottom-left:before {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--always.hint--bottom-left:after {
  -webkit-transform: translateX(-100%) translateY(8px);
  -ms-transform: translateX(-100%) translateY(8px);
      transform: translateX(-100%) translateY(8px); }

.hint--always.hint--bottom-right:before {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--always.hint--bottom-right:after {
  -webkit-transform: translateY(8px);
  -ms-transform: translateY(8px);
      transform: translateY(8px); }

.hint--always.hint--left:before {
  -webkit-transform: translateX(-8px);
  -ms-transform: translateX(-8px);
      transform: translateX(-8px); }

.hint--always.hint--left:after {
  -webkit-transform: translateX(-8px);
  -ms-transform: translateX(-8px);
      transform: translateX(-8px); }

.hint--always.hint--right:before {
  -webkit-transform: translateX(8px);
  -ms-transform: translateX(8px);
      transform: translateX(8px); }

.hint--always.hint--right:after {
  -webkit-transform: translateX(8px);
  -ms-transform: translateX(8px);
      transform: translateX(8px); }

/* Fancier coloured tooltips
	@import "theme/hint/hint-variables"
	@import "theme/hint/hint-mixins"
	@import "theme/hint/hint-core"
	@import "theme/hint/hint-position"
	@import "theme/hint/hint-sizes"
	@import "theme/hint/hint-theme"
	@import "theme/hint/hint-color-types"
	@import "theme/hint/hint-always"
	@import "theme/hint/hint-rounded"
	@import "theme/hint/hint-effects"
	*/

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhpbnQuc2FzcyIsImJhc2UvX21peGlucy5zY3NzIiwiYmFzZS9fZm9udHMuc2FzcyIsInRoZW1lL2hpbnQvaGludC1jb3JlLnNjc3MiLCJoaW50LmNzcyIsInRoZW1lL2hpbnQvaGludC1taXhpbnMuc2NzcyIsInRoZW1lL2hpbnQvaGludC12YXJpYWJsZXMuc2NzcyIsInRoZW1lL2hpbnQvaGludC1wb3NpdGlvbi5zY3NzIiwidGhlbWUvaGludC9oaW50LXNpemVzLnNjc3MiLCJ0aGVtZS9oaW50L2hpbnQtYWx3YXlzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUM4QkY7RUFDQywwQkNyQzZCO0VEd0M3Qix1VUFQMkQsRUFBQTs7QUFHNUQ7RUFDQywwQkNwQzZCO0VEc0M3QixrQkN0Q3FFO0VEdUNyRSx3VEFQMkQsRUFBQTs7QUFHNUQ7RUFDQywwQkNuQzZCO0VEb0M3QixtQkNwQytFO0VEc0MvRSxrVUFQMkQsRUFBQTs7QUFHNUQ7RUFDQyxxQkNqQ3dCO0VEb0N4QixpUUFQMkQsRUFBQTs7QUFHNUQ7RUFDQyxxQkNoQ3dCO0VEbUN4QixzUUFQMkQsRUFBQTs7QUFHNUQ7RUFDQyx1QkM3QjBCO0VEZ0MxQixnVEFQMkQsRUFBQTs7QUFHNUQ7RUFDQyx1QkM1QjBCO0VEK0IxQixxVEFQMkQsRUFBQTs7QUFHNUQ7RUFDQyxxQkMzQndCO0VEOEJ4Qix3VEFQMkQsRUFBQTs7QUFHNUQ7RUFDQyxxQkMxQndCO0VENEJ4QixrQkM1QjhEO0VENkI5RCx5U0FQMkQsRUFBQTs7QUFHNUQ7RUFDQyxxQkN6QndCO0VEMEJ4QixtQkMxQndFO0VENEJ4RSxtVEFQMkQsRUFBQTs7QUFHNUQ7RUFDQyxxQkN4QndCO0VEeUJ4QixtQkN6QjRFO0VEMEI1RSxrQkMxQm9FO0VEMkJwRSx1VUFQMkQsRUFBQTs7QUVuQzdEOzs7Ozs7Ozs7O0dBVUc7QUM0REg7RUR6REMsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQWlDdEI7O0lBRUc7RUFVSDs7SUFFRyxFQW1CSDtFQ0RDO0lEOURBLG1CQUFtQjtJRVhwQix3Q0ZleUM7SUViekMsZ0NGYXlDO0lBS3hDLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsaUJHUWtCO0lITmxCLHFCQUFxQjtJRXhCdEIsOEJGMkJ3QztJRXpCeEMsc0JGeUJ3QztJRTNCeEMsOEJDMkJrQjtJRHpCbEIsc0JDeUJrQixFSEVqQjtFQzJEQTtJRHhEQSxvQkFBb0I7SUFDcEIsV0FBVyxFQUNYO0VDeURBO0lDM0ZELGdDQ3dCb0I7SUR0QnBCLHdCQ3NCb0IsRUhlbkI7RUN3REE7SURsREEsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQix3QkFBd0I7SUFDeEIsOEJBQStDO0lBRS9DLGlCQUFvQixFQUNwQjtFQ2tEQTtJRDNDQSwrQkduQnFCO0lIb0JyQixhQUFhO0lBQ2Isa0JHdEQwQjtJSHVEMUIsZ0JHM0RpQjtJSDREakIsa0JHNURpQjtJSDZEakIsb0JBQW9CLEVBQ3BCO0lDNENFO01GdEVGLHNEQXpCb0QsRUF5QnpCO0lFd0V6QjtNRnRFRiwrQkFwQmdDLEVBb0JEO0VFd0UvQjtJRDdDQSwwQkFBYSxFQUNiO0VDOENBO0lEMUNBLHlCQUFhLEVBQ2I7O0FDNENGOzs7RURyQ0UseUJBQXlCLEVBQ3pCOztBSXZGRjs7Ozs7Ozs7OztHQVVHO0FBbUVIOztHQUVHO0FGOURFO0VBQ0EscUNDMkJrQixFRDFCbEI7O0FBRkE7RUFDQSxxQ0MyQmtCLEVEMUJsQjs7QUFHRjtFQUNBLHFDQ3NCb0IsRURyQnBCOztBQVBFO0VBQ0Esd0NDMkJrQixFRDFCbEI7O0FBRkE7RUFDQSx3Q0MyQmtCLEVEMUJsQjs7QUFHRjtFQUNBLHdDQ3NCb0IsRURyQnBCOztBQUZBO0VBQ0Esc0NDc0JvQixFRHJCcEI7O0FBRkE7RUFDQSx1Q0NzQm9CLEVEckJwQjs7QUUwREg7O0dBRUc7QUFDSDtFQXJFRSxxQkFBOEIsRUFDOUI7O0FBb0VGO0VBakVFLGFBQW9CO0VBQ3BCLFVBQVUsRUFDVjs7QUErREY7RUE1REUsc0JBQVUsRUFDVjs7QUEyREY7RUYvRUMsb0NFK0J3QztFRjdCeEMsZ0NFNkJ3QztNRjdCeEMsNEJFNkJ3QyxFQUN2Qzs7QUErQ0Y7RUYvRUMsb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFHZDs7QUVtREY7RUYvRUMscURBeUJlO0VBdkJmLGlEQXVCZTtNQXZCZiw2Q0F1QmUsRUFhZDs7QUU2Q0Y7O0dBRUc7QUFDSDtFQTVFRSxrQkFBOEIsRUFDOUI7O0FBMkVGO0VBeEVFLFVBQW9CO0VBQ3BCLFVBQVUsRUFDVjs7QUFzRUY7RUFuRUUsc0JBQVUsRUFDVjs7QUFrRUY7RUZ0RkMsb0NFK0J3QztFRjdCeEMsZ0NFNkJ3QztNRjdCeEMsNEJFNkJ3QyxFQUN2Qzs7QUFzREY7RUZ0RkMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFHZDs7QUUwREY7RUZ0RkMsb0RBeUJlO0VBdkJmLGdEQXVCZTtNQXZCZiw0Q0F1QmUsRUFhZDs7QUVvREY7O0dBRUc7QUFDSDtFQTNDRSxtQkFBOEI7RUFFOUIsb0JBQWdCLEVBQ2hCOztBQXdDRjtFQXBDRSxxQkFBZ0IsRUFDaEI7O0FBbUNGO0VBaENFLFdBQW9CO0VBQ3BCLFlBQVksRUFDWjs7QUE4QkY7RUY3RkMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFHZDs7QUVpRUY7RUY3RkMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFhZDs7QUUyREY7O0dBRUc7QUFDSDtFQWxERSxvQkFBOEI7RUFFOUIsb0JBQWdCLEVBQ2hCOztBQStDRjtFQTNDRSxxQkFBZ0IsRUFDaEI7O0FBMENGO0VBdkNFLFlBQW9CO0VBQ3BCLFlBQVksRUFDWjs7QUFxQ0Y7RUZwR0Msb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFHZDs7QUV3RUY7RUZwR0Msb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFhZDs7QUVrRUY7O0dBRUc7QUFDSDtFQWpHRSxxQkFBOEIsRUFDOUI7O0FBZ0dGO0VBN0ZFLGFBQW9CO0VBQ3BCLFVBQVUsRUFDVjs7QUEyRkY7RUF4RkUsc0JBQVUsRUFDVjs7QUF1RkY7RUYzR0MscUNFK0J3QztFRjdCeEMsaUNFNkJ3QztNRjdCeEMsNkJFNkJ3QyxFQUN2Qzs7QUEyRUY7RUF0RUcsa0JBQWMsRUFFZjs7QUFvRUY7RUYzR0Msb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFHZDs7QUUrRUY7RUYzR0Msc0RBeUJlO0VBdkJmLGtEQXVCZTtNQXZCZiw4Q0F1QmUsRUFhZDs7QUUwRUY7O0dBRUc7QUFDSDtFQXpHRSxxQkFBOEIsRUFDOUI7O0FBd0dGO0VBckdFLGFBQW9CO0VBQ3BCLFVBQVUsRUFDVjs7QUFtR0Y7RUFoR0Usc0JBQVUsRUFDVjs7QUErRkY7RUZuSEMsaUNFK0J3QztFRjdCeEMsNkJFNkJ3QztNRjdCeEMseUJFNkJ3QyxFQUN2Qzs7QUFtRkY7RUE5RUcsbUJBQWMsRUFFZjs7QUE0RUY7RUZuSEMsb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFHZDs7QUV1RkY7RUZuSEMsb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFhZDs7QUVpRkY7O0dBRUc7QUFDSDtFQWhIRSxrQkFBOEIsRUFDOUI7O0FBK0dGO0VBNUdFLFVBQW9CO0VBQ3BCLFVBQVUsRUFDVjs7QUEwR0Y7RUF2R0Usc0JBQVUsRUFDVjs7QUFzR0Y7RUYxSEMscUNFK0J3QztFRjdCeEMsaUNFNkJ3QztNRjdCeEMsNkJFNkJ3QyxFQUN2Qzs7QUEwRkY7RUFyRkcsa0JBQWMsRUFFZjs7QUFtRkY7RUYxSEMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFHZDs7QUU4RkY7RUYxSEMscURBeUJlO0VBdkJmLGlEQXVCZTtNQXZCZiw2Q0F1QmUsRUFhZDs7QUV5RkY7O0dBRUc7QUFDSDtFQXhIRSxrQkFBOEIsRUFDOUI7O0FBdUhGO0VBcEhFLFVBQW9CO0VBQ3BCLFVBQVUsRUFDVjs7QUFrSEY7RUEvR0Usc0JBQVUsRUFDVjs7QUE4R0Y7RUZsSUMsaUNFK0J3QztFRjdCeEMsNkJFNkJ3QztNRjdCeEMseUJFNkJ3QyxFQUN2Qzs7QUFrR0Y7RUE3RkcsbUJBQWMsRUFFZjs7QUEyRkY7RUZsSUMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFHZDs7QUVzR0Y7RUZsSUMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFhZDs7QUc1Q0Y7Ozs7Ozs7Ozs7O0dBV0c7QUFHSDs7O0VBRUUsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixzQkFBc0IsRUFDdEI7O0FBR0Y7RUFFRSxZRmVrQixFRWRsQjs7QUFFRjtFQUVFLGFGV29CLEVFVnBCOztBQUVGO0VBRUUsYUZPbUIsRUVObkI7O0FDbkNGOzs7Ozs7OztHQVFHO0FBRUg7RUFFRSxXQUFXO0VBQ1gsb0JBQW9CLEVBQ3BCOztBQUpGO0VKSkMsb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFHZDs7QUl4QkY7RUpKQyxxREF5QmU7RUF2QmYsaURBdUJlO01BdkJmLDZDQXVCZSxFQWFkOztBSWxDRjtFSkpDLG9DQXlCZTtFQXZCZixnQ0F1QmU7TUF2QmYsNEJBdUJlLEVBR2Q7O0FJeEJGO0VKSkMsc0RBeUJlO0VBdkJmLGtEQXVCZTtNQXZCZiw4Q0F1QmUsRUFhZDs7QUlsQ0Y7RUpKQyxvQ0F5QmU7RUF2QmYsZ0NBdUJlO01BdkJmLDRCQXVCZSxFQUdkOztBSXhCRjtFSkpDLG9DQXlCZTtFQXZCZixnQ0F1QmU7TUF2QmYsNEJBdUJlLEVBYWQ7O0FJbENGO0VKSkMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFHZDs7QUl4QkY7RUpKQyxvREF5QmU7RUF2QmYsZ0RBdUJlO01BdkJmLDRDQXVCZSxFQWFkOztBSWxDRjtFSkpDLG1DQXlCZTtFQXZCZiwrQkF1QmU7TUF2QmYsMkJBdUJlLEVBR2Q7O0FJeEJGO0VKSkMscURBeUJlO0VBdkJmLGlEQXVCZTtNQXZCZiw2Q0F1QmUsRUFhZDs7QUlsQ0Y7RUpKQyxtQ0F5QmU7RUF2QmYsK0JBdUJlO01BdkJmLDJCQXVCZSxFQUdkOztBSXhCRjtFSkpDLG1DQXlCZTtFQXZCZiwrQkF1QmU7TUF2QmYsMkJBdUJlLEVBYWQ7O0FJbENGO0VKSkMsb0NBeUJlO0VBdkJmLGdDQXVCZTtNQXZCZiw0QkF1QmUsRUFHZDs7QUl4QkY7RUpKQyxvQ0F5QmU7RUF2QmYsZ0NBdUJlO01BdkJmLDRCQXVCZSxFQWFkOztBSWxDRjtFSkpDLG1DQXlCZTtFQXZCZiwrQkF1QmU7TUF2QmYsMkJBdUJlLEVBR2Q7O0FJeEJGO0VKSkMsbUNBeUJlO0VBdkJmLCtCQXVCZTtNQXZCZiwyQkF1QmUsRUFhZDs7QUx4QkY7Ozs7Ozs7Ozs7O0dBV0ciLCJmaWxlIjoiaGludC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhJTlQuY3NzIGlzIGEgdG9vbHRpcCBsaWJyYXJ5IG1hZGUgaW4gcHVyZSBDU1MuXG4gKlxuICogU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vY2hpbmNoYW5nL2hpbnQuY3NzXG4gKiBEZW1vOiBodHRwOi8va3VzaGFncmFnb3VyLmluL2xhYi9oaW50L1xuICpcbiAqIFJlbGVhc2UgdW5kZXIgVGhlIE1JVCBMaWNlbnNlXG4gKlxuICovXG5cbkBpbXBvcnQgXCJiYXNlL21peGluc1wiO1xuQGltcG9ydCBcImJhc2UvZm9udHNcIjtcblxuQGltcG9ydCBcInRoZW1lL2hpbnQvaGludC12YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtbWl4aW5zXCI7XG5AaW1wb3J0IFwidGhlbWUvaGludC9oaW50LWNvcmVcIjtcbkBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtc2l6ZXNcIjtcbkBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtYWx3YXlzXCI7XG5cbi8qIEZhbmNpZXIgY29sb3VyZWQgdG9vbHRpcHNcblx0QGltcG9ydCBcInRoZW1lL2hpbnQvaGludC12YXJpYWJsZXNcIlxuXHRAaW1wb3J0IFwidGhlbWUvaGludC9oaW50LW1peGluc1wiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtY29yZVwiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtcG9zaXRpb25cIlxuXHRAaW1wb3J0IFwidGhlbWUvaGludC9oaW50LXNpemVzXCJcblx0QGltcG9ydCBcInRoZW1lL2hpbnQvaGludC10aGVtZVwiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtY29sb3ItdHlwZXNcIlxuXHRAaW1wb3J0IFwidGhlbWUvaGludC9oaW50LWFsd2F5c1wiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtcm91bmRlZFwiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtZWZmZWN0c1wiXG5cdCovXG4iLCJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTdHJpbmcgUmVwbGFjZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiBcIlwiKSB7XG5cdCRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG5cdEBpZiAkaW5kZXgge1xuXHRcdEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcblx0fVxuXG5cdEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvbnQgRmFjZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIGZvbnQtZmFjZSgkbmFtZSwgJHBhdGgsICR3ZWlnaHQ6IG51bGwsICRzdHlsZTogbnVsbCwgJGV4dHM6IHN2ZyBlb3Qgd29mZjIgd29mZiB0dGYgKSB7XG5cdCRzcmM6IG51bGw7XG5cblx0JGV4dG1vZHM6IChcblx0XHRlb3Q6IFwiP1wiLFxuXHRcdHN2ZzogXCIjXCIgKyBzdHItcmVwbGFjZSgkbmFtZSwgXCIgXCIsIFwiX1wiKVxuXHQpO1xuXG5cdCRmb3JtYXRzOiAoXG5cdFx0b3RmOiBcIm9wZW50eXBlXCIsXG5cdFx0dHRmOiBcInRydWV0eXBlXCJcblx0KTtcblxuXHRAZWFjaCAkZXh0IGluICRleHRzIHtcblx0XHQkZXh0bW9kOiBpZihtYXAtaGFzLWtleSgkZXh0bW9kcywgJGV4dCksICRleHQgKyBtYXAtZ2V0KCRleHRtb2RzLCAkZXh0KSwgJGV4dCk7XG5cdFx0JGZvcm1hdDogaWYobWFwLWhhcy1rZXkoJGZvcm1hdHMsICRleHQpLCBtYXAtZ2V0KCRmb3JtYXRzLCAkZXh0KSwgJGV4dCk7XG5cdFx0JHNyYzogYXBwZW5kKCRzcmMsIHVybChxdW90ZSgkcGF0aCArIFwiLlwiICsgJGV4dG1vZCkpIGZvcm1hdChxdW90ZSgkZm9ybWF0KSksIGNvbW1hKTtcblx0fVxuXG5cdEBmb250LWZhY2Uge1xuXHRcdGZvbnQtZmFtaWx5OiBxdW90ZSgkbmFtZSk7XG5cdFx0Zm9udC1zdHlsZTogJHN0eWxlO1xuXHRcdGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXHRcdHNyYzogJHNyYztcblx0fVxufSIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcIkNsb3ZlcmxvY2tcIiwgXCIuLi9mb250cy9jbG92ZXJsb2NrLXJlZ3VsYXItbGF0aW5cIik7XG5AaW5jbHVkZSBmb250LWZhY2UoXCJDbG92ZXJsb2NrXCIsIFwiLi4vZm9udHMvY2xvdmVybG9jay1ib2xkLWxhdGluXCIsIGJvbGQpO1xuQGluY2x1ZGUgZm9udC1mYWNlKFwiQ2xvdmVybG9ja1wiLCBcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2staXRhbGljLWxhdGluXCIsIG51bGwsIGl0YWxpYyk7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcIkV4b2NNXCIsIFwiLi4vZm9udHMvZXhvYy1tZWRpdW1cIik7XG5AaW5jbHVkZSBmb250LWZhY2UoXCJFeG9jUlwiLCBcIi4uL2ZvbnRzL2V4b2MtcmVndWxhclwiKTtcblxuLy8gQ3lyaWxsaWNcbkBpbmNsdWRlIGZvbnQtZmFjZShcIlJVRXhvY01cIiwgXCIuLi9mb250cy9jeXJpbGxpYy1leG9jLW1lZGl1bVwiKTtcbkBpbmNsdWRlIGZvbnQtZmFjZShcIlJVRXhvY1JcIiwgXCIuLi9mb250cy9jeXJpbGxpYy1leG9jLXJlZ3VsYXJcIik7XG5AaW5jbHVkZSBmb250LWZhY2UoXCJMYXRvY1wiLCBcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLXJlZ3VsYXJcIik7XG5AaW5jbHVkZSBmb250LWZhY2UoXCJMYXRvY1wiLCBcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGRcIiwgYm9sZCk7XG5AaW5jbHVkZSBmb250LWZhY2UoXCJMYXRvY1wiLCBcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWl0YWxpY1wiLCBudWxsLCBpdGFsaWMpO1xuQGluY2x1ZGUgZm9udC1mYWNlKFwiTGF0b2NcIiwgXCIuLi9mb250cy9jeXJpbGxpYy1sYXRvYy1ib2xkaXRhbGljXCIsIGJvbGQsIGl0YWxpYyk7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRjbG92ZXJsb2NrOlx0XHRDbG92ZXJsb2NrLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4kZXhvYy1tZWRpdW06XHRcdEV4b2NNLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGV4b2MtcmVndWxhcjpcdFx0RXhvY1IsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiRjeXJpbGxpYy1leG9jLW1lZGl1bTpcdFJVRXhvY00sIHNhbnMtc2VyaWY7XG4kY3lyaWxsaWMtZXhvYy1yZWd1bGFyOlx0UlVFeG9jUiwgc2Fucy1zZXJpZjtcbiRjeXJpbGxpYy1sYXRvYzogTGF0b2MsIHNhbnMtc2VyaWY7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBmb250LWhlYWRlci1tZWRpdW0oKSB7XG5cdCY6bGFuZyhlbikge1xuXHRcdGZvbnQtZmFtaWx5OiAkZXhvYy1tZWRpdW07IH1cblx0JjpsYW5nKHJ1KSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRjeXJpbGxpYy1leG9jLW1lZGl1bTsgfSB9XG5cbkBtaXhpbiBmb250LWhlYWRlci1yZWd1bGFyKCkge1xuXHQmOmxhbmcoZW4pIHtcblx0XHRmb250LWZhbWlseTogJGV4b2MtcmVndWxhcjsgfVxuXHQmOmxhbmcocnUpIHtcblx0XHRmb250LWZhbWlseTogJGN5cmlsbGljLWV4b2MtcmVndWxhcjsgfSB9XG5cbkBtaXhpbiBmb250LXBhcmFncmFwaCgpIHtcblx0JjpsYW5nKGVuKSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRjbG92ZXJsb2NrOyB9XG5cdCY6bGFuZyhydSkge1xuXHRcdGZvbnQtZmFtaWx5OiAkY3lyaWxsaWMtbGF0b2M7IH0gfVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWl4aW4gc3R5bGUtaDEoKSB7XG5cdEBpbmNsdWRlIGZvbnQtaGVhZGVyLXJlZ3VsYXIoKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLWgxO1xuXHRjb2xvcjogJGgxX2NvbG9yOyB9XG5cbkBtaXhpbiBzdHlsZS1oMigpIHtcblx0QGluY2x1ZGUgZm9udC1wYXJhZ3JhcGgoKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXNpemU6IDEuM2VtO1xuXHRjb2xvcjogJGgyLWNvbG9yOyB9XG5cbkBtaXhpbiBzdHlsZS1oMygpIHtcblx0QGluY2x1ZGUgZm9udC1wYXJhZ3JhcGgoKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXNpemU6IDEuMTVlbTtcblx0Y29sb3I6ICM5OTk7IH1cblxuQG1peGluIHN0eWxlLXRvcG5hdigpIHtcblx0QGluY2x1ZGUgZm9udC1oZWFkZXItbWVkaXVtKCk7XG5cdC8vXHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlXG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Ly9mb250LXNpemU6IDEuMWVtIC8vIERvbid0IHRvdWNoIHRoaXM7IGl0IGNoYW5nZXMgYmFzZWQgb24gd2lkdGhcblx0Y29sb3I6ICNFRUU7IH1cblxuQG1peGluIHN0eWxlLXBhcmFncmFwaCgpIHtcblx0QGluY2x1ZGUgZm9udC1wYXJhZ3JhcGgoKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRjb2xvcjogJHRleHQtd2hpdGU7IH1cblxuQG1peGluIHN0eWxlLW1lbnUoKSB7XG5cdEBpbmNsdWRlIGZvbnQtaGVhZGVyLW1lZGl1bSgpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtc2l6ZTogMC45NzVlbTtcblx0Y29sb3I6ICM3Nzc7IH1cblxuQG1peGluIHN0eWxlLW5vdGUoKSB7XG5cdEBpbmNsdWRlIGZvbnQtcGFyYWdyYXBoKCk7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC1zaXplOiAwLjhlbTtcblx0Y29sb3I6ICNDQ0M7IH1cblxuQG1peGluIHN0eWxlLXN1YnRsZSgpIHtcblx0QGluY2x1ZGUgZm9udC1wYXJhZ3JhcGgoKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXNpemU6IDAuOGVtO1xuXHRjb2xvcjogIzU1NTsgfVxuXG5AbWl4aW4gc3R5bGUtc3ViaGVhZGVyKCkge1xuXHRAaW5jbHVkZSBmb250LXBhcmFncmFwaCgpO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdGZvbnQtc2l6ZTogMS4xZW07XG5cdGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yOyB9XG5cbkBtaXhpbiBzdHlsZS1hcnRpY2xlLWRhdGUoKSB7XG5cdEBpbmNsdWRlIGZvbnQtcGFyYWdyYXBoKCk7XG5cdGZvbnQtc2l6ZTogMC45ZW07IH1cblxuXG4iLCIvKipcbiAqIHNvdXJjZTogaGludC1jb3JlLnNjc3NcbiAqXG4gKiBEZWZpbmVzIHRoZSBiYXNpYyBzdHlsaW5nIGZvciB0aGUgdG9vbHRpcC5cbiAqIEVhY2ggdG9vbHRpcCBpcyBtYWRlIG9mIDIgcGFydHM6XG4gKiBcdDEpIGJvZHkgKDphZnRlcilcbiAqIFx0MikgYXJyb3cgKDpiZWZvcmUpXG4gKlxuICogQ2xhc3NlcyBhZGRlZDpcbiAqIFx0MSkgaGludFxuICovXG5cbltjbGFzcyo9XCIjeyRoaW50UHJlZml4fVwiXSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHQvLyBIQUNLOiBUcmlnZ2VyIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHJlbmRlcmluZywgb3RoZXJ3aXNlIHRyYW5zZm9ybSB3YXMgbm90XG5cdFx0Ly8gd29ya2luZyBvbiBhIGhpZGRlbiBlbGVtZW50XG5cdFx0QGluY2x1ZGUgdmVuZG9yKCd0cmFuc2Zvcm0nLCB0cmFuc2xhdGUzZCgwLCAwLCAwKSk7XG5cblx0XHQvLyBIQUNLOiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4gYmVjYXVzZSBJRSAmIE9wZXJhIGRvbid0IHN1cHBvcnRcblx0XHQvLyBwb2ludGVyLWV2ZW50cyBvbiBIVE1MIGNvbnRlbnQgeWV0IGJlY2F1c2Ugb2Ygd2hpY2ggaG92ZXJpbmcgYSBoaWRkZW4gdG9vbHRpcFxuXHRcdC8vIHNob3dzIHRoZSB0b29sdGlwLlxuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHotaW5kZXg6ICRoaW50WkluZGV4O1xuXHRcdC8vIHNob3VsZG4ndCByZWNlaXZlIHBvaW50ZXIgZXZlbnRzLCBvdGhlcndpc2UgZXZlbiBob3ZlcmluZyB0b29sdGlwIHdpbGwgbWFrZSBpdCBhcHBlYXJcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdC8vIEBpbmNsdWRlIHZlbmRvcigndHJhbnNpdGlvbicsIG9wYWNpdHkgMC4zcyBlYXNlKTtcblx0XHRAaW5jbHVkZSB2ZW5kb3IoJ3RyYW5zaXRpb24nLCAwLjJzIGVhc2UpO1xuXHRcdEBpbmNsdWRlIHZlbmRvcigndHJhbnNpdGlvbi1kZWxheScsICRoaW50SGlkZURlbGF5KTtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLCAmOmhvdmVyOmFmdGVyIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHQmOmhvdmVyOmJlZm9yZSwgJjpob3ZlcjphZnRlciB7XG5cdFx0Ly8gJGhpbnRTaG93RGVsYXkgd2lsbCBhcHBseSBhcyBzb29uIGFzIGVsZW1lbnQgaXMgaG92ZXJlZC5cblx0XHRAaW5jbHVkZSB2ZW5kb3IoJ3RyYW5zaXRpb24tZGVsYXknLCAkaGludFNob3dEZWxheSk7XG5cdH1cblxuXHQvKipcblx0ICogdG9vbHRpcCBhcnJvd1xuXHQgKi9cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6ICRoaW50QXJyb3dCb3JkZXJXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHQvLyBtb3ZlIHotaW5kZXggMSB1cCB0aGFuIDphZnRlciBzbyB0aGF0IGl0IHNob3dzIG92ZXIgYm94LXNoYWRvd1xuXHRcdHotaW5kZXg6ICRoaW50WkluZGV4ICsgMTtcblx0fVxuXG5cdC8qKlxuXHQgKiB0b29sdGlwIGJvZHlcblx0ICovXG5cdCY6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGZvbnQtcGFyYWdyYXBoKCk7XG5cdFx0YmFja2dyb3VuZDogJGhpbnREZWZhdWx0Q29sb3I7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdHBhZGRpbmc6ICRoaW50VmVydGljYWxQYWRkaW5nICRoaW50SG9yaXpvbnRhbFBhZGRpbmc7XG5cdFx0Zm9udC1zaXplOiAkaGludEZvbnRTaXplO1xuXHRcdGxpbmUtaGVpZ2h0OiAkaGludEZvbnRTaXplOyAvLyBWZXJ0aWNhbCBjZW50ZXJpbmcuXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gUHJldmVudCBicmVha2luZyB0byBuZXcgbGluZS5cblx0fVxuXHQvLyBBbHdheXMgZ2V0IGNvbnRlbnQgZnJvbSBhcmlhLWxhYmVsIGF0dHJpYnV0ZS5cblx0JlthcmlhLWxhYmVsXTphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cihhcmlhLWxhYmVsKTsgLy8gVGhlIG1hZ2ljIVxuXHR9XG5cdC8vIElmIHRoZSBgZGF0YS1oaW50YCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgdXNlIGl0LlxuXHQvLyBUaGlzIG1pZ2h0IGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIGluIHN1cHBvcnQgb2YgYTExeS5cblx0JltkYXRhLWhpbnRdOmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtaGludCk7IC8vIFRoZSBtYWdpYyFcblx0fVxufVxuXG4vLyBIaWRlIHRvb2x0aXBzIGlmIGFueSBvZiB0aGUgc3VwcG9ydGVkIGF0dHJpYnV0ZXMgaXMgZW1wdHkuXG5bYXJpYS1sYWJlbD0nJ10sXG5bZGF0YS1oaW50PScnXSB7XG5cdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cbiIsIi8qKlxuICogSElOVC5jc3MgaXMgYSB0b29sdGlwIGxpYnJhcnkgbWFkZSBpbiBwdXJlIENTUy5cbiAqXG4gKiBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGluY2hhbmcvaGludC5jc3NcbiAqIERlbW86IGh0dHA6Ly9rdXNoYWdyYWdvdXIuaW4vbGFiL2hpbnQvXG4gKlxuICogUmVsZWFzZSB1bmRlciBUaGUgTUlUIExpY2Vuc2VcbiAqXG4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDbG92ZXJsb2NrXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvY2xvdmVybG9jay1yZWd1bGFyLWxhdGluLnN2ZyNDbG92ZXJsb2NrXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvY2xvdmVybG9jay1yZWd1bGFyLWxhdGluLmVvdD9cIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIuLi9mb250cy9jbG92ZXJsb2NrLXJlZ3VsYXItbGF0aW4ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2stcmVndWxhci1sYXRpbi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2stcmVndWxhci1sYXRpbi50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsb3ZlcmxvY2tcIjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvY2xvdmVybG9jay1ib2xkLWxhdGluLnN2ZyNDbG92ZXJsb2NrXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvY2xvdmVybG9jay1ib2xkLWxhdGluLmVvdD9cIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIuLi9mb250cy9jbG92ZXJsb2NrLWJvbGQtbGF0aW4ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2stYm9sZC1sYXRpbi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2stYm9sZC1sYXRpbi50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsb3ZlcmxvY2tcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2staXRhbGljLWxhdGluLnN2ZyNDbG92ZXJsb2NrXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvY2xvdmVybG9jay1pdGFsaWMtbGF0aW4uZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2staXRhbGljLWxhdGluLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9jbG92ZXJsb2NrLWl0YWxpYy1sYXRpbi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2Nsb3ZlcmxvY2staXRhbGljLWxhdGluLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiRXhvY01cIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9leG9jLW1lZGl1bS5zdmcjRXhvY01cIikgZm9ybWF0KFwic3ZnXCIpLCB1cmwoXCIuLi9mb250cy9leG9jLW1lZGl1bS5lb3Q/XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vZm9udHMvZXhvYy1tZWRpdW0ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2V4b2MtbWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvZXhvYy1tZWRpdW0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJFeG9jUlwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2V4b2MtcmVndWxhci5zdmcjRXhvY1JcIikgZm9ybWF0KFwic3ZnXCIpLCB1cmwoXCIuLi9mb250cy9leG9jLXJlZ3VsYXIuZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL2ZvbnRzL2V4b2MtcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvZXhvYy1yZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvZXhvYy1yZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUlVFeG9jTVwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWV4b2MtbWVkaXVtLnN2ZyNSVUV4b2NNXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtZXhvYy1tZWRpdW0uZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWV4b2MtbWVkaXVtLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1leG9jLW1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWV4b2MtbWVkaXVtLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUlVFeG9jUlwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWV4b2MtcmVndWxhci5zdmcjUlVFeG9jUlwiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWV4b2MtcmVndWxhci5lb3Q/XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtZXhvYy1yZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1leG9jLXJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1leG9jLXJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJMYXRvY1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLXJlZ3VsYXIuc3ZnI0xhdG9jXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtbGF0b2MtcmVndWxhci5lb3Q/XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtbGF0b2MtcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtbGF0b2MtcmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLXJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJMYXRvY1wiO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1sYXRvYy1ib2xkLnN2ZyNMYXRvY1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGQuZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1sYXRvYy1ib2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b2NcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWl0YWxpYy5zdmcjTGF0b2NcIikgZm9ybWF0KFwic3ZnXCIpLCB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1sYXRvYy1pdGFsaWMuZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtbGF0b2MtaXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvY3lyaWxsaWMtbGF0b2MtaXRhbGljLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b2NcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1sYXRvYy1ib2xkaXRhbGljLnN2ZyNMYXRvY1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGRpdGFsaWMuZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGRpdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2N5cmlsbGljLWxhdG9jLWJvbGRpdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9jeXJpbGxpYy1sYXRvYy1ib2xkaXRhbGljLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG4vKipcbiAqIHNvdXJjZTogaGludC1jb3JlLnNjc3NcbiAqXG4gKiBEZWZpbmVzIHRoZSBiYXNpYyBzdHlsaW5nIGZvciB0aGUgdG9vbHRpcC5cbiAqIEVhY2ggdG9vbHRpcCBpcyBtYWRlIG9mIDIgcGFydHM6XG4gKiBcdDEpIGJvZHkgKDphZnRlcilcbiAqIFx0MikgYXJyb3cgKDpiZWZvcmUpXG4gKlxuICogQ2xhc3NlcyBhZGRlZDpcbiAqIFx0MSkgaGludFxuICovXG5bY2xhc3MqPVwiaGludC0tXCJdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qKlxuXHQgKiB0b29sdGlwIGFycm93XG5cdCAqL1xuICAvKipcblx0ICogdG9vbHRpcCBib2R5XG5cdCAqLyB9XG4gIFtjbGFzcyo9XCJoaW50LS1cIl06YmVmb3JlLCBbY2xhc3MqPVwiaGludC0tXCJdOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDEwMDAwMDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjJzIGVhc2U7XG4gICAgLW1vei10cmFuc2l0aW9uOiAwLjJzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMG1zO1xuICAgIC1tb3otdHJhbnNpdGlvbi1kZWxheTogMG1zO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBtczsgfVxuICBbY2xhc3MqPVwiaGludC0tXCJdOmhvdmVyOmJlZm9yZSwgW2NsYXNzKj1cImhpbnQtLVwiXTpob3ZlcjphZnRlciB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIFtjbGFzcyo9XCJoaW50LS1cIl06aG92ZXI6YmVmb3JlLCBbY2xhc3MqPVwiaGludC0tXCJdOmhvdmVyOmFmdGVyIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDEwMG1zO1xuICAgIC1tb3otdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7IH1cbiAgW2NsYXNzKj1cImhpbnQtLVwiXTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB6LWluZGV4OiAxMDAwMDAxOyB9XG4gIFtjbGFzcyo9XCJoaW50LS1cIl06YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICBbY2xhc3MqPVwiaGludC0tXCJdOmFmdGVyOmxhbmcoZW4pIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBDbG92ZXJsb2NrLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gICAgW2NsYXNzKj1cImhpbnQtLVwiXTphZnRlcjpsYW5nKHJ1KSB7XG4gICAgICBmb250LWZhbWlseTogTGF0b2MsIHNhbnMtc2VyaWY7IH1cbiAgW2NsYXNzKj1cImhpbnQtLVwiXVthcmlhLWxhYmVsXTphZnRlciB7XG4gICAgY29udGVudDogYXR0cihhcmlhLWxhYmVsKTsgfVxuICBbY2xhc3MqPVwiaGludC0tXCJdW2RhdGEtaGludF06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaW50KTsgfVxuXG5bYXJpYS1sYWJlbD0nJ106YmVmb3JlLCBbYXJpYS1sYWJlbD0nJ106YWZ0ZXIsXG5bZGF0YS1oaW50PScnXTpiZWZvcmUsXG5bZGF0YS1oaW50PScnXTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIHNvdXJjZTogaGludC1wb3NpdGlvbi5zY3NzXG4gKlxuICogRGVmaW5lcyB0aGUgcG9zaXRvbmluZyBsb2dpYyBmb3IgdGhlIHRvb2x0aXBzLlxuICpcbiAqIENsYXNzZXMgYWRkZWQ6XG4gKiBcdDEpIGhpbnQtLXRvcFxuICogXHQyKSBoaW50LS1ib3R0b21cbiAqIFx0MykgaGludC0tbGVmdFxuICogXHQ0KSBoaW50LS1yaWdodFxuICovXG4vKipcbiAqIHNldCBkZWZhdWx0IGNvbG9yIGZvciB0b29sdGlwIGFycm93c1xuICovXG4uaGludC0tdG9wLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG5cbi5oaW50LS10b3AtcmlnaHQ6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG5cbi5oaW50LS10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG5cbi5oaW50LS1ib3R0b20tbGVmdDpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cblxuLmhpbnQtLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cblxuLmhpbnQtLWJvdHRvbTpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cblxuLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxuXG4uaGludC0tcmlnaHQ6YmVmb3JlIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cblxuLyoqXG4gKiB0b3AgdG9vbHRpcFxuICovXG4uaGludC0tdG9wOmJlZm9yZSB7XG4gIG1hcmdpbi1ib3R0b206IC0xMXB4OyB9XG5cbi5oaW50LS10b3A6YmVmb3JlLCAuaGludC0tdG9wOmFmdGVyIHtcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7IH1cblxuLmhpbnQtLXRvcDpiZWZvcmUge1xuICBsZWZ0OiBjYWxjKDUwJSAtIDZweCk7IH1cblxuLmhpbnQtLXRvcDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG5cbi5oaW50LS10b3A6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cblxuLmhpbnQtLXRvcDpob3ZlcjphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLThweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC04cHgpOyB9XG5cbi8qKlxuICogYm90dG9tIHRvb2x0aXBcbiAqL1xuLmhpbnQtLWJvdHRvbTpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiAtMTFweDsgfVxuXG4uaGludC0tYm90dG9tOmJlZm9yZSwgLmhpbnQtLWJvdHRvbTphZnRlciB7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlOyB9XG5cbi5oaW50LS1ib3R0b206YmVmb3JlIHtcbiAgbGVmdDogY2FsYyg1MCUgLSA2cHgpOyB9XG5cbi5oaW50LS1ib3R0b206YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4uaGludC0tYm90dG9tOmhvdmVyOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpOyB9XG5cbi5oaW50LS1ib3R0b206aG92ZXI6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDhweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KTsgfVxuXG4vKipcbiAqIHJpZ2h0IHRvb2x0aXBcbiAqL1xuLmhpbnQtLXJpZ2h0OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDsgfVxuXG4uaGludC0tcmlnaHQ6YWZ0ZXIge1xuICBtYXJnaW4tYm90dG9tOiAtMTVweDsgfVxuXG4uaGludC0tcmlnaHQ6YmVmb3JlLCAuaGludC0tcmlnaHQ6YWZ0ZXIge1xuICBsZWZ0OiAxMDAlO1xuICBib3R0b206IDUwJTsgfVxuXG4uaGludC0tcmlnaHQ6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cblxuLmhpbnQtLXJpZ2h0OmhvdmVyOmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cblxuLyoqXG4gKiBsZWZ0IHRvb2x0aXBcbiAqL1xuLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTFweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDsgfVxuXG4uaGludC0tbGVmdDphZnRlciB7XG4gIG1hcmdpbi1ib3R0b206IC0xNXB4OyB9XG5cbi5oaW50LS1sZWZ0OmJlZm9yZSwgLmhpbnQtLWxlZnQ6YWZ0ZXIge1xuICByaWdodDogMTAwJTtcbiAgYm90dG9tOiA1MCU7IH1cblxuLmhpbnQtLWxlZnQ6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7IH1cblxuLmhpbnQtLWxlZnQ6aG92ZXI6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTsgfVxuXG4vKipcbiAqIHRvcC1sZWZ0IHRvb2x0aXBcbiAqL1xuLmhpbnQtLXRvcC1sZWZ0OmJlZm9yZSB7XG4gIG1hcmdpbi1ib3R0b206IC0xMXB4OyB9XG5cbi5oaW50LS10b3AtbGVmdDpiZWZvcmUsIC5oaW50LS10b3AtbGVmdDphZnRlciB7XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogNTAlOyB9XG5cbi5oaW50LS10b3AtbGVmdDpiZWZvcmUge1xuICBsZWZ0OiBjYWxjKDUwJSAtIDZweCk7IH1cblxuLmhpbnQtLXRvcC1sZWZ0OmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cblxuLmhpbnQtLXRvcC1sZWZ0OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cblxuLmhpbnQtLXRvcC1sZWZ0OmhvdmVyOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG5cbi5oaW50LS10b3AtbGVmdDpob3ZlcjphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKC04cHgpOyB9XG5cbi8qKlxuICogdG9wLXJpZ2h0IHRvb2x0aXBcbiAqL1xuLmhpbnQtLXRvcC1yaWdodDpiZWZvcmUge1xuICBtYXJnaW4tYm90dG9tOiAtMTFweDsgfVxuXG4uaGludC0tdG9wLXJpZ2h0OmJlZm9yZSwgLmhpbnQtLXRvcC1yaWdodDphZnRlciB7XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogNTAlOyB9XG5cbi5oaW50LS10b3AtcmlnaHQ6YmVmb3JlIHtcbiAgbGVmdDogY2FsYyg1MCUgLSA2cHgpOyB9XG5cbi5oaW50LS10b3AtcmlnaHQ6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uaGludC0tdG9wLXJpZ2h0OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4OyB9XG5cbi5oaW50LS10b3AtcmlnaHQ6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cblxuLmhpbnQtLXRvcC1yaWdodDpob3ZlcjphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG5cbi8qKlxuICogYm90dG9tLWxlZnQgdG9vbHRpcFxuICovXG4uaGludC0tYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgbWFyZ2luLXRvcDogLTExcHg7IH1cblxuLmhpbnQtLWJvdHRvbS1sZWZ0OmJlZm9yZSwgLmhpbnQtLWJvdHRvbS1sZWZ0OmFmdGVyIHtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7IH1cblxuLmhpbnQtLWJvdHRvbS1sZWZ0OmJlZm9yZSB7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gNnB4KTsgfVxuXG4uaGludC0tYm90dG9tLWxlZnQ6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uaGludC0tYm90dG9tLWxlZnQ6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMTJweDsgfVxuXG4uaGludC0tYm90dG9tLWxlZnQ6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cblxuLmhpbnQtLWJvdHRvbS1sZWZ0OmhvdmVyOmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKDhweCk7IH1cblxuLyoqXG4gKiBib3R0b20tcmlnaHQgdG9vbHRpcFxuICovXG4uaGludC0tYm90dG9tLXJpZ2h0OmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IC0xMXB4OyB9XG5cbi5oaW50LS1ib3R0b20tcmlnaHQ6YmVmb3JlLCAuaGludC0tYm90dG9tLXJpZ2h0OmFmdGVyIHtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7IH1cblxuLmhpbnQtLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICBsZWZ0OiBjYWxjKDUwJSAtIDZweCk7IH1cblxuLmhpbnQtLWJvdHRvbS1yaWdodDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5oaW50LS1ib3R0b20tcmlnaHQ6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogLTEycHg7IH1cblxuLmhpbnQtLWJvdHRvbS1yaWdodDpob3ZlcjpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxuXG4uaGludC0tYm90dG9tLXJpZ2h0OmhvdmVyOmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cblxuLyoqXG4gKiBzb3VyY2U6IGhpbnQtc2l6ZXMuc2Nzc1xuICpcbiAqIERlZmluZXMgd2lkdGggcmVzdHJpY3RlZCB0b29sdGlwcyB0aGF0IGNhbiBzcGFuXG4gKiBhY3Jvc3MgbXVsdGlwbGUgbGluZXMuXG4gKlxuICogQ2xhc3NlcyBhZGRlZDpcbiAqIFx0MSkgaGludC0tc21hbGxcbiAqIFx0MikgaGludC0tbWVkaXVtXG4gKiBcdDMpIGhpbnQtLWxhcmdlXG4gKlxuICovXG4uaGludC0tc21hbGw6YWZ0ZXIsXG4uaGludC0tbWVkaXVtOmFmdGVyLFxuLmhpbnQtLWxhcmdlOmFmdGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLmhpbnQtLXNtYWxsOmFmdGVyIHtcbiAgd2lkdGg6IDgwcHg7IH1cblxuLmhpbnQtLW1lZGl1bTphZnRlciB7XG4gIHdpZHRoOiAxNTBweDsgfVxuXG4uaGludC0tbGFyZ2U6YWZ0ZXIge1xuICB3aWR0aDogMzAwcHg7IH1cblxuLyoqXG4gKiBzb3VyY2U6IGhpbnQtYWx3YXlzLnNjc3NcbiAqXG4gKiBEZWZpbmVzIGEgcGVyc2lzdGVkIHRvb2x0aXAgd2hpY2ggc2hvd3MgYWx3YXlzLlxuICpcbiAqIENsYXNzZXMgYWRkZWQ6XG4gKiBcdDEpIGhpbnQtLWFsd2F5c1xuICpcbiAqL1xuLmhpbnQtLWFsd2F5czphZnRlciwgLmhpbnQtLWFsd2F5czpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tdG9wOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tdG9wOmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLThweCk7IH1cblxuLmhpbnQtLWFsd2F5cy5oaW50LS10b3AtbGVmdDpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTsgfVxuXG4uaGludC0tYWx3YXlzLmhpbnQtLXRvcC1sZWZ0OmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHRyYW5zbGF0ZVkoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHRyYW5zbGF0ZVkoLThweCk7IH1cblxuLmhpbnQtLWFsd2F5cy5oaW50LS10b3AtcmlnaHQ6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cblxuLmhpbnQtLWFsd2F5cy5oaW50LS10b3AtcmlnaHQ6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTsgfVxuXG4uaGludC0tYWx3YXlzLmhpbnQtLWJvdHRvbTpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxuXG4uaGludC0tYWx3YXlzLmhpbnQtLWJvdHRvbTphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cblxuLmhpbnQtLWFsd2F5cy5oaW50LS1ib3R0b20tbGVmdDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKDhweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKDhweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSg4cHgpOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tYm90dG9tLXJpZ2h0OmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tYm90dG9tLXJpZ2h0OmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cblxuLmhpbnQtLWFsd2F5cy5oaW50LS1sZWZ0OmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tbGVmdDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpOyB9XG5cbi5oaW50LS1hbHdheXMuaGludC0tcmlnaHQ6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cblxuLmhpbnQtLWFsd2F5cy5oaW50LS1yaWdodDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpOyB9XG5cbi8qIEZhbmNpZXIgY29sb3VyZWQgdG9vbHRpcHNcblx0QGltcG9ydCBcInRoZW1lL2hpbnQvaGludC12YXJpYWJsZXNcIlxuXHRAaW1wb3J0IFwidGhlbWUvaGludC9oaW50LW1peGluc1wiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtY29yZVwiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtcG9zaXRpb25cIlxuXHRAaW1wb3J0IFwidGhlbWUvaGludC9oaW50LXNpemVzXCJcblx0QGltcG9ydCBcInRoZW1lL2hpbnQvaGludC10aGVtZVwiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtY29sb3ItdHlwZXNcIlxuXHRAaW1wb3J0IFwidGhlbWUvaGludC9oaW50LWFsd2F5c1wiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtcm91bmRlZFwiXG5cdEBpbXBvcnQgXCJ0aGVtZS9oaW50L2hpbnQtZWZmZWN0c1wiXG5cdCovXG4iLCIvLyBoaW50LW1peGlucy5zY3NzXG4vL1xuLy8gUGxhY2UgdG8gc3RvcmUgY29tbW9uIG1peGlucy5cblxuLy8gVmVuZG9yIHByZWZpeGVyIG1peGluLlxuQG1peGluIHZlbmRvcigkcHJvcGVydHksICR2YWx1ZSkge1xuXHQtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuXHQtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuXHQjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbn1cblxuLy8gR2VuZXJhdGVzIGJvcmRlci1jb2xvciBydWxlcyBmb3IgYWxsIHBvc3NpYmxlIHBvc2l0aW9uc1xuQG1peGluIGFycm93LWJvcmRlci1jb2xvcigkY29sb3IpIHtcblx0QGVhY2ggJHBvc2l0aW9uIGluIHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodCB7XG5cdFx0QGlmICRwb3NpdGlvbiA9PSB0b3Agb3IgJHBvc2l0aW9uID09IGJvdHRvbSB7XG5cdFx0XHQvLyBMb29wIGZ1cnRoZXIgZm9yIGNsYXNzZXMgbGlrZSAudG9wLWxlZnQsIGJvdHRvbS1yaWdodCBldGNcblx0XHRcdEBlYWNoICR4RGlyIGluIGxlZnQsIHJpZ2h0IHtcblx0XHRcdFx0Ji4jeyRoaW50UHJlZml4fSN7JHBvc2l0aW9ufS0jeyR4RGlyfTpiZWZvcmUge1xuXHRcdFx0XHRcdGJvcmRlci0jeyRwb3NpdGlvbn0tY29sb3I6ICRjb2xvcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLiN7JGhpbnRQcmVmaXh9I3skcG9zaXRpb259OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItI3skcG9zaXRpb259LWNvbG9yOiAkY29sb3I7XG5cdFx0fVxuXHR9XG59XG5cbi8vIG1peGluIHRvIHNldCBtYXJnaW4gb24gdG9vbHRpcCB1c2luZyB0cmFuc2xhdGUgdHJhbnNmb3JtXG4vLyAkcHJvcGVydHlcbkBtaXhpbiBzZXQtbWFyZ2luKCRwcm9wZXJ0eSwgJHRyYW5zaXRpb25EaXJlY3Rpb24sICR0cmFuc2xhdGVYOiAwKSB7XG5cdCR2YWx1ZTogdW5xdW90ZShcIiN7JHByb3BlcnR5fSgjeyRoaW50VHJhbnNpdGlvbkRpc3RhbmNlICogJHRyYW5zaXRpb25EaXJlY3Rpb259KVwiKTtcblx0JjpiZWZvcmUge1xuXHRcdEBpbmNsdWRlIHZlbmRvcigndHJhbnNmb3JtJywgJHZhbHVlKTtcblx0fVxuXHQmOmFmdGVyIHtcblx0XHRAaWYgJHRyYW5zbGF0ZVggIT0gMCB7XG5cdFx0XHQvLyBGb3IgdmVydGljYWwgdG9vbHRpcHMsIHdlIG5lZWQgdG8gYW5pbWF0ZSBpbiB5LWRpcmVjdGlvblxuXHRcdFx0Ly8gcmV0YWluaW5nIGl0cyB4LXRyYW5zZm9ybS5cblx0XHRcdEBpbmNsdWRlIHZlbmRvcigndHJhbnNmb3JtJywgdHJhbnNsYXRlWCgkdHJhbnNsYXRlWCkgJHZhbHVlKTtcblx0XHR9XG5cdFx0QGVsc2Uge1xuXHRcdFx0QGluY2x1ZGUgdmVuZG9yKCd0cmFuc2Zvcm0nLCAkdmFsdWUpO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gaGludC12YXJpYWJsZXMuc2Nzc1xuLy9cbi8vIERlY2xhcmVzIHNvbWUgdmFyaWFibGVzIHVzZWQgd2l0aGluIHRoZSBsaWJyYXJ5LlxuXG4vLyBQcmVmaXggZm9yIGFsbCBjbGFzc2VzLiBCeSBkZWZhdWx0LCBCRU0gbmFtaW5nIGNvbnZlbnRpb24gaXMgdXNlZFxuJGhpbnRQcmVmaXg6ICdoaW50LS0nICFkZWZhdWx0O1xuXG4vLyBmb250IHNpemVcbiRoaW50Rm9udFNpemU6IDE1cHggIWRlZmF1bHQ7XG5cbi8vIHBhZGRpbmdzXG4kaGludFZlcnRpY2FsUGFkZGluZzogOHB4ICFkZWZhdWx0O1xuJGhpbnRIb3Jpem9udGFsUGFkZGluZzogMTBweCAhZGVmYXVsdDtcblxuLy8gZGVmYXVsdCB0b29sdGlwIGhlaWdodFxuJGhpbnRUb29sdGlwSGVpZ2h0OiAkaGludEZvbnRTaXplICsgMiAqICRoaW50VmVydGljYWxQYWRkaW5nICFkZWZhdWx0O1xuXG4vLyBib3JkZXItd2lkdGggZm9yIHRvb2x0aXAgYXJyb3dcbiRoaW50QXJyb3dCb3JkZXJXaWR0aDogNnB4ICFkZWZhdWx0O1xuXG4vLyBob3Jpem9udGFsIGFycm93IG9mZnNldFxuJGhpbnRBcnJvd09mZnNldFg6IDIgKiAkaGludEFycm93Qm9yZGVyV2lkdGggIWRlZmF1bHQ7XG5cbi8vIHRleHQtc2hhZG93IGRhcmtlbiBwZXJjZW50YWdlXG4kaGludFRleHRTaGFkb3dEYXJrZW5BbW91bnQ6IDI1JSAhZGVmYXVsdDtcblxuLy8gdHJhbnNpdGlvbiBkaXN0YW5jZVxuJGhpbnRUcmFuc2l0aW9uRGlzdGFuY2U6IDhweCAhZGVmYXVsdDtcblxuLy8gRGVsYXkgaW4gc2hvd2luZyB0aGUgdG9vbHRpcHMuXG4kaGludFNob3dEZWxheTogMTAwbXMgIWRlZmF1bHQ7XG5cbi8vIERlbGF5IGluIGhpZGluZyB0aGUgdG9vbHRpcHMuXG4kaGludEhpZGVEZWxheTogMG1zICFkZWZhdWx0O1xuXG4vLyB6LWluZGV4IGZvciB0b29sdGlwc1xuJGhpbnRaSW5kZXg6IDEwMDAwMDAgIWRlZmF1bHQ7XG5cbi8vIFNpemUgb3B0aW9uc1xuJGhpbnRTaXplU21hbGw6IDgwcHggIWRlZmF1bHQ7XG4kaGludFNpemVNZWRpdW06IDE1MHB4ICFkZWZhdWx0O1xuJGhpbnRTaXplTGFyZ2U6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLyBWYXJpb3VzIGNvbG9yc1xuLy8gRGVmYXVsdCBjb2xvciBpcyBibGFja2lzaFxuJGhpbnREZWZhdWx0Q29sb3I6IHJnYmEoMCwwLDAsMC45KSAhZGVmYXVsdDtcblxuLy8gRXJyb3IgY29sb3JcbiRoaW50RXJyb3JDb2xvcjogaHNsKDEsIDQwJSwgNTAlKSAhZGVmYXVsdDtcblxuLy8gV2FybmluZyBjb2xvclxuJGhpbnRXYXJuaW5nQ29sb3I6IGhzbCgzOCwgNDYlLCA1NCUpICFkZWZhdWx0O1xuXG4vLyBJbmZvIENvbG9yXG4kaGludEluZm9Db2xvcjogaHNsKDIwMCwgNTAlLCA0NSUpICFkZWZhdWx0O1xuXG4vLyBTdWNjZXNzIENvbG9yXG4kaGludFN1Y2Nlc3NDb2xvcjogaHNsKDEyMSwgMzIlLCA0MCUpICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBzb3VyY2U6IGhpbnQtcG9zaXRpb24uc2Nzc1xuICpcbiAqIERlZmluZXMgdGhlIHBvc2l0b25pbmcgbG9naWMgZm9yIHRoZSB0b29sdGlwcy5cbiAqXG4gKiBDbGFzc2VzIGFkZGVkOlxuICogXHQxKSBoaW50LS10b3BcbiAqIFx0MikgaGludC0tYm90dG9tXG4gKiBcdDMpIGhpbnQtLWxlZnRcbiAqIFx0NCkgaGludC0tcmlnaHRcbiAqL1xuXG5AbWl4aW4gdmVydGljYWwtcG9zaXRpb25lZC10b29sdGlwKCRwcm9wZXJ0eVksICR0cmFuc2l0aW9uRGlyZWN0aW9uLCAkeERpcmVjdGlvbjowKSB7XG5cdCY6YmVmb3JlIHtcblx0XHQvLyBicmluZyBhcnJvdyBpbnNpZGUgc28gdGhhdCBpdCBhbmltYXRlcyB0byBub3JtYWwgcG9zaXRpb24gd2hlbiBzaG93bi5cblx0XHQvLyBIQUNLOiArMXB4IHRvIGF2b2lkIHRoZSAxIHB4IHdoaXRlIHNwYWNlIGJldHdlZW4gYXJyb3cgYW5kIGJvZHkgZHVyaW5nIHRyYW5zaXRpb24uXG5cdFx0bWFyZ2luLSN7JHByb3BlcnR5WX06IC0yICogJGhpbnRBcnJvd0JvcmRlcldpZHRoICsgMXB4O1xuXHR9XG5cblx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdCN7JHByb3BlcnR5WX06IDEwMCU7XG5cdFx0bGVmdDogNTAlOyAvLyBnZXQgdG9wLWxlZnQgY29ybmVyIGluIGNlbnRlclxuXHR9XG5cblx0JjpiZWZvcmUge1xuXHRcdGxlZnQ6IGNhbGMoNTAlIC0gI3skaGludEFycm93Qm9yZGVyV2lkdGh9KTsgLy8gZ2V0IGFycm93IGNlbnRlciBhbGlnbmVkIHdpdGggY29udGVudFxuXHR9XG5cblx0JHRyYW5zbGF0ZVg6IC01MCU7XG5cdEBpZiAkeERpcmVjdGlvbiA9PSAtMSB7XG5cdFx0JHRyYW5zbGF0ZVg6IC0xMDAlO1xuXHR9XG5cdEBlbHNlaWYgJHhEaXJlY3Rpb24gPT0gMSB7XG5cdFx0JHRyYW5zbGF0ZVg6IDA7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRAaW5jbHVkZSB2ZW5kb3IoJ3RyYW5zZm9ybScsIHRyYW5zbGF0ZVgoJHRyYW5zbGF0ZVgpKTtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdEBpZiAkeERpcmVjdGlvbiAhPSAwIHtcblx0XHRcdC8vIGJyaW5nIGJhY2sgdGhlIHRvb2x0aXAgYnkgc29tZSBvZmZzZXQgc28gdGhhdCBhcnJvdyBkb2Vzbid0IHN0aWNrIGF0IGVuZFxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0keERpcmVjdGlvbiAqICRoaW50QXJyb3dPZmZzZXRYO1xuXHRcdH1cblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdEBpbmNsdWRlIHNldC1tYXJnaW4oJ3RyYW5zbGF0ZVknLCAkdHJhbnNpdGlvbkRpcmVjdGlvbiwgJHRyYW5zbGF0ZVgpO1xuXHR9XG59XG5cbkBtaXhpbiBob3Jpem9udGFsLXBvc2l0aW9uZWQtdG9vbHRpcCgkcHJvcGVydHlYLCAkdHJhbnNpdGlvbkRpcmVjdGlvbikge1xuXHQmOmJlZm9yZSB7XG5cdFx0Ly8gYnJpbmcgYXJyb3cgaW5zaWRlIHNvIHRoYXQgaXQgYW5pbWF0ZXMgdG8gbm9ybWFsIHBvc2l0aW9uIHdoZW4gc2hvd25cblx0XHQvLyBIQUNLOiArMXB4IHRvIGF2b2lkIHRoZSAxIHB4IHdoaXRlIHNwYWNlIGJldHdlZW4gYXJyb3cgYW5kIGJvZHkgZHVyaW5nIHRyYW5zaXRpb24uXG5cdFx0bWFyZ2luLSN7JHByb3BlcnR5WH06IC0yICogJGhpbnRBcnJvd0JvcmRlcldpZHRoICsgMXB4O1xuXHRcdC8vIGJyaW5nIGJhY2sgdG8gY2VudGVyIHZlcnRpY2FsbHlcblx0XHRtYXJnaW4tYm90dG9tOiAtMSAqICRoaW50QXJyb3dCb3JkZXJXaWR0aDtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdC8vIGJyaW5nIGJhY2sgdG8gY2VudGVyXG5cdFx0bWFyZ2luLWJvdHRvbTogLTEgKiBmbG9vcigkaGludFRvb2x0aXBIZWlnaHQgLyAyKTtcblx0fVxuXG5cdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHQjeyRwcm9wZXJ0eVh9OiAxMDAlO1xuXHRcdGJvdHRvbTogNTAlO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0QGluY2x1ZGUgc2V0LW1hcmdpbigndHJhbnNsYXRlWCcsICR0cmFuc2l0aW9uRGlyZWN0aW9uKTtcblx0fVxufVxuXG5cbi8qKlxuICogc2V0IGRlZmF1bHQgY29sb3IgZm9yIHRvb2x0aXAgYXJyb3dzXG4gKi9cbkBpbmNsdWRlIGFycm93LWJvcmRlci1jb2xvcigkaGludERlZmF1bHRDb2xvcik7XG5cbi8qKlxuICogdG9wIHRvb2x0aXBcbiAqL1xuLiN7JGhpbnRQcmVmaXh9dG9wIHtcblx0QGluY2x1ZGUgdmVydGljYWwtcG9zaXRpb25lZC10b29sdGlwKCdib3R0b20nLCAtMSk7XG59XG5cbi8qKlxuICogYm90dG9tIHRvb2x0aXBcbiAqL1xuLiN7JGhpbnRQcmVmaXh9Ym90dG9tIHtcblx0QGluY2x1ZGUgdmVydGljYWwtcG9zaXRpb25lZC10b29sdGlwKCd0b3AnLCAxKTtcbn1cblxuLyoqXG4gKiByaWdodCB0b29sdGlwXG4gKi9cbi4jeyRoaW50UHJlZml4fXJpZ2h0IHtcblx0QGluY2x1ZGUgaG9yaXpvbnRhbC1wb3NpdGlvbmVkLXRvb2x0aXAoJ2xlZnQnLCAxKTtcbn1cblxuLyoqXG4gKiBsZWZ0IHRvb2x0aXBcbiAqL1xuLiN7JGhpbnRQcmVmaXh9bGVmdCB7XG5cdEBpbmNsdWRlIGhvcml6b250YWwtcG9zaXRpb25lZC10b29sdGlwKCdyaWdodCcsIC0xKTtcbn1cblxuLyoqXG4gKiB0b3AtbGVmdCB0b29sdGlwXG4gKi9cbi4jeyRoaW50UHJlZml4fXRvcC1sZWZ0IHtcblx0QGluY2x1ZGUgdmVydGljYWwtcG9zaXRpb25lZC10b29sdGlwKCdib3R0b20nLCAtMSwgLTEpO1xufVxuXG5cbi8qKlxuICogdG9wLXJpZ2h0IHRvb2x0aXBcbiAqL1xuLiN7JGhpbnRQcmVmaXh9dG9wLXJpZ2h0IHtcblx0QGluY2x1ZGUgdmVydGljYWwtcG9zaXRpb25lZC10b29sdGlwKCdib3R0b20nLCAtMSwgMSk7XG59XG5cbi8qKlxuICogYm90dG9tLWxlZnQgdG9vbHRpcFxuICovXG4uI3skaGludFByZWZpeH1ib3R0b20tbGVmdCB7XG5cdEBpbmNsdWRlIHZlcnRpY2FsLXBvc2l0aW9uZWQtdG9vbHRpcCgndG9wJywgMSwgLTEpO1xufVxuXG5cbi8qKlxuICogYm90dG9tLXJpZ2h0IHRvb2x0aXBcbiAqL1xuLiN7JGhpbnRQcmVmaXh9Ym90dG9tLXJpZ2h0IHtcblx0QGluY2x1ZGUgdmVydGljYWwtcG9zaXRpb25lZC10b29sdGlwKCd0b3AnLCAxLCAxKTtcbn0iLCIvKipcbiAqIHNvdXJjZTogaGludC1zaXplcy5zY3NzXG4gKlxuICogRGVmaW5lcyB3aWR0aCByZXN0cmljdGVkIHRvb2x0aXBzIHRoYXQgY2FuIHNwYW5cbiAqIGFjcm9zcyBtdWx0aXBsZSBsaW5lcy5cbiAqXG4gKiBDbGFzc2VzIGFkZGVkOlxuICogXHQxKSBoaW50LS1zbWFsbFxuICogXHQyKSBoaW50LS1tZWRpdW1cbiAqIFx0MykgaGludC0tbGFyZ2VcbiAqXG4gKi9cblxuXG4uI3skaGludFByZWZpeH1zbWFsbCxcbi4jeyRoaW50UHJlZml4fW1lZGl1bSxcbi4jeyRoaW50UHJlZml4fWxhcmdlIHtcblx0JjphZnRlciB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHRsaW5lLWhlaWdodDogMS40ZW07XG5cdFx0d29yZC13cmFwOiBicmVhay13b3JkOyAvLyBFbnN1cmUgbG9uZyB3b3JkcyBkbyBub3Qgb3ZlcmZsb3cuXG5cdH1cbn1cblxuLiN7JGhpbnRQcmVmaXh9c21hbGwge1xuXHQmOmFmdGVyIHtcblx0XHR3aWR0aDogJGhpbnRTaXplU21hbGw7XG5cdH1cbn1cbi4jeyRoaW50UHJlZml4fW1lZGl1bSB7XG5cdCY6YWZ0ZXIge1xuXHRcdHdpZHRoOiAkaGludFNpemVNZWRpdW07XG5cdH1cbn1cbi4jeyRoaW50UHJlZml4fWxhcmdlIHtcblx0JjphZnRlciB7XG5cdFx0d2lkdGg6ICRoaW50U2l6ZUxhcmdlO1xuXHR9XG59XG4iLCIvKipcbiAqIHNvdXJjZTogaGludC1hbHdheXMuc2Nzc1xuICpcbiAqIERlZmluZXMgYSBwZXJzaXN0ZWQgdG9vbHRpcCB3aGljaCBzaG93cyBhbHdheXMuXG4gKlxuICogQ2xhc3NlcyBhZGRlZDpcbiAqIFx0MSkgaGludC0tYWx3YXlzXG4gKlxuICovXG5cbi4jeyRoaW50UHJlZml4fWFsd2F5cyB7XG5cdCY6YWZ0ZXIsICY6YmVmb3JlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuXHQmLiN7JGhpbnRQcmVmaXh9dG9wIHtcblx0XHRAaW5jbHVkZSBzZXQtbWFyZ2luKCd0cmFuc2xhdGVZJywgLTEsIC01MCUpO1xuXG5cdFx0Ji1sZWZ0IHtcblx0XHRcdEBpbmNsdWRlIHNldC1tYXJnaW4oJ3RyYW5zbGF0ZVknLCAtMSwgLTEwMCUpO1xuXHRcdH1cblx0XHQmLXJpZ2h0IHtcblx0XHRcdEBpbmNsdWRlIHNldC1tYXJnaW4oJ3RyYW5zbGF0ZVknLCAtMSwgMCk7XG5cdFx0fVxuXHR9XG5cblx0Ji4jeyRoaW50UHJlZml4fWJvdHRvbSB7XG5cdFx0QGluY2x1ZGUgc2V0LW1hcmdpbigndHJhbnNsYXRlWScsIDEsIC01MCUpO1xuXHRcdCYtbGVmdCB7XG5cdFx0XHRAaW5jbHVkZSBzZXQtbWFyZ2luKCd0cmFuc2xhdGVZJywgMSwgLTEwMCUpO1xuXHRcdH1cblx0XHQmLXJpZ2h0IHtcblx0XHRcdEBpbmNsdWRlIHNldC1tYXJnaW4oJ3RyYW5zbGF0ZVknLCAxLCAwKTtcblx0XHR9XG5cdH1cblxuXHQmLiN7JGhpbnRQcmVmaXh9bGVmdCB7XG5cdFx0QGluY2x1ZGUgc2V0LW1hcmdpbigndHJhbnNsYXRlWCcsIC0xKTtcblx0fVxuXG5cdCYuI3skaGludFByZWZpeH1yaWdodCB7XG5cdFx0QGluY2x1ZGUgc2V0LW1hcmdpbigndHJhbnNsYXRlWCcsIDEpO1xuXHR9XG59XG5cbiJdfQ== */
