@charset "UTF-8";
/**
  * PAGE-SPECIFIC STYLESHEET: Home
  *
  * Import common styles and house page-specific styles for Home page.
  */
/**
  * COMMON STYLES
  *
  * Defines the styles to import that are required by virtually all pages.
  */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
  * SCSS BREAKPOINTS
  *
  * Define breakpoints for media query use and export them for use with JS.
  */
/*
example usage:
@include media(">=phone-small") {...}
*/
:export {
  breakpointPhoneSmall: 320;
  breakpointPhoneLarge: 480;
  breakpointTablet: 768;
  breakpointLaptop: 992;
  breakpointDesktop: 1200;
  breakpointDesktopLarge: 1400;
  breakpointHd: 1920;
}

/**
  * SCSS VARIABLES
  */
/**
  * Dimensions:
  */
/**
  * Colors:
  */
/**
  * SCSS COLORS
  *
  * Define colors and export them for use with JS.
  */
:export {
  colorRed: #ff0000;
  colorRedOrange: #ff8000;
  colorOrange: #a8a800;
  colorGold: #61c200;
  colorYellow: #00b300;
  colorYellowGreen: #00b35a;
  colorGreen: #009999;
  colorCyan: #0080ff;
  colorBlue: #3333ff;
  colorIndigo: #8000ff;
  colorViolet: #cc00cc;
  colorMagenta: #ff0080;
  colorBlack: #000000;
  colorWhite: #ffffff;
}

.black {
  background-color: #000000;
}
.black.color-text-only {
  background-color: unset;
  color: #000000;
}

.white {
  background-color: #ffffff;
}
.white.color-text-only {
  background-color: unset;
  color: #ffffff;
}

.red {
  background-color: #ff0000;
}
.red.color-text-only {
  background-color: unset;
  color: #ff0000;
}

.redorange {
  background-color: #ff8000;
}
.redorange.color-text-only {
  background-color: unset;
  color: #ff8000;
}

.orange {
  background-color: #a8a800;
}
.orange.color-text-only {
  background-color: unset;
  color: #a8a800;
}

.gold {
  background-color: #61c200;
}
.gold.color-text-only {
  background-color: unset;
  color: #61c200;
}

.yellow {
  background-color: #00b300;
}
.yellow.color-text-only {
  background-color: unset;
  color: #00b300;
}

.yellowgreen {
  background-color: #00b35a;
}
.yellowgreen.color-text-only {
  background-color: unset;
  color: #00b35a;
}

.green {
  background-color: #009999;
}
.green.color-text-only {
  background-color: unset;
  color: #009999;
}

.cyan {
  background-color: #0080ff;
}
.cyan.color-text-only {
  background-color: unset;
  color: #0080ff;
}

.blue {
  background-color: #3333ff;
}
.blue.color-text-only {
  background-color: unset;
  color: #3333ff;
}

.indigo {
  background-color: #8000ff;
}
.indigo.color-text-only {
  background-color: unset;
  color: #8000ff;
}

.violet {
  background-color: #cc00cc;
}
.violet.color-text-only {
  background-color: unset;
  color: #cc00cc;
}

.magenta {
  background-color: #ff0080;
}
.magenta.color-text-only {
  background-color: unset;
  color: #ff0080;
}

/**
  * FONT STYLES
  *
  * Define @font-face styles.
  */
@font-face {
  font-family: Montserrat;
  src: url(../fonts/Montserrat-Regular.ttf);
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: Montserrat;
  src: url(../fonts/Montserrat-Bold.ttf);
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: PressStart2P;
  src: url(../fonts/PressStart2P-Regular.ttf);
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: VT323;
  src: url(../fonts/VT323-Regular.ttf);
  font-weight: 400;
  font-style: normal;
}
/**
  * SCSS MIXINS
  *
  * Standardized style chunks, provided as both SCSS mixins and HTML classes.
  */
.wrap {
  width: 100%;
  height: auto;
}

.inner-wrap {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
}

.mar-top {
  margin-top: 20px;
  transition: margin 300ms;
}
@media (min-width: 480px) {
  .mar-top {
    margin-top: 25px;
  }
}
@media (min-width: 768px) {
  .mar-top {
    margin-top: 30px;
  }
}
@media (min-width: 992px) {
  .mar-top {
    margin-top: 60px;
  }
}
@media (min-width: 1200px) {
  .mar-top {
    margin-top: 80px;
  }
}

.mar-bottom {
  margin-bottom: 20px;
  transition: margin 300ms;
}
@media (min-width: 480px) {
  .mar-bottom {
    margin-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .mar-bottom {
    margin-bottom: 30px;
  }
}
@media (min-width: 992px) {
  .mar-bottom {
    margin-bottom: 60px;
  }
}
@media (min-width: 1200px) {
  .mar-bottom {
    margin-bottom: 80px;
  }
}

.mar-horizontal {
  margin-top: 20px;
  transition: margin 300ms;
  margin-bottom: 20px;
  transition: margin 300ms;
}
@media (min-width: 480px) {
  .mar-horizontal {
    margin-top: 25px;
  }
}
@media (min-width: 768px) {
  .mar-horizontal {
    margin-top: 30px;
  }
}
@media (min-width: 992px) {
  .mar-horizontal {
    margin-top: 60px;
  }
}
@media (min-width: 1200px) {
  .mar-horizontal {
    margin-top: 80px;
  }
}
@media (min-width: 480px) {
  .mar-horizontal {
    margin-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .mar-horizontal {
    margin-bottom: 30px;
  }
}
@media (min-width: 992px) {
  .mar-horizontal {
    margin-bottom: 60px;
  }
}
@media (min-width: 1200px) {
  .mar-horizontal {
    margin-bottom: 80px;
  }
}

.mar-right {
  margin-right: 20px;
  transition: margin 300ms;
  max-width: calc(100% - 20px);
}
@media (min-width: 480px) {
  .mar-right {
    margin-right: 25px;
    max-width: calc(100% - 25px);
  }
}
@media (min-width: 768px) {
  .mar-right {
    margin-right: 30px;
    max-width: calc(100% - 30px);
  }
}
@media (min-width: 992px) {
  .mar-right {
    margin-right: 60px;
    max-width: calc(100% - 60px);
  }
}
@media (min-width: 1200px) {
  .mar-right {
    margin-right: 80px;
    max-width: calc(100% - 80px);
  }
}

.mar-left {
  margin-left: 20px;
  transition: margin 300ms;
  max-width: calc(100% - 20px);
}
@media (min-width: 480px) {
  .mar-left {
    margin-left: 25px;
    max-width: calc(100% - 25px);
  }
}
@media (min-width: 768px) {
  .mar-left {
    margin-left: 30px;
    max-width: calc(100% - 30px);
  }
}
@media (min-width: 992px) {
  .mar-left {
    margin-left: 60px;
    max-width: calc(100% - 60px);
  }
}
@media (min-width: 1200px) {
  .mar-left {
    margin-left: 80px;
    max-width: calc(100% - 80px);
  }
}

.mar-horizontal {
  margin-left: 20px;
  margin-right: 20px;
  transition: margin 300ms;
  max-width: calc(100% - 40px);
}
@media (min-width: 480px) {
  .mar-horizontal {
    margin-left: 25px;
    margin-right: 25px;
    max-width: calc(100% - 50px);
  }
}
@media (min-width: 768px) {
  .mar-horizontal {
    margin-left: 30px;
    margin-right: 30px;
    max-width: calc(100% - 60px);
  }
}
@media (min-width: 992px) {
  .mar-horizontal {
    margin-left: 60px;
    margin-right: 60px;
    max-width: calc(100% - 120px);
  }
}
@media (min-width: 1200px) {
  .mar-horizontal {
    margin-left: 80px;
    margin-right: 80px;
    max-width: calc(100% - 160px);
  }
}

.pad-top {
  padding-top: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .pad-top {
    padding-top: 25px;
  }
}
@media (min-width: 768px) {
  .pad-top {
    padding-top: 40px;
  }
}
@media (min-width: 992px) {
  .pad-top {
    padding-top: 50px;
  }
}
@media (min-width: 1200px) {
  .pad-top {
    padding-top: 60px;
  }
}

.pad-bottom {
  padding-bottom: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .pad-bottom {
    padding-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .pad-bottom {
    padding-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .pad-bottom {
    padding-bottom: 50px;
  }
}
@media (min-width: 1200px) {
  .pad-bottom {
    padding-bottom: 60px;
  }
}

.pad-left {
  padding-left: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .pad-left {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .pad-left {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .pad-left {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .pad-left {
    padding-left: 80px;
  }
}

.pad-right {
  padding-right: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .pad-right {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .pad-right {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .pad-right {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .pad-right {
    padding-right: 80px;
  }
}

.pad-vertical {
  padding-top: 20px;
  transition: padding 300ms;
  padding-bottom: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .pad-vertical {
    padding-top: 25px;
  }
}
@media (min-width: 768px) {
  .pad-vertical {
    padding-top: 40px;
  }
}
@media (min-width: 992px) {
  .pad-vertical {
    padding-top: 50px;
  }
}
@media (min-width: 1200px) {
  .pad-vertical {
    padding-top: 60px;
  }
}
@media (min-width: 480px) {
  .pad-vertical {
    padding-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .pad-vertical {
    padding-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .pad-vertical {
    padding-bottom: 50px;
  }
}
@media (min-width: 1200px) {
  .pad-vertical {
    padding-bottom: 60px;
  }
}

.pad-horizontal {
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .pad-horizontal {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .pad-horizontal {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .pad-horizontal {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .pad-horizontal {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .pad-horizontal {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .pad-horizontal {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .pad-horizontal {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .pad-horizontal {
    padding-left: 80px;
  }
}

.button {
  margin: 3rem 0;
  padding: 10px 15px;
  display: block;
  background-color: #999;
  text-transform: uppercase;
  font-weight: bold;
  color: #f9f9f9;
  cursor: pointer;
  border-radius: 2px;
  border: 2px solid #f9f9f9;
}

.lcd {
  font-family: VT323;
  color: #ffffff;
  text-shadow: 0 0 10px #ffffff, 0 0 0px #ffffff;
  background-color: #222;
  overflow: visible;
  position: relative;
  border-top: 2px solid #3c3c3c;
  border-right: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  border-left: 2px solid #3c3c3c;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.no-scroll {
  overflow: hidden;
}

/**
  * HTML ELEMENT STYLES
  *
  * Style definitions for global element selectors.
  */
* {
  box-sizing: border-box;
}

html {
  height: 100%;
  line-height: 1.7;
  font-size: 62.5%;
}

body {
  min-height: 100%;
  margin: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background-color: #111;
  font-family: "Montserrat", sans-serif;
  font-size: 1.6rem;
  color: #ffffff;
  position: relative;
  z-index: 1;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  display: block;
  font-weight: 600;
}

h1 {
  font-size: 2.4rem;
  margin-top: 0;
  margin-bottom: 2rem;
}

h2 {
  font-size: 2.2rem;
  margin-bottom: 1.9rem;
}

h3 {
  font-size: 2.1rem;
  margin-bottom: 1.8rem;
}

h4 {
  font-size: 2rem;
  margin-bottom: 1.7rem;
}

h5 {
  font-size: 1.9rem;
  margin-bottom: 1.6rem;
}

h6 {
  font-size: 1.8rem;
  margin-bottom: 1.5rem;
}

p {
  margin: 0 0 1.5rem 0;
  font-weight: 400;
}

a {
  text-decoration: none;
  color: #999;
}
ul, ol {
  margin: 1.5rem 0;
  padding: 0;
  list-style-position: inside;
}

/* begin button styles */
button {
  display: inline-block;
  border: none;
  padding: 0;
  margin: 0;
  text-decoration: none;
  background: none;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
}

/* end button styles */
blockquote {
  border-left: 5px solid #000000;
  margin: 1.5em 10px;
  padding: 0.5em 30px;
  quotes: "“";
}
blockquote:before {
  color: #ccc;
  content: open-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}
blockquote p {
  display: block;
}
blockquote p:first-of-type, blockquote p:nth-of-type(2) {
  font-size: 1.3rem;
}

/**
  * HEADER STYLES
  */
.header-wrap {
  width: 100%;
  height: auto;
  grid-row-start: 1;
  grid-row-end: 2;
  position: relative;
  top: 0;
  z-index: 9999;
  transition: background-color 200ms, border 200ms, box-shadow 200ms;
}
.header-overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  opacity: 0.7;
}
.header-overlay.bg-visible {
  opacity: 1;
}

.top-bar-bg {
  width: 100%;
  height: 45px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 6;
  display: none;
  transition: background-color 200ms;
}
@media (min-width: 768px) {
  .top-bar-bg {
    display: block;
  }
}

.header {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  height: 90px;
  padding-top: 0;
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 90px auto;
  transition: background-color 200ms;
}
.header.bg-visible {
  background-color: #222;
}
@media (min-width: 768px) {
  .header {
    height: 90px;
    grid-template-columns: 1fr;
    grid-template-rows: 120px 70px;
  }
}

.header-brand {
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
  margin-top: 0;
  margin-bottom: 0;
  padding-right: 0;
  height: 90px;
  grid-column: 1/span 1;
  grid-row: 1/span 1;
  position: relative;
  z-index: 5;
}
@media (min-width: 480px) {
  .header-brand {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .header-brand {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .header-brand {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .header-brand {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .header-brand {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .header-brand {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .header-brand {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .header-brand {
    padding-left: 80px;
  }
}
@media (min-width: 768px) {
  .header-brand {
    height: 0px;
    margin-top: 45px;
    margin-bottom: 45px;
  }
}
.header-brand a {
  height: 90px;
  display: flex;
  align-items: center;
  flex-direction: row;
}
@media (min-width: 768px) {
  .header-brand a {
    height: 0px;
  }
}
.header-brand a .logo-image {
  width: auto;
  height: 40px;
  margin-right: 15px;
  text-align: center;
  display: block;
}
.header-brand a .logo-text {
  display: block;
  color: #f9f9f9;
  text-align: left;
  padding-left: 0;
  font-weight: bold;
  display: none;
}
@media (min-width: 480px) {
  .header-brand a .logo-text {
    padding-left: 10px;
    font-size: 1rem;
  }
}
.header-brand a .logo-text .logo-text-title {
  margin: 0 auto;
  display: block;
  line-height: 0.9;
  font-size: 1rem;
}
.header-brand a .logo-text .logo-text-title span.registered {
  font-size: 0.7rem;
  font-weight: normal;
  vertical-align: super;
}
@media (min-width: 480px) {
  .header-brand a .logo-text .logo-text-title {
    font-size: 1.4rem;
  }
  .header-brand a .logo-text .logo-text-title span.registered {
    font-size: 0.9rem;
  }
}
.header-brand a .logo-text .logo-text-tagline {
  margin: 10px auto 0 auto;
  line-height: 0.8;
  font-size: 0.6rem;
  font-weight: lighter;
  font-style: italic;
  display: block;
  color: #f9f9f9;
}
@media (min-width: 480px) {
  .header-brand a .logo-text .logo-text-tagline {
    font-size: 1.1rem;
  }
}

.header-nav {
  width: 100%;
  height: 0;
  min-height: auto;
  position: absolute;
  top: 90px;
  display: none;
  overflow: hidden;
}
.header-nav.bg-visible {
  background-color: #222;
}
@media (min-width: 768px) {
  .header-nav {
    height: auto;
    min-height: 90px;
    display: block;
    top: 0;
    overflow: visible;
  }
}

.header-nav-main {
  width: 100%;
  padding-right: 0;
  padding-left: 0;
  height: auto;
  position: static;
  top: auto;
  right: auto;
  z-index: 6;
  display: block;
}
@media (min-width: 768px) {
  .header-nav-main {
    padding-right: 20px;
    transition: padding 300ms;
    padding-left: 20px;
    transition: padding 300ms;
    height: 45px;
    position: absolute;
    top: auto;
    bottom: 0;
    right: 0;
  }
}
@media (min-width: 768px) and (min-width: 480px) {
  .header-nav-main {
    padding-right: 25px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .header-nav-main {
    padding-right: 30px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  .header-nav-main {
    padding-right: 60px;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .header-nav-main {
    padding-right: 80px;
  }
}
@media (min-width: 768px) and (min-width: 480px) {
  .header-nav-main {
    padding-left: 25px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .header-nav-main {
    padding-left: 30px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  .header-nav-main {
    padding-left: 60px;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .header-nav-main {
    padding-left: 80px;
  }
}
.header-nav-main ul {
  width: 100%;
  height: auto;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  list-style: none;
}
@media (min-width: 768px) {
  .header-nav-main ul {
    width: auto;
    height: 45px;
    flex-direction: row;
    -moz-column-gap: 10px;
         column-gap: 10px;
    border-top: unset;
    justify-content: flex-end;
  }
}
.header-nav-main ul li {
  width: 100%;
  height: auto;
  list-style: none;
  border-top: unset;
  position: relative;
  z-index: 1;
  background-color: #222;
}
@media (min-width: 768px) {
  .header-nav-main ul li {
    width: auto;
    height: auto;
    min-height: 45px;
    background-color: unset;
    border-bottom: unset;
    transition: display 300ms;
  }
  .header-nav-main ul li:hover > ul {
    display: block;
  }
}
.header-nav-main ul li a {
  padding-left: 20px;
  transition: padding 300ms;
  width: 100%;
  height: 45px;
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #888888;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 1.2rem;
  color: #f9f9f9;
}
@media (min-width: 480px) {
  .header-nav-main ul li a {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .header-nav-main ul li a {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .header-nav-main ul li a {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .header-nav-main ul li a {
    padding-left: 80px;
  }
}
.header-nav-main ul li a:hover {
  color: #c6c6c6;
}
@media (min-width: 768px) {
  .header-nav-main ul li a {
    width: auto;
    height: 45px;
    padding: 0 5px;
    border-bottom: unset;
  }
}
.header-nav-main ul li .nav-chevron {
  width: 45px;
  height: 45px;
  display: flex;
  position: absolute;
  right: 0;
  align-items: center;
  justify-content: center;
  z-index: 2;
  cursor: pointer;
  color: #f9f9f9;
}
.header-nav-main ul li .nav-chevron:hover {
  color: #c6c6c6;
}
@media (min-width: 768px) {
  .header-nav-main ul li .nav-chevron {
    display: none;
  }
}
.header-nav-main ul li ul {
  width: 100%;
  height: auto;
  position: relative;
  top: 0;
  right: 0;
  left: auto;
  list-style: none;
  display: none;
}
@media (min-width: 768px) {
  .header-nav-main ul li ul {
    min-width: 320px;
    position: absolute;
    top: 45px;
    left: 0;
    right: auto;
    background-color: #222;
  }
}
.header-nav-main ul li ul li {
  width: 100%;
  min-height: 45px;
  height: auto;
  list-style: none;
  display: block;
}
@media (min-width: 768px) {
  .header-nav-main ul li ul li {
    height: 45px;
    border-top: 1px solid rgba(75, 75, 75, 0.5);
  }
  .header-nav-main ul li ul li:hover > ul {
    display: none;
  }
}
.header-nav-main ul li ul li a {
  padding-left: 3em;
  text-decoration: none;
}
@media (min-width: 768px) {
  .header-nav-main ul li ul li a {
    height: 45px;
    padding-right: 15px;
    padding-left: 15px;
  }
}
.header-nav-main ul li ul li ul li a {
  padding-left: 4.5em;
}
.header-nav-main ul li ul li ul li ul li a {
  padding-left: 6em;
}

.header-nav-top {
  padding-right: 0;
  padding-left: 0;
  width: 100%;
  height: auto;
  position: relative;
  top: auto;
  left: auto;
  z-index: 6;
  display: block;
  clear: both;
}
@media (min-width: 768px) {
  .header-nav-top {
    padding-right: 20px;
    transition: padding 300ms;
    padding-left: 20px;
    transition: padding 300ms;
    width: 100%;
    height: 45px;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 6;
  }
}
@media (min-width: 768px) and (min-width: 480px) {
  .header-nav-top {
    padding-right: 25px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .header-nav-top {
    padding-right: 30px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  .header-nav-top {
    padding-right: 60px;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .header-nav-top {
    padding-right: 80px;
  }
}
@media (min-width: 768px) and (min-width: 480px) {
  .header-nav-top {
    padding-left: 25px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .header-nav-top {
    padding-left: 30px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  .header-nav-top {
    padding-left: 60px;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .header-nav-top {
    padding-left: 80px;
  }
}
.header-nav-top ul {
  width: 100%;
  padding-right: 0;
  height: auto;
  margin: 0;
  display: flex;
  flex-direction: column;
  list-style: none;
  -moz-column-gap: 30px;
       column-gap: 30px;
  flex-flow: column;
}
@media (min-width: 768px) {
  .header-nav-top ul {
    width: auto;
    height: 45px;
    padding-right: 60px;
    flex-direction: row;
    justify-content: flex-end;
  }
}
.header-nav-top ul li {
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
  width: 100%;
  height: 45px;
  display: flex;
  align-items: center;
  list-style: none;
  border-bottom: 1px solid #888888;
  position: relative;
}
@media (min-width: 480px) {
  .header-nav-top ul li {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .header-nav-top ul li {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .header-nav-top ul li {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .header-nav-top ul li {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .header-nav-top ul li {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .header-nav-top ul li {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .header-nav-top ul li {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .header-nav-top ul li {
    padding-left: 80px;
  }
}
@media (min-width: 768px) {
  .header-nav-top ul li {
    width: auto;
    padding-right: 0;
    padding-left: 0;
    border-bottom: unset;
  }
}
.header-nav-top ul li a {
  height: 45px;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: bold;
  font-size: 12px;
  display: flex;
  align-items: center;
  color: #f9f9f9;
}
.header-nav-top ul li a:hover {
  color: #c6c6c6;
}
.slide-line {
  height: 3px;
  background-color: #f9f9f9;
}

.header-buttons {
  padding-right: 20px;
  transition: padding 300ms;
  width: auto;
  height: 90px;
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 6;
}
@media (min-width: 480px) {
  .header-buttons {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .header-buttons {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .header-buttons {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .header-buttons {
    padding-right: 80px;
  }
}
@media (min-width: 768px) {
  .header-buttons {
    height: 45px;
    padding-left: 0;
  }
}

.glass {
  padding: 8px 10px;
  display: flex;
  align-items: center;
  top: auto;
}
@media (min-width: 768px) {
  .glass {
    height: 45px;
    border: unset;
  }
}
.glass i {
  color: #f9f9f9;
}
.glass i:hover {
  color: #c6c6c6;
}
.burger {
  margin-left: 0;
  padding: 8px 10px;
  display: flex;
  align-items: center;
}
@media (min-width: 340px) {
  .burger {
    margin-left: 10px;
  }
}
@media (min-width: 768px) {
  .burger {
    display: none;
  }
}
.burger i {
  color: #f9f9f9;
}
.burger i:hover {
  color: #c6c6c6;
}

.header-search-wrap {
  width: 100%;
  height: auto;
  height: auto;
  display: none;
  position: absolute;
  top: 90px;
  left: 0;
  background-color: #222;
  z-index: 6;
}
@media (min-width: 768px) {
  .header-search-wrap {
    top: 45px;
    height: 0px;
  }
}
.header-search-wrap .site-search {
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .header-search-wrap .site-search {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .header-search-wrap .site-search {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .header-search-wrap .site-search {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .header-search-wrap .site-search {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .header-search-wrap .site-search {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .header-search-wrap .site-search {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .header-search-wrap .site-search {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .header-search-wrap .site-search {
    padding-left: 80px;
  }
}

/**
  * SITE SEARCH FORM STYLES
  */
.site-search {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  height: auto;
  padding: 40px 0;
  display: grid;
  grid-template-columns: 1fr 50px;
  grid-template-rows: auto;
}

.search-query {
  height: 50px;
  padding: 0;
  grid-column: 1/span 1;
  grid-row: 1;
  align-self: center;
}
.search-query label {
  width: 100%;
  max-width: 100%;
  height: 30px;
  color: #f9f9f9;
  display: block;
  text-transform: uppercase;
  text-align: left;
  display: none;
}
.search-query input {
  width: 100%;
  max-width: 100%;
  height: 50px;
  padding-left: 20px;
  border: 2px solid #f9f9f9;
  display: block;
  background-color: unset;
  color: #f9f9f9;
}

.search-submit {
  width: 50px;
  height: 50px;
  grid-column: 2/span 1;
  grid-row: 1;
  align-self: start;
  color: #222;
  font-size: 1.4rem;
  background-color: #f9f9f9;
  transition: background-color 200ms;
}
.search-submit:hover {
  background-color: #c6c6c6;
}

/**
  * CONTENT STYLES
  */
.main-wrap {
  width: 100%;
  height: auto;
  grid-row-start: 2;
  grid-row-end: 3;
  position: relative;
  z-index: 2;
  overflow: visible;
}

.main {
  height: 100%;
  position: relative;
  z-index: inherit;
}

.page-header-wrap {
  width: 100%;
  height: auto;
}

.page-header {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding-top: 20px;
  transition: padding 300ms;
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
}
@media (min-width: 480px) {
  .page-header {
    padding-top: 25px;
  }
}
@media (min-width: 768px) {
  .page-header {
    padding-top: 40px;
  }
}
@media (min-width: 992px) {
  .page-header {
    padding-top: 50px;
  }
}
@media (min-width: 1200px) {
  .page-header {
    padding-top: 60px;
  }
}
@media (min-width: 480px) {
  .page-header {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .page-header {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .page-header {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .page-header {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .page-header {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .page-header {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .page-header {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .page-header {
    padding-left: 80px;
  }
}
.page-content-wrap {
  width: 100%;
  height: auto;
  position: relative;
  z-index: inherit;
}

.page-content {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  position: relative;
  z-index: inherit;
}
@media (min-width: 768px) {
  .page-content {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
}

.page-content.side {
  grid-template-columns: 1fr 0px;
  grid-template-rows: auto auto;
}
@media (min-width: 768px) {
  .page-content.side {
    grid-template-columns: 1fr 320px;
    grid-template-rows: auto 0px;
  }
}

.page-main {
  width: 100%;
  padding-right: 0;
  grid-column: 1/span 1;
  grid-row: 2;
  position: relative;
  z-index: inherit;
}
@media (min-width: 768px) {
  .page-main {
    grid-column: 1/span 1;
    grid-row: 1;
  }
}

.page-section-wrap {
  width: 100%;
  height: auto;
  position: relative;
  z-index: inherit;
}

.page-section {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
  padding-bottom: 20px;
  transition: padding 300ms;
  /*@include pad-top;
  background-color: lighten($black, 10%);//lighten($darkestGray, 15%);
  border-radius: 0;

  @include media(">=laptop") {
   // margin: 0 10px;
    //padding: 5px;
    border-radius: 10px;
  }*/
}
@media (min-width: 480px) {
  .page-section {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .page-section {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .page-section {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .page-section {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .page-section {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .page-section {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .page-section {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .page-section {
    padding-left: 80px;
  }
}
@media (min-width: 480px) {
  .page-section {
    padding-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .page-section {
    padding-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .page-section {
    padding-bottom: 50px;
  }
}
@media (min-width: 1200px) {
  .page-section {
    padding-bottom: 60px;
  }
}

.side .page-main {
  padding-right: 0;
}
@media (min-width: 768px) {
  .side .page-main {
    padding-right: 100px;
  }
}

.page-sidebar {
  padding-bottom: 20px;
  transition: padding 300ms;
  width: 100%;
  grid-column: 1/span 1;
  grid-row: 1;
}
@media (min-width: 480px) {
  .page-sidebar {
    padding-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .page-sidebar {
    padding-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .page-sidebar {
    padding-bottom: 50px;
  }
}
@media (min-width: 1200px) {
  .page-sidebar {
    padding-bottom: 60px;
  }
}
@media (min-width: 768px) {
  .page-sidebar {
    grid-column: 2/span 1;
    grid-row: 1;
  }
}

/**
  * FOOTER STYLES
  */
.footer-wrap {
  grid-row-start: 3;
  grid-row-end: 4;
  position: relative;
  z-index: 0;
}

.footer {
  padding-bottom: 20px;
  transition: padding 300ms;
  text-align: center;
  overflow: hidden;
  color: #f9f9f9;
  position: relative;
  z-index: inherit;
}
@media (min-width: 480px) {
  .footer {
    padding-bottom: 25px;
  }
}
@media (min-width: 768px) {
  .footer {
    padding-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .footer {
    padding-bottom: 50px;
  }
}
@media (min-width: 1200px) {
  .footer {
    padding-bottom: 60px;
  }
}

.footer-nav {
  padding-bottom: 10px;
}
@media (min-width: 768px) {
  .footer-nav {
    width: auto;
  }
}
.footer-nav ul {
  width: 100%;
  height: auto;
  display: flex;
  display: inline-block;
  list-style: none;
  text-align: center;
}
@media (min-width: 768px) {
  .footer-nav ul {
    width: auto;
  }
}
.footer-nav ul li {
  padding-right: 20px;
  transition: padding 300ms;
  padding-left: 20px;
  transition: padding 300ms;
  width: 100%;
  list-style: none;
  position: relative;
  display: inline-block;
  position: relative;
  padding: 5px 10px;
}
@media (min-width: 480px) {
  .footer-nav ul li {
    padding-right: 25px;
  }
}
@media (min-width: 768px) {
  .footer-nav ul li {
    padding-right: 30px;
  }
}
@media (min-width: 992px) {
  .footer-nav ul li {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) {
  .footer-nav ul li {
    padding-right: 80px;
  }
}
@media (min-width: 480px) {
  .footer-nav ul li {
    padding-left: 25px;
  }
}
@media (min-width: 768px) {
  .footer-nav ul li {
    padding-left: 30px;
  }
}
@media (min-width: 992px) {
  .footer-nav ul li {
    padding-left: 60px;
  }
}
@media (min-width: 1200px) {
  .footer-nav ul li {
    padding-left: 80px;
  }
}
@media (min-width: 768px) {
  .footer-nav ul li {
    width: auto;
    padding: 0 10px;
  }
  .footer-nav ul li:after {
    content: "|";
    color: #f9f9f9;
    position: absolute;
    top: 0;
    right: -2px;
  }
  .footer-nav ul li:last-child:after {
    content: "";
  }
}
.footer-nav ul li a {
  width: 100%;
  padding: 0;
  position: relative;
  display: block;
  align-items: center;
  font-size: 1rem;
  text-decoration: underline;
  color: #888888;
  text-align: center;
}
@media (min-width: 768px) {
  .footer-nav ul li a {
    width: auto;
    padding: 0 5px;
  }
}

.copyright {
  margin: 0;
  padding: 0;
  font-size: 10px;
  color: #888888;
}

/**
  * MISCELLANEOUS STYLES
  */
.embed-container-wrap {
  width: 100%;
  max-width: 500px;
  margin: 20px auto;
}

.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  overflow: hidden;
  max-width: 100%;
  height: auto;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/**
  * KEY-WHIZ APP STYLES
  */
/* For Key-Whiz: */
.active {
  transition: all 0.2s;
}

.light-off {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
}

.light-on {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #666;
}

.light-on.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #ffffff;
}

.light-on.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #000000;
}

.light-on.black {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #000000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #1a1a1a 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(26, 26, 26, 0.4) 2px, rgba(26, 26, 26, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 0, 0.4) 2px, rgba(0, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#262626, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #ffffff;
}

.light-on.white {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #666;
}

.kw-setting-panel {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
}
@media (min-width: 992px) {
  .kw-setting-panel {
    margin: 5px;
  }
}

.no-highlight {
  -webkit-user-select: none;
  -moz-user-select: none;
  -o-user-select: none;
  user-select: none;
}

.page-header {
  display: none;
}

.page-section {
  padding: 0;
  position: relative;
  z-index: inherit;
}
.kw-section-title {
  width: 100%;
  height: 30px;
  border-bottom: 1px solid #222;
  margin: 0;
  background: linear-gradient(#222, #2c2c2c);
  font-size: 1.2rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #888888;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px 5px 0 0;
}

.kw-section-toggle {
  width: 30px;
  height: 30px;
  text-align: left;
  color: #ffffff;
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
  align-items: center;
}
@media (min-width: 768px) {
  .kw-section-toggle {
    display: none;
  }
}
.kw-section-toggle .chevron {
  width: 20px;
  height: 20px;
  padding-bottom: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.kw-section-toggle .chevron.active {
  padding-bottom: 0;
  padding-left: 2px;
}

select {
  padding: 0 10px;
  font-weight: 500;
}

.kw-settings-wrap {
  margin: 0;
  padding: 0 0 5px 0;
  position: relative;
  z-index: inherit;
  background-color: #1a1a1a;
  border-radius: 0;
}
@media (min-width: 992px) {
  .kw-settings-wrap {
    margin: 0 10px;
    padding: 5px;
    border-radius: 10px;
  }
}

.kw-settings {
  padding: 3px 0;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows: auto;
  position: relative;
  z-index: inherit;
  border-radius: 10px 10px 0 0;
}
@media (min-width: 768px) {
  .kw-settings {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 992px) {
  .kw-settings {
    padding: 0;
    grid-template-columns: 1fr 1fr 1fr;
  }
}

/*.kw-settings {
  padding: 20px 0;
  grid-column: 1 / span 3;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
}*/
.kw-setting-keys {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  grid-column: 1/span 3;
  grid-row: 1;
}
@media (min-width: 992px) {
  .kw-setting-keys {
    margin: 5px;
  }
}

.kw-setting-key-buttons {
  padding: 0 10px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-column-gap: 16px;
}
@media (min-width: 480px) {
  .kw-setting-key-buttons {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  }
}
@media (min-width: 1200px) {
  .kw-setting-key-buttons {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    grid-column-gap: 5px;
  }
}

.kw-setting-key-button {
  width: 100%;
  height: 30px;
  margin: 8px auto;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  font-weight: 600;
  font-size: 1.4rem;
}
.kw-setting-key-button.red {
  height: 36px;
  margin: 5px auto;
}
.kw-setting-key-button.active.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #ffffff;
}
.kw-setting-key-button.active.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-key-button.active.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
@media (min-width: 768px) {
  .kw-setting-key-button {
    font-size: 1.6rem;
  }
}
.kw-setting-intervals {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  grid-column: 1/span 3;
  grid-row: 4;
  margin: 10px 5px 0 5px;
}
@media (min-width: 992px) {
  .kw-setting-intervals {
    margin: 5px;
  }
}
@media (min-width: 768px) {
  .kw-setting-intervals {
    grid-column: 1/span 1;
    grid-row: 3;
  }
}
@media (min-width: 992px) {
  .kw-setting-intervals {
    grid-column: 2/span 1;
    grid-row: 2;
    margin: 5px;
  }
}

.kw-setting-interval-content {
  padding: 10px 0;
  height: calc(100% - 30px);
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-interval-content {
    padding: 10px 5px;
  }
}

.kw-setting-interval-circle {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 33px auto 40px auto;
  z-index: 1;
}

.kw-setting-interval {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 50px;
  height: 50px;
  position: absolute;
  top: 125px;
  left: 125px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 600;
  z-index: 2;
}
.kw-setting-interval.active.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  color: #ffffff;
}
.kw-setting-interval.active.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval.active.red + span {
  color: #ffffff;
}
.kw-setting-interval .kw-setting-interval-arpeggio {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 3px;
  left: 3px;
  border-radius: unset;
  background-color: unset;
  background-image: unset;
  z-index: 3;
  display: none;
  border: 3px solid #ffffff;
}
.kw-setting-interval .kw-setting-interval-arpeggio.active {
  display: flex;
}
.kw-setting-interval .kw-setting-interval-arpeggio.red.active ~ span {
  color: #ffffff;
}
.kw-setting-interval .kw-setting-interval-arpeggio.red {
  border-color: #ff0000;
}
.kw-setting-interval .kw-setting-interval-arpeggio.redorange {
  border-color: #ff8000;
}
.kw-setting-interval .kw-setting-interval-arpeggio.orange {
  border-color: #a8a800;
}
.kw-setting-interval .kw-setting-interval-arpeggio.gold {
  border-color: #61c200;
}
.kw-setting-interval .kw-setting-interval-arpeggio.yellow {
  border-color: #00b300;
}
.kw-setting-interval .kw-setting-interval-arpeggio.yellowgreen {
  border-color: #00b35a;
}
.kw-setting-interval .kw-setting-interval-arpeggio.green {
  border-color: #009999;
}
.kw-setting-interval .kw-setting-interval-arpeggio.cyan {
  border-color: #0080ff;
}
.kw-setting-interval .kw-setting-interval-arpeggio.blue {
  border-color: #3333ff;
}
.kw-setting-interval .kw-setting-interval-arpeggio.indigo {
  border-color: #8000ff;
}
.kw-setting-interval .kw-setting-interval-arpeggio.violet {
  border-color: #cc00cc;
}
.kw-setting-interval .kw-setting-interval-arpeggio.magenta {
  border-color: #ff0080;
}
.kw-setting-interval .kw-setting-interval-arpeggio.active.red + span {
  color: #ffffff;
}
.kw-setting-interval .kw-setting-interval-chord {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 5px;
  left: 5px;
  border-radius: 50%;
  z-index: 4;
  display: none;
  border: 2px solid #ffffff;
}
.kw-setting-interval .kw-setting-interval-chord.active {
  display: flex;
}
.kw-setting-interval .kw-setting-interval-chord.active + span {
  text-shadow: 1px 1px 10px rgba(255, 255, 255, 0.4), -1px -1px 10px rgba(255, 255, 255, 0.4), 1px -1px 10px rgba(255, 255, 255, 0.4), -1px 1px 10px rgba(255, 255, 255, 0.4);
}
.kw-setting-interval .kw-setting-interval-chord.active.red + span {
  color: #ffffff;
  text-shadow: unset;
}
.kw-setting-interval.red.light-on .kw-setting-interval-arpeggio.active + span {
  color: #000000;
}
.kw-setting-interval.red.light-on .kw-setting-interval-arpeggio.active.red + span {
  color: #ffffff;
}
.kw-setting-interval.red.light-on .kw-setting-interval-chord.active + span {
  color: #000000;
}
.kw-setting-interval.red.light-on .kw-setting-interval-chord.active.red + span {
  color: #ffffff;
}
.kw-setting-interval span {
  position: relative;
  z-index: 4;
}

.kw-setting-interval-minor {
  width: 34px;
  height: 34px;
  position: absolute;
  top: 133px;
  left: 133px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: 0.9em;
  color: #888888;
  z-index: 1;
}
.kw-setting-interval-minor.hide {
  display: none;
}

.kw-setting-interval-keysig {
  width: 20px;
  height: 20px;
  position: absolute;
  top: 140px;
  left: 140px;
  border-radius: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: 0.8em;
  color: #888888;
  z-index: 1;
}
.kw-setting-interval-keysig.hide {
  display: none;
}

/*.kw-setting-interval-spiral {
  position: absolute;
  top: 0;
  left: 0;
  width: 300px;
  height: 300px;
  margin: 0 auto;
}*/
.kw-setting-interval-label {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 30px;
  height: 22px;
  position: absolute;
  top: 141px;
  left: 135px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  font-weight: 500;
  z-index: 1;
  color: #222;
}
.kw-setting-interval-label.hide {
  display: none;
}
.kw-setting-interval-label.active span {
  color: #000000;
}
.kw-setting-interval-label.active.red span {
  color: #ffffff;
}
.kw-setting-interval-label.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio {
  width: 26px;
  height: 26px;
  position: absolute;
  background-color: unset;
  background-image: unset;
  border-radius: unset;
  display: none;
  z-index: 3;
  border: 2px solid #ffffff;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.active {
  display: flex;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.active ~ span {
  color: #000000;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.active.red ~ span {
  color: #ffffff;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.red.active ~ span {
  color: #ffffff;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.red {
  border-color: #ff0000;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.redorange {
  border-color: #ff8000;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.orange {
  border-color: #a8a800;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.gold {
  border-color: #61c200;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.yellow {
  border-color: #00b300;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.yellowgreen {
  border-color: #00b35a;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.green {
  border-color: #009999;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.cyan {
  border-color: #0080ff;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.blue {
  border-color: #3333ff;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.indigo {
  border-color: #8000ff;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.violet {
  border-color: #cc00cc;
}
.kw-setting-interval-label .kw-setting-interval-label-arpeggio.magenta {
  border-color: #ff0080;
}
.kw-setting-interval-label .kw-setting-interval-label-chord {
  width: 26px;
  height: 18px;
  position: absolute;
  top: 2px;
  left: 2px;
  border-radius: 4px;
  display: none;
  z-index: 2;
  border: 2px solid #ffffff;
}
.kw-setting-interval-label .kw-setting-interval-label-chord.active {
  display: flex;
}
.kw-setting-interval-label .kw-setting-interval-label-chord.active ~ span {
  color: #000000;
  text-shadow: 1px 1px 10px rgba(255, 255, 255, 0.4), -1px -1px 10px rgba(255, 255, 255, 0.4), 1px -1px 10px rgba(255, 255, 255, 0.4), -1px 1px 10px rgba(255, 255, 255, 0.4);
}
.kw-setting-interval-label .kw-setting-interval-label-chord.active.red ~ span {
  color: #ffffff;
  text-shadow: unset;
}
.kw-setting-interval-label.kw-setting-interval-label-extended {
  width: 26px;
  height: 20px;
  top: 145px;
  left: 137px;
  border-radius: 5px;
  font-size: 0.8em;
}
.kw-setting-interval-label.kw-setting-interval-label-extended span {
  font-size: 0.9rem;
}
.kw-setting-interval-label.kw-setting-interval-label-extended .kw-setting-interval-label-arpeggio {
  width: 24px;
  height: 18px;
  top: 1;
  left: 1;
}
.kw-setting-interval-label.kw-setting-interval-label-extended .kw-setting-interval-label-chord {
  width: 24px;
  height: 13px;
  top: 1px;
  left: 1px;
  border-radius: 4px;
}
.kw-setting-interval-label.kw-setting-interval-label-extended.kw-setting-interval-label-extended-extended {
  width: 24px;
  height: 18px;
  top: 138px;
  left: 138px;
  font-size: 0.65em;
  border-radius: 4px;
}
.kw-setting-interval-label.kw-setting-interval-label-extended.kw-setting-interval-label-extended-extended span {
  font-size: 0.8rem;
}
.kw-setting-interval-label.kw-setting-interval-label-extended.kw-setting-interval-label-extended-extended .kw-setting-interval-label-arpeggio {
  width: 20px;
  height: 16px;
  top: 1px;
  left: 2px;
}
.kw-setting-interval-label.kw-setting-interval-label-extended.kw-setting-interval-label-extended-extended .kw-setting-interval-label-chord {
  width: 20px;
  height: 16px;
  top: 1px;
  left: 2px;
  border-radius: 4px;
}
.kw-setting-interval-label span {
  position: relative;
  z-index: 3;
  font-size: 1.4rem;
  font-weight: bold;
}

.kw-setting-interval-label-ths-upper {
  position: absolute;
  top: 80px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  text-align: center;
  color: #888888;
}
.kw-setting-interval-label-ths-upper.hide {
  display: none;
}
.kw-setting-interval-label-ths-upper div {
  height: 185px;
  position: absolute;
  width: 20px;
  left: -10px;
  top: -115px;
  transform-origin: bottom center;
  text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
}
.kw-setting-interval-label-ths-upper div:nth-child(1) {
  transform: rotate(-30deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(2) {
  transform: rotate(-19deg);
  font-weight: bold;
}
.kw-setting-interval-label-ths-upper div:nth-child(3) {
  transform: rotate(-16deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(4) {
  transform: rotate(-13deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(5) {
  transform: rotate(-10deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(6) {
  transform: rotate(0deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(7) {
  transform: rotate(10deg);
  font-weight: bold;
}
.kw-setting-interval-label-ths-upper div:nth-child(8) {
  transform: rotate(13deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(9) {
  transform: rotate(16deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(10) {
  transform: rotate(19deg);
}
.kw-setting-interval-label-ths-upper div:nth-child(11) {
  transform: rotate(30deg);
}

.kw-setting-interval-label-ths-lower {
  position: absolute;
  top: 80px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  text-align: center;
  color: #888888;
}
.kw-setting-interval-label-ths-lower.hide {
  display: none;
}
.kw-setting-interval-label-ths-lower div {
  height: 185px;
  position: absolute;
  width: 20px;
  left: -10px;
  top: -115px;
  transform-origin: bottom center;
  text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
}
.kw-setting-interval-label-ths-lower div span {
  display: inline-block;
  transform: scale(-1, -1);
}
.kw-setting-interval-label-ths-lower div:nth-child(1) {
  transform: rotate(-210deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(1) span {
  display: inline-block;
  transform: scale(1, 1);
}
.kw-setting-interval-label-ths-lower div:nth-child(2) {
  transform: rotate(-199deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(3) {
  transform: rotate(-196deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(4) {
  transform: rotate(-193deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(5) {
  transform: rotate(-190deg);
  font-weight: bold;
}
.kw-setting-interval-label-ths-lower div:nth-child(6) {
  transform: rotate(180deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(7) {
  transform: rotate(190deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(8) {
  transform: rotate(193deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(9) {
  transform: rotate(196deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(10) {
  transform: rotate(199deg);
  font-weight: bold;
}
.kw-setting-interval-label-ths-lower div:nth-child(11) {
  transform: rotate(210deg);
}
.kw-setting-interval-label-ths-lower div:nth-child(11) span {
  display: inline-block;
  transform: scale(1, 1);
}

.kw-setting-interval-1 {
  transform: rotate(270deg) translate(125px) rotate(-270deg);
}

.kw-setting-interval-2 {
  transform: rotate(300deg) translate(125px) rotate(-300deg);
}

.kw-setting-interval-3 {
  transform: rotate(330deg) translate(125px) rotate(-330deg);
}

.kw-setting-interval-4 {
  transform: translate(125px);
}

.kw-setting-interval-5 {
  transform: rotate(30deg) translate(125px) rotate(-30deg);
}

.kw-setting-interval-6 {
  transform: rotate(60deg) translate(125px) rotate(-60deg);
}

.kw-setting-interval-7 {
  transform: rotate(90deg) translate(125px) rotate(-90deg);
}

.kw-setting-interval-8 {
  transform: rotate(120deg) translate(125px) rotate(-120deg);
}

.kw-setting-interval-9 {
  transform: rotate(150deg) translate(125px) rotate(-150deg);
}

.kw-setting-interval-10 {
  transform: rotate(180deg) translate(125px) rotate(-180deg);
}

.kw-setting-interval-11 {
  transform: rotate(210deg) translate(125px) rotate(-210deg);
}

.kw-setting-interval-12 {
  transform: rotate(240deg) translate(125px) rotate(-240deg);
}

.kw-setting-interval-minor-1 {
  transform: rotate(270deg) translate(80px) rotate(-270deg);
}

.kw-setting-interval-minor-2 {
  transform: rotate(300deg) translate(80px) rotate(-300deg);
}

.kw-setting-interval-minor-3 {
  transform: rotate(330deg) translate(80px) rotate(-330deg);
}

.kw-setting-interval-minor-4 {
  transform: translate(80px);
}

.kw-setting-interval-minor-5 {
  transform: rotate(30deg) translate(82px) rotate(-30deg);
}

.kw-setting-interval-minor-6 {
  transform: rotate(60deg) translate(82px) rotate(-60deg);
}

.kw-setting-interval-minor-7 {
  transform: rotate(90deg) translate(82px) rotate(-90deg);
}

.kw-setting-interval-minor-8 {
  transform: rotate(120deg) translate(82px) rotate(-120deg);
}

.kw-setting-interval-minor-9 {
  transform: rotate(150deg) translate(82px) rotate(-150deg);
}

.kw-setting-interval-minor-10 {
  transform: rotate(180deg) translate(82px) rotate(-180deg);
}

.kw-setting-interval-minor-11 {
  transform: rotate(210deg) translate(82px) rotate(-210deg);
}

.kw-setting-interval-minor-12 {
  transform: rotate(240deg) translate(82px) rotate(-240deg);
}

/*.kw-setting-interval-keysigs {
  position: absolute;
  width: 300px;
  height: 300px;
}*/
.kw-setting-interval-keysig-1 {
  transform: rotate(270deg) translate(45px) rotate(-270deg);
}

.kw-setting-interval-keysig-2 {
  transform: rotate(300deg) translate(45px) rotate(-300deg);
}

.kw-setting-interval-keysig-3 {
  transform: rotate(330deg) translate(45px) rotate(-330deg);
}

.kw-setting-interval-keysig-4 {
  transform: rotate(0deg) translate(45px) rotate(0deg);
}

.kw-setting-interval-keysig-5 {
  transform: rotate(30deg) translate(45px) rotate(-30deg);
}

.kw-setting-interval-keysig-6 {
  transform: rotate(60deg) translate(45px) rotate(-60deg);
}

.kw-setting-interval-keysig-7 {
  transform: rotate(90deg) translate(45px) rotate(-90deg);
}

.kw-setting-interval-keysig-8 {
  transform: rotate(120deg) translate(45px) rotate(-120deg);
}

.kw-setting-interval-keysig-9 {
  transform: rotate(150deg) translate(45px) rotate(-150deg);
}

.kw-setting-interval-keysig-10 {
  transform: rotate(180deg) translate(45px) rotate(-180deg);
}

.kw-setting-interval-keysig-11 {
  transform: rotate(210deg) translate(45px) rotate(-210deg);
}

.kw-setting-interval-keysig-12 {
  transform: rotate(240deg) translate(45px) rotate(-240deg);
}

.kw-setting-interval-keysig-double-a {
  height: 35px;
  transform: rotate(60deg) translate(43px) rotate(-90deg) translateX(4px);
  background-image: linear-gradient(transparent 0, transparent 49%, #888888 49%, #888888 51%, transparent 51%, transparent 100%);
}
.kw-setting-interval-keysig-double-a span {
  transform: rotate(30deg);
}
.kw-setting-interval-keysig-double-a span:first-child {
  position: absolute;
  top: -2px;
}
.kw-setting-interval-keysig-double-a span:nth-child(2) {
  position: absolute;
  bottom: -2px;
}

.kw-setting-interval-keysig-double-b {
  height: 35px;
  transform: rotate(90deg) translate(40px) rotate(-90deg) translateX(0px);
  background-image: linear-gradient(transparent 0, transparent 49%, #888888 49%, #888888 51%, transparent 51%, transparent 100%);
}
.kw-setting-interval-keysig-double-b span:first-child {
  position: absolute;
  top: -2px;
}
.kw-setting-interval-keysig-double-b span:nth-child(2) {
  position: absolute;
  bottom: -2px;
}

.kw-setting-interval-keysig-double-c {
  height: 35px;
  transform: rotate(120deg) translate(43px) rotate(-90deg) translateX(-4px);
  background-image: linear-gradient(transparent 0, transparent 49%, #888888 49%, #888888 51%, transparent 51%, transparent 100%);
}
.kw-setting-interval-keysig-double-c span {
  transform: rotate(-30deg);
}
.kw-setting-interval-keysig-double-c span:first-child {
  position: absolute;
  bottom: -2px;
}
.kw-setting-interval-keysig-double-c span:nth-child(2) {
  position: absolute;
  top: -2px;
}

.kw-setting-interval-label-1 {
  transform: rotate(270deg) translate(5.4em);
  justify-content: center;
}
.kw-setting-interval-label-1 span {
  transform: rotate(90deg);
}

.kw-setting-interval-label-2 {
  transform: rotate(300deg) translate(5.25em);
  justify-content: center;
}
.kw-setting-interval-label-3 {
  transform: rotate(330deg) translate(5.1em);
  justify-content: center;
}
.kw-setting-interval-label-4 {
  transform: translate(4.95em);
  justify-content: center;
}
.kw-setting-interval-label-5 {
  transform: rotate(30deg) translate(4.8em);
  justify-content: center;
}
.kw-setting-interval-label-6 {
  transform: rotate(60deg) translate(4.65em);
  justify-content: center;
}
.kw-setting-interval-label-7 {
  transform: rotate(90deg) translate(4.5em);
  justify-content: center;
}
.kw-setting-interval-label-7 span {
  transform: rotate(-90deg);
}

.kw-setting-interval-label-8 {
  transform: rotate(120deg) translate(4.35em) rotate(-180deg);
  justify-content: center;
}
.kw-setting-interval-label-9 {
  transform: rotate(150deg) translate(4.2em) rotate(-180deg);
  justify-content: center;
}
.kw-setting-interval-label-10 {
  transform: rotate(180deg) translate(4.05em) rotate(-180deg);
  justify-content: center;
}
.kw-setting-interval-label-11 {
  transform: rotate(210deg) translate(3.9em) rotate(-180deg);
  justify-content: center;
}
.kw-setting-interval-label-12 {
  transform: rotate(240deg) translate(3.75em) rotate(-180deg);
  justify-content: center;
}
/* extended intervals: */
.kw-setting-interval-label-13 {
  transform: rotate(270deg) translate(4.55em);
  justify-content: center;
  top: 143px !important;
}
.kw-setting-interval-label-13 .kw-setting-interval-label-chord {
  width: 24px !important;
  height: 16px !important;
  top: 2px !important;
  left: 1px !important;
  border-radius: 4px;
}
.kw-setting-interval-label-13 span {
  transform: rotate(90deg);
}

.kw-setting-interval-label-14 {
  transform: rotate(300deg) translate(4.35em);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-15 {
  transform: rotate(330deg) translate(4.2em);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-16 {
  transform: translate(3.9em);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-17 {
  transform: rotate(30deg) translate(3.75em);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-18 {
  transform: rotate(60deg) translate(3.6em);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-19 {
  transform: rotate(90deg) translate(3.4em);
  justify-content: center;
  top: 142px !important;
}
.kw-setting-interval-label-19 .kw-setting-interval-label-chord {
  width: 24px !important;
  height: 16px !important;
  top: 2px !important;
  left: 1px !important;
  border-radius: 4px;
}
.kw-setting-interval-label-19 span {
  transform: rotate(-90deg);
}

.kw-setting-interval-label-20 {
  transform: rotate(120deg) translate(3.25em) rotate(-180deg);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-21 {
  transform: rotate(150deg) translate(3em) rotate(-180deg);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-22 {
  transform: rotate(180deg) translate(2.82em) rotate(-180deg);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-23 {
  transform: rotate(210deg) translate(2.65em) rotate(-180deg);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-24 {
  transform: rotate(240deg) translate(2.5em) rotate(-180deg);
  justify-content: center;
  height: 15px !important;
}
.kw-setting-interval-label-25 {
  transform: rotate(270deg) translate(2.7em) rotate(-180deg);
  justify-content: center;
  top: 137px !important;
  left: 141px !important;
  width: 18px !important;
}
.kw-setting-interval-label-25 span {
  transform: rotate(-90deg);
}
.kw-setting-interval-label-25 .kw-setting-interval-label-chord {
  width: 14px !important;
}
.kw-setting-interval-label-25 .kw-setting-interval-label-arpeggio {
  width: 14px !important;
  height: 18px !important;
  top: 0px !important;
  left: 2px !important;
}

.kw-setting-interval-separator {
  width: 1px;
  height: 300px;
  position: absolute;
  left: 149.5px;
  background-image: linear-gradient(transparent, #888888, transparent, #888888, transparent);
  display: block;
}
.kw-setting-interval-separator.hide {
  display: none;
}

.kw-setting-interval-separator-1 {
  transform: rotate(-15deg);
}

.kw-setting-interval-separator-2 {
  transform: rotate(15deg);
}

.kw-setting-interval-separator-3 {
  transform: rotate(45deg);
}

.kw-setting-interval-separator-4 {
  transform: rotate(75deg);
}

.kw-setting-interval-separator-5 {
  transform: rotate(105deg);
}

.kw-setting-interval-separator-6 {
  transform: rotate(135deg);
}

.kw-setting-interval-option-type {
  width: 300px;
  height: 42px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  /*
  background-image:
    linear-gradient(rgba(100, 100, 100, 0.8) 0%, rgba(100, 100, 100, 0.8) 100%),
    linear-gradient(to right, darken($magenta, 25%) 0%, lighten($yellow, 25%) 25%, darken($blue, 25%) 50%, $yellowGreen 50%, darken($cyan, 25%) 100%)
  ;
  border: 2px solid $darkerGray;
  border-radius: 21px;
  */
}

.kw-setting-interval-option-type-text {
  width: 100px;
  line-height: 1;
  font-size: 1.3rem;
  text-align: center;
  color: #888888;
}

.kw-setting-interval-option-type-text-lower {
  color: #888888;
  font-size: 0.75em;
}

.kw-setting-interval-option-type-label {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 32px;
  margin: 0 5px;
  background-color: #151515;
  border-radius: 30px;
  border: 2px solid #666;
  transition: all 0.2s;
  cursor: pointer;
}
.kw-setting-interval-option-type-label:after {
  content: "";
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-interval-option-type-checkbox {
  display: none;
}

.kw-setting-interval-option-type-checkbox:checked + .kw-setting-interval-option-type-label::after {
  left: 28px;
  width: 28px;
  height: 28px;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-patterns {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  grid-column: 1/span 3;
  grid-row: 3;
  margin: 10px 5px 0 5px;
  padding: 0;
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-patterns {
    margin: 5px;
  }
}
@media (min-width: 768px) {
  .kw-setting-patterns {
    grid-column: 2/span 1;
    grid-row: 3;
  }
}
@media (min-width: 992px) {
  .kw-setting-patterns {
    grid-column: 3/span 1;
    grid-row: 2;
    margin: 5px;
  }
}

.kw-setting-pattern-content {
  padding: 0 0 10px 0;
  text-align: center;
  display: flex;
  flex-direction: column;
}
.kw-setting-pattern-content.collapsed {
  height: 5px;
  padding: 10px 0;
  visibility: hidden;
}
@media (min-width: 768px) {
  .kw-setting-pattern-content.collapsed {
    height: auto;
    padding: 0 0 10px 0;
    visibility: visible;
  }
}

.kw-setting-pattern-control-toggle {
  width: 220px;
  height: 42px;
  margin: auto auto 0 auto;
  position: relative;
  z-index: 0;
}
.kw-setting-pattern-control-toggle .kw-setting-pattern-control-toggle-button {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 100%;
  height: 36px;
  border-radius: 18px;
  font-weight: bold;
  font-size: 1.2rem;
  position: absolute;
  top: 5px;
  left: 0;
  z-index: 1;
}
.kw-setting-pattern-control-toggle .kw-setting-pattern-control-toggle-button.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}

.kw-setting-pattern-scale-control-toggle-button {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 32px;
  height: 32px;
  padding: 5px 0;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  font-weight: bold;
  font-size: 1rem;
  position: absolute;
  top: 7px;
  left: 2px;
  z-index: 20;
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  box-shadow: unset !important;
}
.kw-setting-pattern-scale-control-toggle-button.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}

.kw-setting-pattern-arpeggio-control-toggle-button {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 32px;
  height: 32px;
  padding: 5px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: left;
  border-radius: 16px;
  font-weight: bold;
  font-size: 1rem;
  grid-column: 3/span 1;
  grid-row: 1;
  position: absolute;
  top: 7px;
  right: 2px;
  z-index: 2;
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  box-shadow: unset !important;
}
.kw-setting-pattern-arpeggio-control-toggle-button.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}

.kw-setting-shapes {
  grid-column: 1/span 3;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 1fr 1fr;
}
@media (min-width: 768px) {
  .kw-setting-shapes {
    grid-column: 1/span 1;
    grid-row: auto;
  }
}
@media (min-width: 992px) {
  .kw-setting-shapes {
    grid-column: 1/span 1;
  }
}

.kw-setting-pattern-scales {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  min-height: 0;
  flex-grow: 1;
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-pattern-scales {
    margin: 5px;
  }
}
.kw-setting-pattern-scale-content {
  padding: 10px;
  text-align: center;
  display: flex;
  background-image: linear-gradient(transparent, #363636);
  border-radius: 0 0 8px 8px;
}
.kw-setting-pattern-scale-content.collapsed {
  display: none;
}
@media (min-width: 768px) {
  .kw-setting-pattern-scale-content.collapsed {
    display: flex;
  }
}

.kw-setting-pattern-scale-controls {
  min-height: 131px;
  position: relative;
  bottom: 0;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.kw-setting-pattern-scale-control-presets {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 100%;
  height: 36px;
  padding: 0 10px 0 25px;
  border: unset;
  background-image: linear-gradient(rgba(111, 111, 111, 0.5), rgba(47, 47, 47, 0.5)), linear-gradient(to left, #6f6f6f, #6f6f6f 15px, #484848 15px, #484848);
  border-radius: 5px;
  cursor: pointer;
  color: #151515;
  font-weight: bold;
  text-align: center;
}

.kw-setting-pattern-scale-selected {
  margin: 0 5px;
  border-radius: 5px;
}

.kw-setting-pattern-scale-selected-list {
  margin-bottom: 0;
  display: flex;
  list-style: none;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}
.kw-setting-pattern-scale-selected-list li {
  min-height: 30px;
  padding: 0 10px;
  margin: 0 5px 5px 0;
  list-style: none;
  border-radius: 4px;
  display: flex;
  align-items: center;
  transition: background-color 300 !important;
  /*
  &.flash {
    background-color: $white !important;
    box-shadow: 0 0 5px $red, 0 0 10px $red !important;
  }
  */
}
.kw-setting-pattern-scale-selected-list li span {
  padding: 0 5px 0 10px;
  cursor: pointer;
}

.kw-setting-pattern-scale-control-monopoly {
  width: 100%;
  height: 42px;
  margin: 0 auto;
  margin-top: auto;
  padding: 5px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
}

.kw-setting-pattern-scale-control-monopoly-text {
  width: 100px;
  line-height: 1;
  font-size: 1.2rem;
  color: #888888;
}

.kw-setting-pattern-scale-control-monopoly-text-left {
  text-align: right;
}

.kw-setting-pattern-scale-control-monopoly-text-right {
  text-align: left;
}

.kw-setting-pattern-scale-control-monopoly-label {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 27px;
  margin: 0 5px;
  background-color: #151515;
  border-radius: 30px;
  border: 2px solid #666;
  transition: all 0.2s;
  cursor: pointer;
}
.kw-setting-pattern-scale-control-monopoly-label:after {
  content: "";
  position: absolute;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-pattern-scale-control-monopoly-checkbox {
  display: none;
}

.kw-setting-pattern-scale-control-monopoly-checkbox:checked + .kw-setting-pattern-scale-control-monopoly-label::after {
  left: 23px;
  width: 23px;
  height: 23px;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-pattern-arpeggios {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  margin-top: 5px;
  margin-bottom: 5px;
  min-height: 0;
  flex-grow: 1;
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-pattern-arpeggios {
    margin: 5px;
  }
}
@media (min-width: 992px) {
  .kw-setting-pattern-arpeggios {
    margin-top: 0;
  }
}

.kw-setting-pattern-arpeggio-content {
  padding: 10px;
  text-align: center;
  display: flex;
  background-image: linear-gradient(transparent, #363636);
  border-radius: 0 0 8px 8px;
}
.kw-setting-pattern-arpeggio-content.collapsed {
  display: none;
}
@media (min-width: 768px) {
  .kw-setting-pattern-arpeggio-content.collapsed {
    display: flex;
  }
}

.kw-setting-pattern-arpeggio-controls {
  min-height: 131px;
  position: relative;
  bottom: 0;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.kw-setting-pattern-arpeggio-control-presets {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 100%;
  height: 36px;
  padding: 0 10px 0 25px;
  border: unset;
  background-image: linear-gradient(rgba(111, 111, 111, 0.5), rgba(47, 47, 47, 0.5)), linear-gradient(to left, #6f6f6f, #6f6f6f 15px, #484848 15px, #484848);
  border-radius: 5px;
  cursor: pointer;
  color: #151515;
  font-weight: bold;
  text-align: center;
}

.kw-setting-pattern-arpeggio-selected {
  margin: 0 5px;
  border-radius: 5px;
}

.kw-setting-pattern-arpeggio-selected-list {
  margin-bottom: 0;
  display: flex;
  list-style: none;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}
.kw-setting-pattern-arpeggio-selected-list li {
  min-height: 30px;
  padding: 0 10px;
  margin: 0 5px 5px 0;
  list-style: none;
  border-radius: 4px;
  display: flex;
  align-items: center;
  transition: background-color 300 !important;
  /*
  &.flash {
    background-color: $white !important;
    box-shadow: 0 0 5px $red, 0 0 10px $red !important;
  }
  */
}
.kw-setting-pattern-arpeggio-selected-list li span {
  padding: 0 5px 0 10px;
  cursor: pointer;
}

.kw-setting-pattern-arpeggio-control-monopoly {
  width: 100%;
  height: 42px;
  margin: 0 auto;
  margin-top: auto;
  padding: 5px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
}

.kw-setting-pattern-arpeggio-control-monopoly-text {
  width: 100px;
  line-height: 1;
  font-size: 1.2rem;
  color: #888888;
}

.kw-setting-pattern-arpeggio-control-monopoly-text-left {
  text-align: right;
}

.kw-setting-pattern-arpeggio-control-monopoly-text-right {
  text-align: left;
}

.kw-setting-pattern-arpeggio-control-monopoly-label {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 27px;
  margin: 0 5px;
  background-color: #151515;
  border-radius: 30px;
  border: 2px solid #666;
  transition: all 0.2s;
  cursor: pointer;
}
.kw-setting-pattern-arpeggio-control-monopoly-label:after {
  content: "";
  position: absolute;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-pattern-arpeggio-control-monopoly-checkbox {
  display: none;
}

.kw-setting-pattern-arpeggio-control-monopoly-checkbox:checked + .kw-setting-pattern-arpeggio-control-monopoly-label::after {
  left: 23px;
  width: 23px;
  height: 23px;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-chords {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  grid-column: 1/span 3;
  grid-row: 2;
  margin: 10px 5px 0 5px;
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-chords {
    margin: 5px;
  }
}
@media (min-width: 768px) {
  .kw-setting-chords {
    grid-column: 1/span 2;
    grid-row: 2;
    margin: 10px 5px 0 5px;
  }
}
@media (min-width: 992px) {
  .kw-setting-chords {
    grid-column: 1/span 1;
    grid-row: 2;
    margin: 5px;
  }
}

.kw-setting-chord-content {
  max-width: 475px;
  margin: 0 auto;
  height: calc(100% - 30px);
  padding: 10px 15px;
  text-align: center;
  flex-direction: column;
  display: flex;
}
.kw-setting-chord-content.collapsed {
  height: 5px;
  visibility: hidden;
}
@media (min-width: 768px) {
  .kw-setting-chord-content.collapsed {
    height: calc(100% - 30px);
    visibility: visible;
  }
}

/* BEGIN KEYBOARD */
.kw-setting-chord-controls-keyboard {
  display: none;
}
.kw-setting-chord-controls-keyboard.visible {
  display: block;
}

.kw-setting-chord-control-keyboard-preset,
.kw-setting-chord-control-keyboard-root,
.kw-setting-chord-control-keyboard-inversion,
.kw-setting-chord-control-keyboard-version,
.kw-setting-chord-control-keyboard-octave {
  display: grid;
  grid-auto-columns: 90px 1fr;
}
.kw-setting-chord-control-keyboard-preset.hidden,
.kw-setting-chord-control-keyboard-root.hidden,
.kw-setting-chord-control-keyboard-inversion.hidden,
.kw-setting-chord-control-keyboard-version.hidden,
.kw-setting-chord-control-keyboard-octave.hidden {
  display: none;
}

.kw-setting-chord-control-keyboard-preset-label,
.kw-setting-chord-control-keyboard-root-label,
.kw-setting-chord-control-keyboard-inversion-label,
.kw-setting-chord-control-keyboard-version-label,
.kw-setting-chord-control-keyboard-octave-label {
  width: 90px;
  height: 36px;
  margin-bottom: 5px;
  padding: 0 10px 0 0;
  grid-column: 1/span 1;
  display: flex;
  align-content: center;
  justify-content: flex-end;
  line-height: 36px;
  color: #888888;
}

.kw-setting-chord-control-keyboard-preset-select,
.kw-setting-chord-control-keyboard-root-select,
.kw-setting-chord-control-keyboard-inversion-select,
.kw-setting-chord-control-keyboard-version-select {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 100%;
  height: 36px;
  margin-bottom: 5px;
  padding: 0 10px 0 25px;
  grid-column: 2/span 1;
  border: unset;
  background-image: linear-gradient(rgba(111, 111, 111, 0.5), rgba(47, 47, 47, 0.5)), linear-gradient(to left, #6f6f6f, #6f6f6f 15px, #484848 15px, #484848);
  border-radius: 5px;
  cursor: pointer;
  font-weight: bold;
  text-align: left;
}
.kw-setting-chord-control-keyboard-preset-select option,
.kw-setting-chord-control-keyboard-root-select option,
.kw-setting-chord-control-keyboard-inversion-select option,
.kw-setting-chord-control-keyboard-version-select option {
  background-color: #ff0000;
}

.kw-setting-chord-control-keyboard-hand {
  width: 280px;
  height: 42px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kw-setting-chord-control-keyboard-hand-text:first-child {
  text-align: center;
}

.kw-setting-chord-control-keyboard-hand-checkbox {
  display: none;
}
.kw-setting-chord-control-keyboard-hand-checkbox:checked + .kw-setting-chord-control-keyboard-hand-label::after {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  left: 28px;
  width: 28px;
  height: 28px;
}

.kw-setting-chord-control-keyboard-hand-label {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 32px;
  margin: 0 5px;
  background-color: #262626;
  border-radius: 30px;
  border: 2px solid #999;
  transition: all 0.2s;
  cursor: pointer;
}
.kw-setting-chord-control-keyboard-hand-label:after {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  content: "";
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
}

.kw-setting-chord-control-keyboard-octave {
  display: grid;
  grid-auto-columns: 90px 1fr 45px;
}

.kw-setting-chord-control-keyboard-octave-controls {
  width: 108px;
  height: 36px;
  padding: 0;
  margin-bottom: 5px;
  display: flex;
  grid-column: 2/span 1;
  text-align: left;
  background-image: linear-gradient(rgba(111, 111, 111, 0.5), rgba(72, 72, 72, 0.5));
  border-radius: 5px;
}

.kw-setting-chord-control-keyboard-octave-control-button-decrement,
.kw-setting-chord-control-keyboard-octave-control-button-increment {
  width: 36px;
  height: 36px;
  background-image: linear-gradient(rgba(111, 111, 111, 0.5), rgba(72, 72, 72, 0.5));
}
.kw-setting-chord-control-keyboard-octave-control-button-decrement:active,
.kw-setting-chord-control-keyboard-octave-control-button-increment:active {
  background-image: linear-gradient(rgba(72, 72, 72, 0.5), rgba(111, 111, 111, 0.5));
}
.kw-setting-chord-control-keyboard-octave-control-button-decrement span,
.kw-setting-chord-control-keyboard-octave-control-button-increment span {
  color: #151515;
}

.kw-setting-chord-control-keyboard-octave-control-button-decrement {
  border-radius: 5px 0 0 5px;
}

.kw-setting-chord-control-keyboard-octave-control-readout {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #151515;
  font-weight: bold;
  transition: color 200ms;
}
.kw-setting-chord-control-keyboard-octave-control-readout.flash {
  color: #ff8000;
}

.kw-setting-chord-control-keyboard-octave-control-button-increment {
  border-radius: 0 5px 5px 0;
}

/* BEGIN STRINGED */
.kw-setting-chord-controls-stringed {
  display: none;
}
.kw-setting-chord-controls-stringed.visible {
  display: block;
}

.kw-setting-chord-control-stringed-preset,
.kw-setting-chord-control-stringed-root,
.kw-setting-chord-control-stringed-inversion,
.kw-setting-chord-control-stringed-version {
  display: grid;
  grid-auto-columns: 90px 1fr;
}
.kw-setting-chord-control-stringed-preset.hidden,
.kw-setting-chord-control-stringed-root.hidden,
.kw-setting-chord-control-stringed-inversion.hidden,
.kw-setting-chord-control-stringed-version.hidden {
  display: none;
}

.kw-setting-chord-control-stringed-preset-label,
.kw-setting-chord-control-stringed-root-label,
.kw-setting-chord-control-stringed-inversion-label,
.kw-setting-chord-control-stringed-version-label,
.kw-setting-chord-control-stringed-octave-label {
  width: 90px;
  height: 36px;
  margin-bottom: 5px;
  padding: 0 10px 0 0;
  grid-column: 1/span 1;
  display: flex;
  align-content: center;
  justify-content: flex-end;
  line-height: 36px;
  color: #888888;
}

.kw-setting-chord-control-stringed-preset-select,
.kw-setting-chord-control-stringed-root-select,
.kw-setting-chord-control-stringed-inversion-select,
.kw-setting-chord-control-stringed-version-select {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 100%;
  height: 36px;
  margin-bottom: 5px;
  padding: 0 10px 0 25px;
  grid-column: 2/span 1;
  border: unset;
  background-image: linear-gradient(rgba(111, 111, 111, 0.5), rgba(47, 47, 47, 0.5)), linear-gradient(to left, #6f6f6f, #6f6f6f 15px, #484848 15px, #484848);
  border-radius: 5px;
  cursor: pointer;
  color: #151515;
  font-weight: bold;
  text-align: left;
}

.kw-setting-chord-control-stringed-octave-slider {
  width: 100%;
  padding: 0;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 153px;
  height: 36px;
  margin-bottom: 5px;
  grid-column: 2/span 1;
  cursor: pointer;
  text-align: left;
}
.kw-setting-chord-control-stringed-octave-slider label {
  font-size: 24px;
  font-weight: 400;
  font-family: Open Sans;
  padding-left: 10px;
  color: black;
}
.kw-setting-chord-control-stringed-octave-slider input[type=range] {
  /*
    width: 100%;
  height: 8px;
  border-radius: 4px;
  background: $black;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
    */
  /* Mouse-over effects */
  /* The slider handle (use -webkit- (Chrome, Opera, Safari, Edge) and -moz- (Firefox) to override default look) */
  /*&::-webkit-slider-thumb {
    //-webkit-appearance: none;
    //appearance: none;
    @include light-off;
    @include light-on($white);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    //background: $blue;
    cursor: pointer;
  }*/
  /*&::-moz-range-thumb {
  	@include light-off;
  	@include light-on($white);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    //background: $blue;
    cursor: pointer;
  }*/
}
.kw-setting-chord-control-stringed-octave-slider input[type=range] {
  max-width: 100%;
  -webkit-appearance: none;
  background-color: unset;
}
.kw-setting-chord-control-stringed-octave-slider input[type=range]:focus {
  outline: none;
}
.kw-setting-chord-control-stringed-octave-slider input[type=range]::-webkit-slider-runnable-track {
  background: #000000;
  height: 5px;
}
.kw-setting-chord-control-stringed-octave-slider input[type=range]::-moz-range-track {
  padding: 0 10px;
  background: repeating-linear-gradient(to right, #ffffff 0, #ffffff 9px, #000000 9px, #000000 11px, #ffffff 11px, #ffffff 29px, #000000 29px, #000000 31px, #ffffff 31px, #ffffff 49px, #000000 49px, #000000 51px, #ffffff 51px, #ffffff 69px, #000000 69px, #000000 71px, #ffffff 71px, #ffffff 89px, #000000 89px, #000000 91px, #ffffff 91px, #ffffff 109px, #000000 109px, #000000 111px, #ffffff 111px, #ffffff 129px, #000000 129px, #000000 131px, #ffffff 131px, #ffffff 153px);
}
.kw-setting-chord-control-stringed-octave-slider input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  background: pink;
  margin-top: -5px;
  border-radius: 50%;
}
.kw-setting-chord-control-stringed-octave-slider input[type=range]::-moz-range-thumb {
  height: 20px;
  width: 20px;
  background: pink;
  margin-top: -5px;
  border-radius: 50%;
}

.kw-setting-chord-control-stringed-octave-readout {
  margin-bottom: 5px;
  grid-column: 3/span 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kw-setting-chord-content-readout {
  margin: 10px 0;
  display: grid;
  grid-template-columns: 1fr 50px;
  grid-template-rows: auto auto;
  background-color: #2f2f2f;
  border-radius: 5px;
  background-image: linear-gradient(#2f2f2f, #2f2f2f 18px, transparent 18px, transparent 22px, #2f2f2f 22px, #2f2f2f 100%), linear-gradient(to left, transparent, transparent 30px, #3d3d3d 30px, #3d3d3d 67%, transparent 67%, transparent 100%);
}
@media (min-width: 992px) {
  .kw-setting-chord-content-readout {
    margin: auto 0 0 0;
  }
}

.kw-setting-chord-content-title {
  font-family: VT323;
  color: #ffffff;
  text-shadow: 0 0 10px #ffffff, 0 0 0px #ffffff;
  background-color: #222;
  overflow: visible;
  position: relative;
  border-top: 2px solid #3c3c3c;
  border-right: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  border-left: 2px solid #3c3c3c;
  width: auto;
  height: 40px;
  margin: 0 auto 0 90px;
  padding: 0 15px;
  grid-column: 1/span 1;
  grid-row: 1;
  border-radius: 5px;
}
.kw-setting-chord-content-title span {
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 36px;
  font-size: 2.6rem;
  font-weight: bold;
}

.kw-setting-chord-control-play {
  width: 100%;
  margin: 2px 0 0 5px;
  grid-column: 2/span 1;
  grid-row: 1;
}
.kw-setting-chord-control-play .kw-setting-chord-control-play-button {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 36px;
  height: 36px;
  border-radius: 20px;
  font-weight: bold;
  font-size: 1.2rem;
  color: #2f2f2f;
}
.kw-setting-chord-control-play .kw-setting-chord-control-play-button.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}

.kw-setting-chord-control-message {
  margin: 15px 0 0 0;
  padding: 5px 10px 10px 10px;
  grid-column: 1/span 2;
  grid-row: 2;
  background-color: #484848;
  border: 1px solid #222;
  border-radius: 5px;
  font-size: 1rem;
  color: #a2a2a2;
  display: none;
}
.kw-setting-chord-control-message span {
  display: block;
  font-size: 1.6rem;
  color: #a8a800;
}
.kw-setting-chord-control-message.visible {
  display: block;
}

.kw-setting-chord-control-toggle {
  margin-top: auto;
}
.kw-setting-chord-control-toggle .kw-setting-chord-control-toggle-button {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 146px;
  height: 36px;
  margin: 3px 0 3px 0;
  border-radius: 18px;
  font-weight: bold;
  font-size: 1.2rem;
}
.kw-setting-chord-control-toggle .kw-setting-chord-control-toggle-button.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}

.kw-setting-sequences {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  grid-column: 1/span 3;
  margin-top: 10px;
}
@media (min-width: 992px) {
  .kw-setting-sequences {
    margin: 5px;
  }
}

.kw-setting-sequence-content {
  padding: 10px;
  text-align: center;
}

.kw-setting-instruments {
  margin: 5px 5px 0 5px;
  background-color: #2f2f2f;
  border: 1px solid #222;
  border-radius: 8px;
  grid-column: 1/span 3;
  margin-top: 10px;
}
@media (min-width: 992px) {
  .kw-setting-instruments {
    margin: 5px;
  }
}
.kw-setting-instrument-content {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows: auto auto auto auto;
  position: relative;
  border-radius: 0 0 5px 5px;
}
@media (min-width: 992px) {
  .kw-setting-instrument-content {
    grid-auto-rows: auto auto auto;
    background-image: linear-gradient(#2f2f2f, #2f2f2f 28px, transparent 28px, transparent 32px, #2f2f2f 32px, #2f2f2f 100%), linear-gradient(to left, transparent, transparent 240px, #3d3d3d 240px, #3d3d3d 84%, transparent 84%, transparent 100%);
  }
}

.kw-setting-instrument-type {
  width: 100%;
  grid-column: 1/span 3;
  grid-row: 1;
}
@media (min-width: 992px) {
  .kw-setting-instrument-type {
    grid-column: 1/span 1;
  }
}

.kw-setting-instrument-type-buttons {
  height: 60px;
  padding-right: 10px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  border-radius: 4px 0 0 4px;
}

.kw-setting-instrument-type-button:first-child {
  border-radius: 30px 4px 4px 30px;
}
.kw-setting-instrument-type-button:last-child {
  border-radius: 4px 30px 30px 4px;
}

.kw-setting-instrument-type-keyboard, .kw-setting-instrument-type-stringed {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 110px;
  height: 36px;
  padding: 0 15px;
  display: flex;
  border-radius: 4px;
  align-items: center;
  font-weight: bold;
}
.kw-setting-instrument-type-keyboard.active, .kw-setting-instrument-type-stringed.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}

.kw-setting-instrument-keyboard, .kw-setting-instrument-stringed {
  width: 100%;
  max-width: 310px;
  margin: 0 auto;
  padding: 0 0 10px 0;
  background-color: #484848;
  border: 1px solid #222;
  border-radius: 4px;
  height: auto;
  display: none;
  grid-column: 1/span 3;
  grid-row: 3;
  align-items: center;
  position: relative;
  z-index: inherit;
}
@media (min-width: 320px) {
  .kw-setting-instrument-keyboard, .kw-setting-instrument-stringed {
    max-width: 320px;
    padding: 0 5px 10px 5px;
  }
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard, .kw-setting-instrument-stringed {
    max-width: none;
    padding: 0;
    background-color: unset;
    border: unset;
    height: 60px;
    grid-column: 2/span 2;
    grid-row: 1;
  }
}
.kw-setting-instrument-keyboard.open, .kw-setting-instrument-stringed.open {
  display: flex;
  flex-direction: row-reverse;
}

.kw-setting-instrument-keyboard-form {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  position: relative;
  z-index: inherit;
}

.kw-setting-instrument-keyboard-form-presets {
  width: 100%;
  height: 60px;
  display: flex;
  justify-content: left;
  align-items: center;
  border-radius: 4px;
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard-form-presets {
    width: 50%;
    justify-content: center;
  }
}

.kw-setting-instrument-keyboard-form-preset-select {
  font-family: VT323;
  color: #ffffff;
  text-shadow: 0 0 10px #ffffff, 0 0 0px #ffffff;
  background-color: #222;
  overflow: visible;
  position: relative;
  border-top: 2px solid #3c3c3c;
  border-right: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  border-left: 2px solid #3c3c3c;
  width: 100%;
  height: 36px;
  margin: 0 5px;
  padding-left: 10px;
  text-transform: capitalize;
  border-radius: 4px;
  color: #ffffff;
  cursor: pointer;
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard-form-preset-select {
    margin: 0;
  }
}
.kw-setting-instrument-keyboard-form-customs {
  width: 100%;
  min-height: 40px;
  position: relative;
  right: auto;
  z-index: 3;
  text-align: center;
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard-form-customs {
    width: auto;
    margin-right: 10px;
    padding-bottom: 10px;
    min-height: 60px;
    position: absolute;
    right: 0;
  }
}

.kw-setting-instrument-keyboard-form-custom-toggle {
  width: 296px;
  height: 40px;
  margin: 0 auto 0 auto;
  padding: 0 20px 0 50px;
  text-align: left;
  color: #ffffff;
  display: flex;
  align-items: center;
  background-image: linear-gradient(to top, #272727, #3c3c3c);
  background-color: #222;
  position: relative;
  z-index: 5;
  border-radius: 5px;
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard-form-custom-toggle {
    width: 296px;
    margin: 10px auto 10px auto;
  }
}
.kw-setting-instrument-keyboard-form-custom-toggle .chevron {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 24px;
  height: 24px;
  padding-bottom: 0;
  padding-left: 2px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.kw-setting-instrument-keyboard-form-custom-toggle .chevron.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  padding-bottom: 0;
  padding-left: 2px;
}
.kw-setting-instrument-keyboard-form-custom-toggle .text {
  padding-left: 5px;
  font-size: 1.2rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #888888;
}

.kw-setting-instrument-keyboard-form-custom-fields {
  width: 298px;
  padding-bottom: 1px;
  background-color: #666;
  display: none;
  border-radius: 5px;
  margin: 0 auto;
  margin-top: -18px;
  position: relative;
  z-index: 4;
}
.kw-setting-instrument-keyboard-form-custom-fields.open {
  display: block;
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard-form-custom-fields {
    margin-top: -28px;
  }
}

.kw-setting-instrument-keyboard-form-custom-field-header {
  width: 298px;
  height: 18px;
  display: flex;
  flex-direction: row;
  background-image: linear-gradient(#2f2f2f, #3c3c3c 70%, #484848);
  border-width: 1px;
  border-style: solid;
  -o-border-image: linear-gradient(to top, #666, #484848) 1 100%;
     border-image: linear-gradient(to top, #666, #484848) 1 100%;
  border-top: none;
  border-radius: 0 0 5px 5px;
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-instrument-keyboard-form-custom-field-header {
    -o-border-image: linear-gradient(to top, #666, rgba(0, 0, 0, 0)) 1 100%;
       border-image: linear-gradient(to top, #666, rgba(0, 0, 0, 0)) 1 100%;
  }
}

.kw-setting-instrument-keyboard-form-custom-field-header-title {
  min-width: 298px;
  height: 20px;
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: underline;
}

.kw-setting-instrument-keyboard-form-custom-field-section {
  width: 296px;
  margin: 2px 1px 1px 1px;
  border-top: 1px solid #3c3c3c;
  border-bottom: 1px solid #090909;
  border-radius: 5px;
  position: relative;
  background-color: #2f2f2f;
}

.kw-setting-instrument-keyboard-form-custom-field-section-title {
  width: 296px;
  height: 28px;
  min-width: 100%;
  border-radius: 5px 5px 0 0;
  text-transform: uppercase;
  font-size: 1rem;
  font-weight: bold;
  border-bottom: 1px solid #222;
  color: #888888;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid #222;
  background-image: linear-gradient(#222, #2c2c2c);
}

.kw-setting-instrument-keyboard-form-custom-field-keys-wrap {
  width: 296px;
  border-radius: 5px;
}

.kw-setting-instrument-keyboard-form-custom-field-keys-header {
  width: 292px;
  height: 40px;
  display: flex;
  flex-direction: row;
  border-radius: 5px 5px 0 0;
  position: relative;
}

.kw-setting-instrument-keyboard-form-custom-field-keys-header-heading {
  height: 40px;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: #e2e2e2;
}
.kw-setting-instrument-keyboard-form-custom-field-keys-header-heading:nth-child(1) {
  width: 120px;
}
.kw-setting-instrument-keyboard-form-custom-field-keys-header-heading:nth-child(2) {
  width: 100px;
  position: relative;
}
.kw-setting-instrument-keyboard-form-custom-field-keys-header-heading:nth-child(2)::after {
  content: "";
  width: 51px;
  height: 1px;
  background-image: linear-gradient(to right, #888888, #666, #555555, #666, #888888);
  position: absolute;
  top: 50%;
  right: -26px;
}
.kw-setting-instrument-keyboard-form-custom-field-keys-header-heading:nth-child(3) {
  width: 100px;
}

.kw-setting-instrument-keyboard-form-custom-field-keys-header-title {
  min-width: 296px;
  height: 20px;
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: underline;
}

.kw-setting-instrument-keyboard-form-custom-field-section {
  width: 296px;
  margin: 2px 1px 1px 1px;
  border-top: 1px solid #3c3c3c;
  border-bottom: 1px solid #090909;
  border-radius: 5px;
  position: relative;
  background-color: #2f2f2f;
}

.kw-setting-instrument-keyboard-form-custom-field-section-title {
  width: 292px;
  height: 28px;
  min-width: 100%;
  border-radius: 5px 5px 0 0;
  text-transform: uppercase;
  font-size: 1rem;
  font-weight: bold;
  border-bottom: 1px solid #222;
  color: #888888;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid #222;
  background-image: linear-gradient(#222, #2c2c2c);
}

.kw-setting-instrument-keyboard-form-custom-field-attributes {
  /*width: 296px;
  height: 50px;
  margin: 1px 0 0 0;
  display: flex;
  flex-direction: row;
  //border-top: 1px solid $mediumGray;
  //border-bottom: 1px solid $darkerGray;
  background-color: lighten($darkestGray, 5%);
  border: 1px solid $darkerGray;
  //border-right: 1px solid $darkerGray;
  //border-left: 1px solid $darkerGray;
  border-radius: 5px;
  */
  /*
  width: 292px;
  height: 50px;
  margin: 1px 0;
  display: flex;
  flex-direction: row;
  //border-top: 1px solid $mediumGray;
  //border-bottom: 1px solid $darkerGray;
  background-color: lighten($darkestGray, 5%);
  border-top: 1px solid $darkestGray;
  border-bottom: 1px solid lighten($darkestGray, 10%);
  border-right: 1px solid lighten($darkestGray, 7%);
  border-left: 1px solid lighten($darkestGray, 7%);
  //border-radius: 5px;

  &:first-child {
    border-radius: 5px 5px 0 0;
  }
  */
  width: 292px;
  height: 50px;
  margin: 1px 2px;
  display: flex;
  flex-direction: row;
  background-color: #2f2f2f;
  border-top: 1px solid #222;
  border-bottom: 1px solid #3c3c3c;
  border-right: 1px solid #343434;
  border-left: 1px solid #343434;
  border-radius: 5px;
}

.kw-setting-instrument-keyboard-form-attribute {
  padding: 0 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kw-setting-instrument-keyboard-form-attribute input {
  font-family: VT323;
  color: #ffffff;
  text-shadow: 0 0 10px #ffffff, 0 0 0px #ffffff;
  background-color: #222;
  overflow: visible;
  position: relative;
  border-top: 2px solid #3c3c3c;
  border-right: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  border-left: 2px solid #3c3c3c;
  width: 50px;
  border-radius: 5px;
  color: #ffffff;
  text-align: center;
}
.kw-setting-instrument-keyboard-form-attribute:nth-child(1) {
  width: 120px;
}
.kw-setting-instrument-keyboard-form-attribute:nth-child(2) {
  width: 100px;
  padding: 0 10px 0 5px;
  background-color: #3c3c3c;
}
.kw-setting-instrument-keyboard-form-attribute:nth-child(3) {
  background-color: #3c3c3c;
}

.kw-setting-instrument-keyboard-form-start-note-name {
  width: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #3c3c3c;
  border-radius: 0 4px 4px 0;
}

.kw-setting-instrument-keyboard-form-attribute input[type=range] {
  -webkit-appearance: none !important;
  width: 50px;
  height: 2px;
  background: black;
  border: none;
  outline: none;
}

.kw-setting-instrument-keyboard-form-attribute input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  width: 30px;
  height: 30px;
  background: black;
  border: 2px solid black;
  border-radius: 50%;
  cursor: pointer;
}

.kw-setting-instrument-keyboard-form-attribute input[type=range]::-webkit-slider-thumb:hover {
  background: black;
}

/*
      .kw-setting-instrument-keyboard-form-custom-field-footer {
        width: 308px;
        height: 50px;
        margin: 0 0 5px 0;
        display: flex;
        flex-direction: row;
        //background-color: $darkGray;

        background-color: $darkestGray;
        border-width: 1px;
        border-style: solid;
        border-color: $darkerGray;
        border: 1px solid $darkerGray;
        //border-image: linear-gradient( to bottom, $darkerGray, rgba(0, 0, 0, 0)) 1 100%;
        border-radius: 5px; //4px 4px 0 0;
      }
*/
.kw-setting-instrument-keyboard-form-custom-field-color {
  width: 292px;
  height: 40px;
  margin: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  /*background-image:
    linear-gradient(rgba(100, 100, 100, 0.8) 0%, rgba(100, 100, 100, 0.8) 100%),
    linear-gradient(to right, darken($cyan, 25%) 0%, darken($cyan, 25%) 50%, darken($red, 25%) 50%, darken($red, 25%) 100%)
  ;*/
  border: 1px solid #3c3c3c;
  background-image: linear-gradient(transparent, #363636);
  border-radius: 5px;
}

.kw-setting-instrument-keyboard-form-custom-field-color-text {
  width: 75px;
  font-size: 1.2rem;
  color: #e2e2e2;
}
.kw-setting-instrument-keyboard-form-custom-field-color-text:first-child {
  text-align: center;
}

.kw-setting-instrument-keyboard-form-custom-field-color-checkbox {
  display: none;
}
.kw-setting-instrument-keyboard-form-custom-field-color-checkbox:checked + .kw-setting-instrument-keyboard-form-custom-field-color-label::after {
  left: 23px;
  width: 23px;
  height: 23px;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}
.kw-setting-instrument-keyboard-form-custom-field-color-checkbox:checked + .kw-setting-instrument-keyboard-form-custom-field-color-label {
  background-color: #ffffff;
}

.kw-setting-instrument-keyboard-form-custom-field-color-label {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 32px;
  margin: 0 5px;
  background-color: #262626;
  border-radius: 30px;
  border: 2px solid #999;
  transition: all 0.2s;
  cursor: pointer;
  width: 50px;
  height: 27px;
  margin: 0 5px;
  background-color: #151515;
  border-radius: 30px;
  border: 2px solid #666;
}
.kw-setting-instrument-keyboard-form-custom-field-color-label:after {
  content: "";
  position: absolute;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-instrument-stringed-form {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  position: relative;
  z-index: inherit;
}

.kw-setting-instrument-stringed-form-presets {
  width: 100%;
  height: 60px;
  display: flex;
  justify-content: left;
  align-items: center;
  border-radius: 4px;
}
@media (min-width: 992px) {
  .kw-setting-instrument-stringed-form-presets {
    width: 50%;
    justify-content: center;
  }
}

.kw-setting-instrument-stringed-form-preset-select {
  font-family: VT323;
  color: #ffffff;
  text-shadow: 0 0 10px #ffffff, 0 0 0px #ffffff;
  background-color: #222;
  overflow: visible;
  position: relative;
  border-top: 2px solid #3c3c3c;
  border-right: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  border-left: 2px solid #3c3c3c;
  width: 100%;
  height: 36px;
  margin: 0 5px;
  padding-left: 10px;
  text-transform: capitalize;
  border-radius: 4px;
  color: #ffffff;
  cursor: pointer;
}
@media (min-width: 992px) {
  .kw-setting-instrument-stringed-form-preset-select {
    margin: 0;
  }
}
.kw-setting-instrument-stringed-form-customs {
  width: 100%;
  min-height: 40px;
  position: relative;
  right: auto;
  z-index: 3;
  text-align: center;
}
@media (min-width: 992px) {
  .kw-setting-instrument-stringed-form-customs {
    width: auto;
    margin-right: 10px;
    padding-bottom: 10px;
    min-height: 60px;
    position: absolute;
    right: 0;
  }
}

.kw-setting-instrument-stringed-form-custom-toggle {
  width: 296px;
  height: 40px;
  margin: 0 auto 0 auto;
  padding: 0 20px 0 50px;
  text-align: left;
  color: #ffffff;
  display: flex;
  align-items: center;
  background-image: linear-gradient(to top, #272727, #3c3c3c);
  background-color: #222;
  position: relative;
  z-index: 5;
  border-radius: 5px;
}
@media (min-width: 992px) {
  .kw-setting-instrument-stringed-form-custom-toggle {
    width: 296px;
    margin: 10px auto 10px auto;
  }
}
.kw-setting-instrument-stringed-form-custom-toggle .chevron {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 24px;
  height: 24px;
  padding-bottom: 0;
  padding-left: 2px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.kw-setting-instrument-stringed-form-custom-toggle .chevron.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  padding-bottom: 0;
  padding-left: 2px;
}
.kw-setting-instrument-stringed-form-custom-toggle .text {
  padding-left: 5px;
  font-size: 1.2rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #888888;
}

.kw-setting-instrument-stringed-form-custom-fields {
  width: 298px;
  padding-bottom: 1px;
  background-color: #666;
  display: none;
  border-radius: 5px;
  margin: 0 auto;
  margin-top: -18px;
  position: relative;
  z-index: 4;
}
.kw-setting-instrument-stringed-form-custom-fields.open {
  display: block;
}
@media (min-width: 992px) {
  .kw-setting-instrument-stringed-form-custom-fields {
    margin-top: -28px;
  }
}

.kw-setting-instrument-stringed-form-custom-field-header {
  width: 298px;
  height: 18px;
  display: flex;
  flex-direction: row;
  background-image: linear-gradient(#2f2f2f, #3c3c3c 70%, #484848);
  border-width: 1px;
  border-style: solid;
  -o-border-image: linear-gradient(to top, #666, #484848) 1 100%;
     border-image: linear-gradient(to top, #666, #484848) 1 100%;
  border-top: none;
  border-radius: 0 0 5px 5px;
  position: relative;
}
@media (min-width: 992px) {
  .kw-setting-instrument-stringed-form-custom-field-header {
    -o-border-image: linear-gradient(to top, #666, rgba(0, 0, 0, 0)) 1 100%;
       border-image: linear-gradient(to top, #666, rgba(0, 0, 0, 0)) 1 100%;
  }
}

.kw-setting-instrument-stringed-form-custom-field-header-title {
  min-width: 298px;
  height: 20px;
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: underline;
}

.kw-setting-instrument-stringed-form-custom-field-section {
  width: 296px;
  margin: 2px 1px 1px 1px;
  border-top: 1px solid #3c3c3c;
  border-bottom: 1px solid #090909;
  border-radius: 5px;
  position: relative;
  background-color: #2f2f2f;
}

.kw-setting-instrument-stringed-form-custom-field-section-title {
  width: 292px;
  height: 28px;
  min-width: 100%;
  border-radius: 5px 5px 0 0;
  text-transform: uppercase;
  font-size: 1rem;
  font-weight: bold;
  border-bottom: 1px solid #222;
  color: #888888;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid #222;
  background-image: linear-gradient(#222, #2c2c2c);
}

.kw-setting-instrument-stringed-form-custom-field-chirality {
  width: 292px;
  height: 40px;
  margin: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  /*background-image:
    linear-gradient(rgba(100, 100, 100, 0.8) 0%, rgba(100, 100, 100, 0.8) 100%),
    linear-gradient(to right, darken($cyan, 25%) 0%, darken($cyan, 25%) 50%, darken($red, 25%) 50%, darken($red, 25%) 100%)
  ;*/
  border: 1px solid #3c3c3c;
  background-image: linear-gradient(transparent, #363636);
  border-radius: 5px;
}

.kw-setting-instrument-stringed-form-custom-field-chirality-text {
  width: 55px;
  font-size: 1.2rem;
  color: #e2e2e2;
}
.kw-setting-instrument-stringed-form-custom-field-chirality-text:first-child {
  text-align: center;
}

.kw-setting-instrument-stringed-form-custom-field-chirality-checkbox {
  display: none;
}
.kw-setting-instrument-stringed-form-custom-field-chirality-checkbox:checked + .kw-setting-instrument-stringed-form-custom-field-chirality-label::after {
  /*
  @include light-on($red);
  left: 28px;
  width: 28px;
  height: 28px;
  //background-color: $red;
  */
  left: 23px;
  width: 23px;
  height: 23px;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-instrument-stringed-form-custom-field-chirality-label {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 32px;
  margin: 0 5px;
  background-color: #262626;
  border-radius: 30px;
  border: 2px solid #999;
  transition: all 0.2s;
  cursor: pointer;
  width: 50px;
  height: 27px;
  margin: 0 5px;
  background-color: #151515;
  border-radius: 30px;
  border: 2px solid #666;
}
.kw-setting-instrument-stringed-form-custom-field-chirality-label:after {
  /*
  @include light-on($cyan);
  content: '';
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  //background-color: $cyan;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  */
  content: "";
  position: absolute;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-instrument-stringed-form-custom-field-fretted {
  width: 292px;
  height: 40px;
  margin: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  /*background-image:
    linear-gradient(rgba(100, 100, 100, 0.8) 0%, rgba(100, 100, 100, 0.8) 100%),
    linear-gradient(to right, darken($cyan, 25%) 0%, darken($cyan, 25%) 50%, darken($red, 25%) 50%, darken($red, 25%) 100%)
  ;*/
  border: 1px solid #3c3c3c;
  background-image: linear-gradient(transparent, #363636);
  border-radius: 5px;
}

.kw-setting-instrument-stringed-form-custom-field-fretted-text {
  width: 55px;
  font-size: 1.2rem;
  color: #e2e2e2;
}
.kw-setting-instrument-stringed-form-custom-field-fretted-text:first-child {
  text-align: center;
}

.kw-setting-instrument-stringed-form-custom-field-fretted-checkbox {
  display: none;
}
.kw-setting-instrument-stringed-form-custom-field-fretted-checkbox:checked + .kw-setting-instrument-stringed-form-custom-field-fretted-label::after {
  /*
  @include light-on($red);
  left: 28px;
  width: 28px;
  height: 28px;
  //background-color: $red;
  */
  left: 23px;
  width: 23px;
  height: 23px;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-instrument-stringed-form-custom-field-fretted-label {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 32px;
  margin: 0 5px;
  background-color: #262626;
  border-radius: 30px;
  border: 2px solid #999;
  transition: all 0.2s;
  cursor: pointer;
  width: 50px;
  height: 27px;
  margin: 0 5px;
  background-color: #151515;
  border-radius: 30px;
  border: 2px solid #666;
}
.kw-setting-instrument-stringed-form-custom-field-fretted-label:after {
  /*
  @include light-on($cyan);
  content: '';
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  //background-color: $cyan;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  */
  content: "";
  position: absolute;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  top: 0px;
  left: 0px;
  transition: all 0.2s;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}

.kw-setting-instrument-stringed-form-custom-field-strings-wrap {
  width: 296px;
  padding: 2px;
  border-radius: 5px;
}

.kw-setting-instrument-stringed-form-custom-field-strings-header {
  width: 292px;
  height: 40px;
  display: flex;
  flex-direction: row;
  border-radius: 5px 5px 0 0;
  position: relative;
}

/*.kw-setting-instrument-stringed-form-custom-field-strings-header-title {
  min-width: 300px;
  height: 20px;
  font-size: 1.2rem;
  //flex-grow: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: underline;
}*/
.kw-setting-instrument-stringed-form-custom-field-strings-heading {
  height: 40px;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: #e2e2e2;
}
.kw-setting-instrument-stringed-form-custom-field-strings-heading:nth-child(1) {
  width: 46px;
}
.kw-setting-instrument-stringed-form-custom-field-strings-heading:nth-child(2) {
  width: 28px;
  justify-content: left;
}
.kw-setting-instrument-stringed-form-custom-field-strings-heading:nth-child(3) {
  width: 58px;
}
.kw-setting-instrument-stringed-form-custom-field-strings-heading:nth-child(4) {
  width: 62px;
}
.kw-setting-instrument-stringed-form-custom-field-strings-heading:nth-child(5) {
  width: 60px;
  /*
  &::after {
    content: "";
    width: 12px;
    height: 1px;
    //background-color: lighten($darkestGray, 20%);
    //background-image: linear-gradient(to right, $darkestGray 0%, $darkerGray 50%, $darkestGray 100%); //rgba(0, 0, 0, 0)) 1 100%;
    background-image: linear-gradient(to right, $gray, $darkerGray, lighten($darkestGray, 20%), $darkerGray, $gray);
    //border-top: 1px solid $black;
    //border-bottom: 1px solid lighten($darkestGray, 20%);
    position: absolute;
    top: 50%;
    right: -3px;
  }
  */
}
.kw-setting-instrument-stringed-form-custom-field-strings-heading:nth-child(6) {
  width: 48px;
}

.kw-setting-instrument-stringed-form-custom-field-strings {
  width: 292px;
}

.kw-setting-instrument-stringed-form-string {
  height: 50px;
  margin: 1px 0;
  display: flex;
  flex-direction: row;
  background-color: #2f2f2f;
  border-top: 1px solid #222;
  border-bottom: 1px solid #3c3c3c;
  border-right: 1px solid #343434;
  border-left: 1px solid #343434;
}
.kw-setting-instrument-stringed-form-string:first-child {
  border-radius: 5px 5px 0 0;
}

.kw-setting-instrument-stringed-form-string-subtract {
  width: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kw-setting-instrument-stringed-form-string-subtract button {
  width: 20px;
  height: 20px;
  padding: 0 0 5px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: #666;
  font-size: 3rem;
  font-weight: 500;
  color: #ffffff;
}

.kw-setting-instrument-stringed-form-string-number {
  width: 28px;
  display: flex;
  align-items: center;
  justify-content: left;
}
.kw-setting-instrument-stringed-form-string-number h5 {
  margin: 0;
}

.kw-setting-instrument-stringed-form-string-attribute {
  padding: 0 4px;
  display: flex;
  align-items: center;
}
.kw-setting-instrument-stringed-form-string-attribute input {
  font-family: VT323;
  color: #ffffff;
  text-shadow: 0 0 10px #ffffff, 0 0 0px #ffffff;
  background-color: #222;
  overflow: visible;
  position: relative;
  border-top: 2px solid #3c3c3c;
  border-right: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  border-left: 2px solid #3c3c3c;
  width: 50px;
  border-radius: 5px;
  color: #ffffff;
  text-align: center;
}
.kw-setting-instrument-stringed-form-string-attribute:nth-child(4) {
  width: 62px;
  padding: 0 8px 0 4px;
}
.kw-setting-instrument-stringed-form-string-attribute:nth-child(5) {
  width: 60px;
  padding: 0 0 0 8px;
  background-color: #3c3c3c;
}
.kw-setting-instrument-stringed-form-string-attribute:nth-child(6) {
  width: 48px;
}

.kw-setting-instrument-stringed-form-string-name {
  width: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #3c3c3c;
}

.kw-setting-instrument-stringed-form-custom-field-strings-add-wrap {
  width: 292px;
  height: 48px;
  display: flex;
  flex-direction: row;
  border-radius: 0 0 5px 5px;
  margin: 1px 0;
  background-color: #2f2f2f;
  border-top: 1px solid #222;
  border-bottom: 1px solid #3c3c3c;
  border-right: 1px solid #343434;
  border-left: 1px solid #343434;
}

.kw-setting-instrument-stringed-form-custom-field-strings-add {
  width: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kw-setting-instrument-stringed-form-custom-field-strings-add button {
  width: 20px;
  height: 20px;
  padding: 0 0 0 1px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: #ffffff;
  font-size: 3rem;
  font-weight: bold;
  color: #666;
}

/*      .kw-setting-instrument-stringed-form-custom-field-footer {
        width: 308px;
        height: 50px;
        margin: 0 0 5px 0;
        display: flex;
        flex-direction: row;
        //background-color: $darkGray;

        background-color: $darkestGray;
        border-width: 1px;
        border-style: solid;
        border-color: $darkerGray;
        border: 1px solid $darkerGray;
        //border-image: linear-gradient( to bottom, $darkerGray, rgba(0, 0, 0, 0)) 1 100%;
        border-radius: 5px; //4px 4px 0 0;
      }
        .kw-setting-instrument-stringed-form-custom-field-footer-add {
          width: 50px;
          display: flex;
          align-items: center;
          justify-content: center;

          button {
            width: 20px;
            height: 20px;
            padding: 0 0 0 1px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background-color: $white;
            font-size: 3rem;
            font-weight: bold;
            color: $darkerGray;
            //border: 1px solid $white;
          }
        }
*/
/**
  * KEY-WHIZ GRID STYLES
  */
.kw-setting-instrument-grid-wrap {
  padding-right: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  grid-column: 1/span 3;
  grid-row: 2;
}
@media (min-width: 992px) {
  .kw-setting-instrument-grid-wrap.nudged {
    padding-right: 308px;
  }
}

.rotation-wrapper-outer {
  display: table;
}

.rotation-wrapper-inner {
  padding: 50% 0;
  height: 0;
}

.kw-setting-instrument-grid-container {
  margin: 0 10px;
  /*
      display: block;
      transform-origin: top left;
      transform: rotate(90deg) translate(0, -100%);
      margin-top: -50%;
      white-space: nowrap;

      @include media(">=laptop") {
        transform-origin: unset;
        transform: rotate(0deg) translate(0);
      }
      */
}

.kw-setting-instrument-grid-container-top-bar {
  height: 12px;
  margin-bottom: -12px;
  position: relative;
  z-index: 9999;
  background-color: #484848;
  border-radius: 5px 5px 0 0;
  border-top: 1px solid #222;
  border-right: 1px solid #222;
  border-left: 1px solid #222;
  display: none;
}
.kw-setting-instrument-grid-container-top-bar.displayed {
  display: block;
}

.kw-setting-instrument-grid {
  margin: 0 0 10px 0;
  padding: 10px;
  display: flex;
  position: relative;
  z-index: 0;
  background-color: #484848;
  border-radius: 5px;
  border: 1px solid #222;
}
@media (min-width: 992px) {
  .kw-setting-instrument-grid {
    margin: 0;
  }
}

.kw-setting-instrument-grid-keyboard {
  flex-direction: row;
  display: none;
  position: relative;
  z-index: 1;
}
.kw-setting-instrument-grid-keyboard.visible {
  display: flex;
}

/*.kw-setting-instrument-grid-keyboard-note {

  &.active {
    //@include light-off;
    //@include light-on;
  }

  &.active.red {
    //@include light-off;
    @include light-on($red);
    //background-color: transparentize($red, 0.8);
  }
  &.active.redorange {
    //@include light-off;
    @include light-on($redOrange);
    //background-color: transparentize($redOrange, 0.8);
  }
  &.active.orange {
    //@include light-off;
    @include light-on($orange);
    //background-color: transparentize($orange, 0.8);
  }
  &.active.gold {
    //@include light-off;
    @include light-on($gold);
    //background-color: transparentize($gold, 0.8);
  }
  &.active.yellow {
    //@include light-off;
    @include light-on($yellow);
    //background-color: transparentize($yellow, 0.8);
  }
  &.active.yellowgreen {
    //@include light-off;
    @include light-on($yellowGreen);
    //background-color: transparentize($yellowGreen, 0.8);
  }
  &.active.green {
    //@include light-off;
    @include light-on($green);
    //background-color: transparentize($green, 0.8);
  }
  &.active.cyan {
    //@include light-off;
    @include light-on($cyan);
    //background-color: transparentize($cyan, 0.8);
  }
  &.active.blue {
    //@include light-off;
    @include light-on($blue);
    //background-color: transparentize($blue, 0.8);
  }
  &.active.indigo {
    //@include light-off;
    @include light-on($indigo);
    //background-color: transparentize($indigo, 0.8);
  }
  &.active.violet {
    //@include light-off;
    @include light-on($violet);
    //background-color: transparentize($violet, 0.8);
  }
  &.active.magenta {
    //@include light-off;
    @include light-on($magenta);
    //background-color: transparentize($magenta, 0.8);
  }

  //&.hidden {
    //display: none;
    //visibility: hidden;
  //}
}
*/
.kw-setting-instrument-grid-keyboard-key-black {
  position: relative;
  z-index: 2;
  border-right: 4px solid rgba(226, 226, 226, 0.2);
  border-bottom: 8px solid rgba(255, 255, 255, 0.3);
  border-left: 4px solid rgba(226, 226, 226, 0.2);
  outline: 2px solid #484848;
  cursor: pointer;
}
.kw-setting-instrument-grid-keyboard-key-black.inverted {
  border-right-color: rgba(153, 153, 153, 0.2);
  border-bottom-color: rgba(102, 102, 102, 0.3);
  border-left-color: rgba(153, 153, 153, 0.2);
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-note-label {
  -webkit-user-select: none;
  -moz-user-select: none;
  -o-user-select: none;
  user-select: none;
  width: 175%;
  height: 0;
  margin-bottom: 0;
  padding-bottom: 175%;
  position: absolute;
  bottom: 5%;
  left: -35%;
  color: #aaa;
  transform: rotate(-90deg);
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-note-label span {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
  line-height: 100%;
  font-size: 1.2rem;
  font-weight: bold;
}
.kw-setting-instrument-grid-keyboard-key-black.pressed {
  background-color: #888888;
}
.kw-setting-instrument-grid-keyboard-key-black.active {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  border-right-color: rgba(153, 153, 153, 0.2);
  border-bottom-color: rgba(102, 102, 102, 0.3);
  border-left-color: rgba(153, 153, 153, 0.2);
}
.kw-setting-instrument-grid-keyboard-key-black.active.red {
  color: #fff;
}
.kw-setting-instrument-grid-keyboard-key-black.active.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active .kw-setting-instrument-grid-keyboard-note-label {
  color: #000000;
}
.kw-setting-instrument-grid-keyboard-key-black.active.red .kw-setting-instrument-grid-keyboard-note-label {
  color: #fff;
}
.kw-setting-instrument-grid-keyboard-key-black.active.red.hidden span {
  color: #aaa;
  text-shadow: none;
}
.kw-setting-instrument-grid-keyboard-key-black.active.red.inverted .kw-setting-instrument-grid-keyboard-note-label {
  color: #ffffff;
}
.kw-setting-instrument-grid-keyboard-key-black.active.hidden {
  background-image: unset;
  background-color: #000000;
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-black.active.hidden span {
  color: #aaa;
  text-shadow: none;
}
.kw-setting-instrument-grid-keyboard-key-black.active.hidden.inverted {
  background-color: #ffffff;
}
.kw-setting-instrument-grid-keyboard-key-black.active.hidden.inverted .kw-setting-instrument-grid-keyboard-note-label {
  color: #000000;
}
.kw-setting-instrument-grid-keyboard-key-black.active.pressed {
  background-color: #888888;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio {
  width: 300%;
  height: 0;
  padding-bottom: calc(300% - 4px);
  position: absolute;
  bottom: 0;
  left: -100%;
  border: 2px solid #ffffff;
  background-color: unset;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.red ~ .kw-setting-instrument-grid-keyboard-note-label span {
  color: #ffffff;
  text-shadow: -1px -1px 0 #aaa, -1px 1px 0 #aaa, 1px -1px 0 #aaa, 1px 1px 0 #aaa;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.red {
  border-color: #ff0000;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.redorange {
  border-color: #ff8000;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.orange {
  border-color: #a8a800;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.gold {
  border-color: #61c200;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.yellow {
  border-color: #00b300;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.yellowgreen {
  border-color: #00b35a;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.green {
  border-color: #009999;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.cyan {
  border-color: #0080ff;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.blue {
  border-color: #3333ff;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.indigo {
  border-color: #8000ff;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.violet {
  border-color: #cc00cc;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.magenta {
  border-color: #ff0080;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-arpeggio.hidden {
  visibility: hidden;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-chord {
  width: 300%;
  height: 0;
  padding-bottom: calc(300% - 4px);
  position: absolute;
  bottom: 0;
  left: -100%;
  border: 2px solid #ffffff;
  border-radius: 50%;
  z-index: 3;
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-chord span {
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(0deg);
  color: #000000;
  font-weight: bold;
  font-size: 1.2rem;
  text-shadow: 1px 1px 10px rgba(255, 255, 255, 0.4), -1px -1px 10px rgba(255, 255, 255, 0.4), 1px -1px 10px rgba(255, 255, 255, 0.4), -1px 1px 10px rgba(255, 255, 255, 0.4);
}
.kw-setting-instrument-grid-keyboard-key-black .kw-setting-instrument-grid-keyboard-key-black-chord.red span {
  color: #ffffff;
}

.kw-setting-instrument-grid-keyboard-key-white {
  position: relative;
  z-index: 1;
  border-top: 1px solid #484848;
  border-right: 1px solid #484848;
  border-bottom: 1px solid #484848;
  border-left: 1px solid #484848;
  text-align: center;
  cursor: pointer;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-note-label {
  -webkit-user-select: none;
  -moz-user-select: none;
  -o-user-select: none;
  user-select: none;
  width: 100%;
  height: 0;
  margin-bottom: 0;
  padding-bottom: 100%;
  position: absolute;
  bottom: 2.5%;
  left: 0;
  color: #aaa;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-note-label span {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
  line-height: 100%;
  font-size: 1.2rem;
  font-weight: bold;
}
.kw-setting-instrument-grid-keyboard-key-white.inverted span {
  color: #aaa;
}
.kw-setting-instrument-grid-keyboard-key-white.pressed {
  background-color: #888888;
}
.kw-setting-instrument-grid-keyboard-key-white.active {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
}
.kw-setting-instrument-grid-keyboard-key-white.active.red {
  color: #fff;
}
.kw-setting-instrument-grid-keyboard-key-white.active.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
  box-shadow: unset;
}
.kw-setting-instrument-grid-keyboard-key-white.active .kw-setting-instrument-grid-keyboard-note-label {
  color: #000000;
}
.kw-setting-instrument-grid-keyboard-key-white.active.inverted .kw-setting-instrument-grid-keyboard-note-label span {
  color: #000000;
}
.kw-setting-instrument-grid-keyboard-key-white.active.red .kw-setting-instrument-grid-keyboard-note-label {
  color: #fff;
}
.kw-setting-instrument-grid-keyboard-key-white.active.red.hidden span {
  color: #aaa;
  text-shadow: none;
}
.kw-setting-instrument-grid-keyboard-key-white.active.red.inverted .kw-setting-instrument-grid-keyboard-note-label span {
  color: #ffffff;
}
.kw-setting-instrument-grid-keyboard-key-white.active.hidden {
  background-image: unset;
  background-color: #ffffff;
}
.kw-setting-instrument-grid-keyboard-key-white.active.hidden .kw-setting-instrument-grid-keyboard-note-label {
  color: #aaa;
}
.kw-setting-instrument-grid-keyboard-key-white.active.hidden.inverted {
  background-color: #000000;
}
.kw-setting-instrument-grid-keyboard-key-white.active.hidden.inverted .kw-setting-instrument-grid-keyboard-note-label span {
  color: #aaa;
  text-shadow: none;
}
.kw-setting-instrument-grid-keyboard-key-white.active.pressed {
  background-color: #888888;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio {
  width: 100%;
  height: 0;
  margin-bottom: 0;
  padding-bottom: calc(100% - 4px);
  position: absolute;
  bottom: 2.5%;
  left: 0;
  border: 2px solid #ffffff;
  background-color: unset;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.red ~ .kw-setting-instrument-grid-keyboard-note-label span {
  color: #ffffff;
  text-shadow: -1px -1px 0 #aaa, -1px 1px 0 #aaa, 1px -1px 0 #aaa, 1px 1px 0 #aaa;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.red {
  border-color: #ff0000;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.redorange {
  border-color: #ff8000;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.orange {
  border-color: #a8a800;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.gold {
  border-color: #61c200;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.yellow {
  border-color: #00b300;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.yellowgreen {
  border-color: #00b35a;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.green {
  border-color: #009999;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.cyan {
  border-color: #0080ff;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.blue {
  border-color: #3333ff;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.indigo {
  border-color: #8000ff;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.violet {
  border-color: #cc00cc;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.magenta {
  border-color: #ff0080;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-arpeggio.hidden {
  visibility: hidden;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-chord {
  width: 100%;
  height: 0;
  margin-bottom: 0;
  padding-bottom: calc(100% - 4px);
  position: absolute;
  bottom: 2.5%;
  left: 0;
  border: 2px solid #ffffff;
  border-radius: 50%;
  z-index: 4;
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-chord span {
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000000;
  font-weight: bold;
  font-size: 1.2rem;
  text-shadow: 1px 1px 10px rgba(255, 255, 255, 0.4), -1px -1px 10px rgba(255, 255, 255, 0.4), 1px -1px 10px rgba(255, 255, 255, 0.4), -1px 1px 10px rgba(255, 255, 255, 0.4);
}
.kw-setting-instrument-grid-keyboard-key-white .kw-setting-instrument-grid-keyboard-key-white-chord.red span {
  color: #ffffff;
  text-shadow: unset;
}

/*
.kw-setting-instrument-grid-keyboard-key-c {

}

.kw-setting-instrument-grid-keyboard-key-c-sharp {
  //margin: 0 -5px 0 -11px;
  //margin: 0 -0.4370627% 0 -0.96153794%;
}

.kw-setting-instrument-grid-keyboard-key-d {

}

.kw-setting-instrument-grid-keyboard-key-d-sharp {
  //margin: 0 -11px 0 -5px;
  //margin: 0 -0.96153794% 0 -0.4370627%;
}

.kw-setting-instrument-grid-keyboard-key-e {

}

.kw-setting-instrument-grid-keyboard-key-f {

}

.kw-setting-instrument-grid-keyboard-key-f-sharp {
  //margin: 0 -3px 0 -13px;
  //margin: 0 -0.26223762% 0 -1.13636302%;
}

.kw-setting-instrument-grid-keyboard-key-g {

}

.kw-setting-instrument-grid-keyboard-key-g-sharp {
  //margin: 0 -8px 0 -8px;
  //margin: 0 -0.69930032% 0 -0.69930032%;
}

.kw-setting-instrument-grid-keyboard-key-a {

}

.kw-setting-instrument-grid-keyboard-key-a-sharp {
  //margin: 0 -13px 0 -3px;
  //margin: 0 -1.13636302% 0 -0.26223762%;
}

.kw-setting-instrument-grid-keyboard-key-b {

}
*/
.kw-setting-instrument-grid-stringed {
  flex-direction: column;
  display: none;
}
.kw-setting-instrument-grid-stringed.visible {
  display: flex;
}

.kw-setting-instrument-grid-stringed-string {
  display: flex;
  flex-direction: row;
}
.kw-setting-instrument-grid-stringed-string.lefty {
  right: auto;
  left: 0;
  flex-direction: row-reverse;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note {
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-align: center;
  background-color: #1a1100;
  cursor: pointer;
  z-index: 3;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-fret {
  width: 8px;
  height: 32px;
  position: absolute;
  top: 0;
  right: 0;
  left: auto;
  background-color: #888888;
  background-image: linear-gradient(to right, #e2e2e2 5%, #222 5%, #e2e2e2 35%, #e2e2e2 65%, #222 95%, #e2e2e2 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-fret.fretless {
  visibility: hidden;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-fret.lefty {
  right: auto;
  left: 0;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-string {
  width: 100%;
  position: absolute;
  top: auto;
  bottom: auto;
  right: 0;
  left: auto;
  background-color: #222;
  background-image: linear-gradient(#222, #888888, #222);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-string.lefty {
  right: auto;
  left: 0;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-string-wound {
  background-image: repeating-linear-gradient(-78deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5) 1px, rgba(200, 200, 200, 0.5) 2px, rgba(200, 200, 200, 0.5) 3px), linear-gradient(#000000, #e2e2e2, #000000);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label {
  width: 100%;
  max-width: 28px;
  aspect-ratio: 1/1;
  margin-right: 8px;
  margin-left: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  position: relative;
  z-index: 4;
  font-size: 1.1rem;
  font-weight: bold;
  color: #aaa;
  text-shadow: -1px -1px 0 #000000, -1px 1px 0 #000000, 1px -1px 0 #000000, 1px 1px 0 #000000;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active, .kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.activeTemporarily {
  visibility: visible;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.hidden, .kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.activeTemporarily.hidden {
  visibility: hidden;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.pressed {
  background-color: #888888;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.red {
  color: #fff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.red {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3333 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 51, 0.4) 2px, rgba(255, 51, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 0, 0.4) 2px, rgba(179, 0, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4d4d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.redorange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff8000;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff9933 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 153, 51, 0.4) 2px, rgba(255, 153, 51, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 90, 0, 0.4) 2px, rgba(179, 90, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ffa64d, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.orange {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #a8a800;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #dbdb00 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(219, 219, 0, 0.4) 2px, rgba(219, 219, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(92, 92, 0, 0.4) 2px, rgba(92, 92, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#f5f500, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.gold {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #61c200;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #7bf500 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(123, 245, 0, 0.4) 2px, rgba(123, 245, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(59, 117, 0, 0.4) 2px, rgba(59, 117, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#88ff0f, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.yellow {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b300;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e600 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 0, 0.4) 2px, rgba(0, 230, 0, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 0, 0.4) 2px, rgba(0, 102, 0, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(lime, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.yellowgreen {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #00b35a;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00e673 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 230, 115, 0.4) 2px, rgba(0, 230, 115, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 102, 51, 0.4) 2px, rgba(0, 102, 51, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00ff80, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.green {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #009999;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #00cccc 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(0, 204, 204, 0.4) 2px, rgba(0, 204, 204, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 77, 77, 0.4) 2px, rgba(0, 77, 77, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#00e6e6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.cyan {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #0080ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #3399ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(51, 153, 255, 0.4) 2px, rgba(51, 153, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 90, 179, 0.4) 2px, rgba(0, 90, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#4da6ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.blue {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #3333ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #6666ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(102, 102, 255, 0.4) 2px, rgba(102, 102, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 230, 0.4) 2px, rgba(0, 0, 230, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#8080ff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.indigo {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #8000ff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #9933ff 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(153, 51, 255, 0.4) 2px, rgba(153, 51, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(90, 0, 179, 0.4) 2px, rgba(90, 0, 179, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#a64dff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.violet {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #cc00cc;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, fuchsia 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 0, 255, 0.4) 2px, rgba(255, 0, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(128, 0, 128, 0.4) 2px, rgba(128, 0, 128, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff1aff, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.magenta {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ff0080;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, #ff3399 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 51, 153, 0.4) 2px, rgba(255, 51, 153, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(179, 0, 90, 0.4) 2px, rgba(179, 0, 90, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(#ff4da6, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note .kw-setting-instrument-grid-stringed-note-label.active.pressed {
  background-color: #888888;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open {
  background-color: unset;
  border-top: unset;
  border-bottom: unset;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-fret {
  width: 16px;
  background-image: unset;
  background-color: #ffffff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-fret.fretless {
  visibility: visible;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-string {
  width: 16px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open span.kw-setting-instrument-grid-stringed-note-label {
  margin-right: 8px;
  margin-left: 0px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open span.kw-setting-instrument-grid-stringed-note-label.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open.active span.kw-setting-instrument-grid-stringed-note-label {
  margin-right: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open.active span.kw-setting-instrument-grid-stringed-note-label.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open-offset {
  background-image: unset;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open-offset .kw-setting-instrument-grid-stringed-note-fret {
  width: 16px;
  border-radius: 50% 0 0 50%;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open-offset .kw-setting-instrument-grid-stringed-note-fret.fretless {
  visibility: visible;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open-offset .kw-setting-instrument-grid-stringed-note-fret.lefty {
  border-radius: 0 50% 50% 0;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open-offset .kw-setting-instrument-grid-stringed-note-label {
  margin-right: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note.kw-setting-instrument-grid-stringed-note-open-offset .kw-setting-instrument-grid-stringed-note-label.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio {
  width: 24px;
  height: 24px;
  margin-right: 8px;
  position: absolute;
  top: 4px;
  bottom: 0;
  z-index: 5;
  border: 2px solid #ffffff;
  transition: all 0.2s;
  display: flex;
  align-content: center;
  justify-content: center;
  background-color: unset;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.red ~ span {
  color: #ffffff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.red {
  border-color: #ff0000;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.redorange {
  border-color: #ff8000;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.orange {
  border-color: #a8a800;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.gold {
  border-color: #61c200;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.yellow {
  border-color: #00b300;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.yellowgreen {
  border-color: #00b35a;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.green {
  border-color: #009999;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.cyan {
  border-color: #0080ff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.blue {
  border-color: #3333ff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.indigo {
  border-color: #8000ff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.violet {
  border-color: #cc00cc;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.magenta {
  border-color: #ff0080;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.hidden {
  visibility: hidden;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-arpeggio.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-arpeggio {
  margin-right: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-arpeggio.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord {
  position: absolute;
  top: 5px;
  bottom: 0;
  z-index: 6;
  border: 2px solid #ffffff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  margin-right: 8px;
  transition: all 0.2s;
  display: flex;
  align-content: center;
  justify-content: center;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord span {
  color: #000000;
  font-size: 1.1rem;
  font-weight: bold;
  line-height: 22px;
  display: flex;
  align-items: center;
  text-shadow: 1px 1px 10px rgba(255, 255, 255, 0.4), -1px -1px 10px rgba(255, 255, 255, 0.4), 1px -1px 10px rgba(255, 255, 255, 0.4), -1px 1px 10px rgba(255, 255, 255, 0.4);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.red span {
  color: #ffffff;
  text-shadow: unset;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.bar-down {
  height: 28px;
  border-radius: 12px 12px 0 0;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.bar-down span {
  line-height: 28px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.bar-up {
  height: 28px;
  top: 0;
  bottom: 4px;
  border-radius: 0 0 12px 12px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.bar-up span {
  line-height: 28px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.bar-both {
  height: 32px;
  top: 0;
  border-radius: 0;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.bar-both span {
  line-height: 32px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-chord.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-chord {
  margin-right: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-chord span {
  font-size: 1.8rem;
  font-weight: normal;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-chord.muted {
  background-color: #ffffff;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-chord.muted span {
  color: #000000;
  font-size: 2.8rem;
  font-weight: normal;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open .kw-setting-instrument-grid-stringed-note-chord.lefty {
  margin-right: 0px;
  margin-left: 8px;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-empty {
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-align: center;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-empty.kw-setting-instrument-grid-stringed-note-empty-middle:first-child {
  background-color: unset;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open-offset-first {
  background-color: unset;
  background-image: linear-gradient(to top left, #1a1100 48%, #392613 48%, #392613 52%, transparent 52%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open-offset-first .kw-setting-instrument-grid-stringed-note-fret.lefty {
  border-radius: 0 50% 50% 0;
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open-offset-last {
  background-color: unset;
  background-image: linear-gradient(to bottom left, #1a1100 48%, #392613 48%, #392613 52%, transparent 52%);
}
.kw-setting-instrument-grid-stringed-string .kw-setting-instrument-grid-stringed-note-open-offset-last .kw-setting-instrument-grid-stringed-note-fret.lefty {
  border-radius: 0 50% 50% 0;
}
.kw-setting-instrument-grid-stringed-string:first-child .kw-setting-instrument-grid-stringed-note-empty {
  border-top: unset;
  border-bottom: unset;
}
.kw-setting-instrument-grid-stringed-string:last-child .kw-setting-instrument-grid-stringed-note-empty {
  border-top: unset;
  border-bottom: unset;
}

.kw-setting-instrument-grid-stringed-string-fret-labels {
  display: flex;
  flex-direction: row;
}
.kw-setting-instrument-grid-stringed-string-fret-labels.lefty {
  flex-direction: row-reverse;
}

.kw-setting-instrument-grid-stringed-string-fret-label {
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-align: center;
}
.kw-setting-instrument-grid-stringed-string-fret-label span {
  width: 13px;
  height: 13px;
  margin: 0 8px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  border-radius: 6.5px;
}
.kw-setting-instrument-grid-stringed-string-fret-label.lefty span {
  margin: 0 0 0 8px;
}
.kw-setting-instrument-grid-stringed-string-fret-label.dot-single span {
  background-color: #ffffff;
  border: 1px solid #ffffff;
  color: #000000;
  font-weight: 600;
}
.kw-setting-instrument-grid-stringed-string-fret-label.dot-double span {
  width: 26px;
  background-color: #ffffff;
  border: 1px solid #ffffff;
  color: #000000;
  font-weight: 600;
  overflow: visible;
  flex-shrink: 0;
}

.kw-setting-instrument-volume {
  width: 280px;
  height: 40px;
  padding: 0 10px 0 0;
  margin: 10px auto;
  background-color: #484848;
  /*
  background-image: linear-gradient(
  	to right,
  	lighten($darkestGray, 15%) 0%,
  	lighten($darkestGray, 15%) 40%,
  	transparentize(darken($red, 10%), 0.4) 100%
  );
  */
  border-radius: 5px;
  border: 1px solid #222;
  grid-column: 1/span 3;
  grid-row: 4;
  display: grid;
  grid-template-columns: 40px 1fr;
  grid-template-rows: auto;
}
@media (min-width: 992px) {
  .kw-setting-instrument-volume {
    grid-row: 3;
  }
}

.kw-setting-instrument-volume-button {
  background-color: #444;
  /*
  background-image:
    repeating-radial-gradient(
      transparent 0,
      transparent 2px,
      darken($lightOffTransGray, 20%) 2px,
      darken($lightOffTransGray, 20%) 3px,
      transparent 3px,
      transparent 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 2px,
      transparentize($lightGray, 0.95) 2px,
      transparentize($lightGray, 0.95) 3px,
      transparent 3px,
      transparent 5px
    ),
    radial-gradient(
      transparentize($white, 0.6),
      transparentize($white, 0.7) 60%,
      transparentize($white, 0.6) 100%
    )
  ;
  */
  background-image: repeating-radial-gradient(transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(101, 101, 101, 0.5) 2px, rgba(101, 101, 101, 0.5) 3px, transparent 3px, transparent 5px), radial-gradient(rgba(127, 127, 127, 0.5), transparent 90%), radial-gradient(rgba(102, 102, 102, 0.5), transparent 95%);
  background-position: center;
  color: #222;
  text-shadow: 0 0.5px 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s;
  width: 28px;
  height: 28px;
  margin: 5px 0 5px 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 5px;
  grid-column: 1/span 1;
  cursor: pointer;
  background-color: #888888;
}
.kw-setting-instrument-volume-button.active {
  background-color: #ccc;
  transition: all 0.2s;
  box-shadow: 0 0 2px #ffffff;
  /*
    background-image:

      repeating-radial-gradient(
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 1px,
        transparentize(darken($color, 35%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      repeating-linear-gradient(
        90deg,
        transparentize(darken($color, 15%), 0.9) 0,
        transparentize(darken($color, 15%), 0.9) 1px,
        transparentize(darken($color, 30%), 0.5) 1px,
        transparentize(darken($color, 30%), 0.5) 2px,
        transparentize(darken($color, 15%), 0.9) 2px,
        transparentize(darken($color, 15%), 0.9) 3px
      ),
      radial-gradient(
        transparentize($white, 0.6),
        transparentize($white, 0.7) 60%,
        transparentize($white, 0.6) 100%
      )
    ; // !important
  */
  background-image: radial-gradient(transparent, white 90%), repeating-radial-gradient(transparent 0, transparent 2px, rgba(255, 255, 255, 0.4) 2px, rgba(255, 255, 255, 0.4) 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(217, 217, 217, 0.4) 2px, rgba(217, 217, 217, 0.4) 3px, transparent 3px, transparent 5px), radial-gradient(white, transparent 90%), radial-gradient(#ffffff, transparent 95%);
}
.kw-setting-instrument-volume-button.active.pulsed {
  background-color: #000000;
  box-shadow: unset;
}

.kw-setting-instrument-volume-slider {
  padding: 0 0 0 5px;
  grid-column: 2/span 1;
  display: flex;
  align-items: center;
}

.kw-setting-instrument-volume-slider-input {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  border-radius: 4px;
  background: #000000;
  outline: none;
  opacity: 0.7;
  transition: opacity 0.2s;
  /* Mouse-over effects */
  /* The slider handle (use -webkit- (Chrome, Opera, Safari, Edge) and -moz- (Firefox) to override default look) */
}
.kw-setting-instrument-volume-slider-input::-webkit-slider-thumb {
  /*-webkit-appearance: none;
   appearance: none;
   @include light-off;
   @include light-on($white);
   width: 20px;
   height: 20px;
   border-radius: 50%;
   //background: $blue;
   cursor: pointer;
  */
  width: 20px;
  height: 20px;
  border-radius: 50%;
  cursor: pointer;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}
.kw-setting-instrument-volume-slider-input::-moz-range-thumb {
  /*@include light-off;
  @include light-on($white);
   width: 20px;
   height: 20px;
   border-radius: 50%;
   //background: $blue;
   cursor: pointer;
  */
  width: 20px;
  height: 20px;
  border-radius: 50%;
  cursor: pointer;
  background-image: conic-gradient(#c9c9c9, #666, #c9c9c9, #666, #c9c9c9);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvbWUuY3NzIiwiaG9tZS5zY3NzIiwiX2NvbW1vbi5zY3NzIiwibGlicmFyaWVzL19ub3JtYWxpemUuc2NzcyIsInBhcnRpYWxzL19icmVha3BvaW50cy5tb2R1bGVzLnNjc3MiLCJwYXJ0aWFscy9fdmFyaWFibGVzLnNjc3MiLCJwYXJ0aWFscy9fY29sb3JzLm1vZHVsZXMuc2NzcyIsInBhcnRpYWxzL19mb250cy5zY3NzIiwicGFydGlhbHMvX21peGlucy5zY3NzIiwibGlicmFyaWVzL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJwYXJ0aWFscy9fZWxlbWVudHMuc2NzcyIsInBhcnRpYWxzL19oZWFkZXIuc2NzcyIsInBhcnRpYWxzL19zZWFyY2hmb3JtLnNjc3MiLCJwYXJ0aWFscy9fY29udGVudC5zY3NzIiwicGFydGlhbHMvX2Zvb3Rlci5zY3NzIiwicGFydGlhbHMvX21pc2Muc2NzcyIsInBhcnRpYWxzL2tleS13aGl6L19rZXktd2hpei5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX21peGlucy5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX2dsb2JhbC5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX3NldHRpbmdzLnNjc3MiLCJwYXJ0aWFscy9rZXktd2hpei9fa2V5LnNjc3MiLCJwYXJ0aWFscy9rZXktd2hpei9faW50ZXJ2YWwuc2NzcyIsInBhcnRpYWxzL2tleS13aGl6L19wYXR0ZXJuLnNjc3MiLCJwYXJ0aWFscy9rZXktd2hpei9fc2hhcGUuc2NzcyIsInBhcnRpYWxzL2tleS13aGl6L19zY2FsZS5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX2FycGVnZ2lvLnNjc3MiLCJwYXJ0aWFscy9rZXktd2hpei9fY2hvcmQuc2NzcyIsInBhcnRpYWxzL2tleS13aGl6L19zZXF1ZW5jZS5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX2luc3RydW1lbnQuc2NzcyIsInBhcnRpYWxzL2tleS13aGl6L19rZXlib2FyZC5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX3N0cmluZ2VkLnNjc3MiLCJwYXJ0aWFscy9rZXktd2hpei9fZ3JpZC5zY3NzIiwicGFydGlhbHMva2V5LXdoaXovX3NvdW5kLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCOzs7O0dBQUE7QUNBQTs7OztHQUFBO0FDQUEsMkVBQUE7QUFFQTsrRUFBQTtBQUdBOzs7RUFBQTtBQUtBO0VBQ0UsaUJBQUEsRUFBQSxNQUFBO0VBQ0EsOEJBQUEsRUFBQSxNQUFBO0FIU0Y7O0FHTkE7K0VBQUE7QUFHQTs7RUFBQTtBQUlBO0VBQ0UsU0FBQTtBSE9GOztBR0pBOztFQUFBO0FBSUE7RUFDRSxjQUFBO0FITUY7O0FHSEE7OztFQUFBO0FBS0E7RUFDRSxjQUFBO0VBQ0EsZ0JBQUE7QUhLRjs7QUdGQTsrRUFBQTtBQUdBOzs7RUFBQTtBQUtBO0VBQ0UsdUJBQUEsRUFBQSxNQUFBO0VBQ0EsU0FBQSxFQUFBLE1BQUE7RUFDQSxpQkFBQSxFQUFBLE1BQUE7QUhHRjs7QUdBQTs7O0VBQUE7QUFLQTtFQUNFLGlDQUFBLEVBQUEsTUFBQTtFQUNBLGNBQUEsRUFBQSxNQUFBO0FIRUY7O0FHQ0E7K0VBQUE7QUFHQTs7RUFBQTtBQUlBO0VBQ0UsNkJBQUE7QUhBRjs7QUdHQTs7O0VBQUE7QUFLQTtFQUNFLG1CQUFBLEVBQUEsTUFBQTtFQUNBLDBCQUFBLEVBQUEsTUFBQTtFQUNBLHlDQUFBO1VBQUEsaUNBQUEsRUFBQSxNQUFBO0FIREY7O0FHSUE7O0VBQUE7QUFJQTs7RUFFRSxtQkFBQTtBSEZGOztBR0tBOzs7RUFBQTtBQUtBOzs7RUFHRSxpQ0FBQSxFQUFBLE1BQUE7RUFDQSxjQUFBLEVBQUEsTUFBQTtBSEhGOztBR01BOztFQUFBO0FBSUE7RUFDRSxjQUFBO0FISkY7O0FHT0E7OztFQUFBO0FBS0E7O0VBRUUsY0FBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHdCQUFBO0FITEY7O0FHUUE7RUFDRSxlQUFBO0FITEY7O0FHUUE7RUFDRSxXQUFBO0FITEY7O0FHUUE7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U2lCSTtFRGpnQkY7SUFQRSxnQkhoQnFCO0VMMmdCdkI7QUFDRjtBU1lJO0VEamdCRjtJQUhFLGdCSG5Cc0I7RUwrZ0J4QjtBQUNGOztBUWxlRTtFQW5CQSxtQkgvQnVCO0VHZ0N2Qix3QkFBQTtBUnlmRjtBU0VJO0VEemVGO0lBZkUsbUJIbEN5QjtFTDRoQjNCO0FBQ0Y7QVNISTtFRHplRjtJQVhFLG1CSHJDcUI7RUxnaUJ2QjtBQUNGO0FTUkk7RUR6ZUY7SUFQRSxtQkh4Q3FCO0VMb2lCdkI7QUFDRjtBU2JJO0VEemVGO0lBSEUsbUJIM0NzQjtFTHdpQnhCO0FBQ0Y7O0FRbmZFO0VBbkRBLGdCSFB1QjtFR1F2Qix3QkFBQTtFQXVCQSxtQkgvQnVCO0VHZ0N2Qix3QkFBQTtBUm9oQkY7QVN6Qkk7RURqZUY7SUEvQ0UsZ0JIVnlCO0VMdWpCM0I7QUFDRjtBUzlCSTtFRGplRjtJQTNDRSxnQkhicUI7RUwyakJ2QjtBQUNGO0FTbkNJO0VEamVGO0lBdkNFLGdCSGhCcUI7RUwrakJ2QjtBQUNGO0FTeENJO0VEamVGO0lBbkNFLGdCSG5Cc0I7RUxta0J4QjtBQUNGO0FTN0NJO0VEamVGO0lBdkJFLG1CSGxDeUI7RUwya0IzQjtBQUNGO0FTbERJO0VEamVGO0lBbkJFLG1CSHJDcUI7RUwra0J2QjtBQUNGO0FTdkRJO0VEamVGO0lBZkUsbUJIeENxQjtFTG1sQnZCO0FBQ0Y7QVM1REk7RURqZUY7SUFYRSxtQkgzQ3NCO0VMdWxCeEI7QUFDRjs7QVFyZ0JFO0VBeEJBLGtCSC9EdUI7RUdnRXZCLHdCQUFBO0VBQ0EsNEJBQUE7QVJpaUJGO0FTdkVJO0VEcGNGO0lBbkJFLGtCSG5FeUI7SUdvRXpCLDRCQUFBO0VSa2lCRjtBQUNGO0FTN0VJO0VEcGNGO0lBZEUsa0JIdkVxQjtJR3dFckIsNEJBQUE7RVJtaUJGO0FBQ0Y7QVNuRkk7RURwY0Y7SUFURSxrQkgzRXFCO0lHNEVyQiw0QkFBQTtFUm9pQkY7QUFDRjtBU3pGSTtFRHBjRjtJQUpFLGtCSC9Fc0I7SUdnRnRCLDRCQUFBO0VScWlCRjtBQUNGOztBUXRnQkU7RUF4QkEsaUJINUZ1QjtFRzZGdkIsd0JBQUE7RUFDQSw0QkFBQTtBUmtpQkY7QVNyR0k7RUR2YUY7SUFuQkUsaUJIaEd5QjtJR2lHekIsNEJBQUE7RVJtaUJGO0FBQ0Y7QVMzR0k7RUR2YUY7SUFkRSxpQkhwR3FCO0lHcUdyQiw0QkFBQTtFUm9pQkY7QUFDRjtBU2pISTtFRHZhRjtJQVRFLGlCSHhHcUI7SUd5R3JCLDRCQUFBO0VScWlCRjtBQUNGO0FTdkhJO0VEdmFGO0lBSkUsaUJINUdzQjtJRzZHdEIsNEJBQUE7RVJzaUJGO0FBQ0Y7O0FRbGdCRTtFQTdCQSxpQkh6SHVCO0VHMEh2QixrQkgxSHVCO0VHMkh2Qix3QkFBQTtFQUNBLDRCQUFBO0FSbWlCRjtBU3BJSTtFRHJZRjtJQXZCRSxpQkg5SHlCO0lHK0h6QixrQkgvSHlCO0lHZ0l6Qiw0QkFBQTtFUm9pQkY7QUFDRjtBUzNJSTtFRHJZRjtJQWpCRSxpQkhuSXFCO0lHb0lyQixrQkhwSXFCO0lHcUlyQiw0QkFBQTtFUnFpQkY7QUFDRjtBU2xKSTtFRHJZRjtJQVhFLGlCSHhJcUI7SUd5SXJCLGtCSHpJcUI7SUcwSXJCLDZCQUFBO0VSc2lCRjtBQUNGO0FTekpJO0VEcllGO0lBTEUsaUJIN0lzQjtJRzhJdEIsa0JIOUlzQjtJRytJdEIsNkJBQUE7RVJ1aUJGO0FBQ0Y7O0FRN2dCRTtFQW5CQSxpQkhwSm9CO0VHcUpwQix5QkFBQTtBUm9pQkY7QVNyS0k7RUQ3V0Y7SUFmRSxpQkh2SnNCO0VMNHJCeEI7QUFDRjtBUzFLSTtFRDdXRjtJQVhFLGlCSDFKa0I7RUxnc0JwQjtBQUNGO0FTL0tJO0VEN1dGO0lBUEUsaUJIN0prQjtFTG9zQnBCO0FBQ0Y7QVNwTEk7RUQ3V0Y7SUFIRSxpQkhoS21CO0VMd3NCckI7QUFDRjs7QVE5Z0JFO0VBbkJBLG9CSDVLb0I7RUc2S3BCLHlCQUFBO0FScWlCRjtBUzlMSTtFRHJWRjtJQWZFLG9CSC9Lc0I7RUxxdEJ4QjtBQUNGO0FTbk1JO0VEclZGO0lBWEUsb0JIbExrQjtFTHl0QnBCO0FBQ0Y7QVN4TUk7RURyVkY7SUFQRSxvQkhyTGtCO0VMNnRCcEI7QUFDRjtBUzdNSTtFRHJWRjtJQUhFLG9CSHhMbUI7RUxpdUJyQjtBQUNGOztBUS9nQkU7RUFuQkEsa0JIM011QjtFRzRNdkIseUJBQUE7QVJzaUJGO0FTdk5JO0VEN1RGO0lBZkUsa0JIOU15QjtFTHF2QjNCO0FBQ0Y7QVM1Tkk7RUQ3VEY7SUFYRSxrQkhqTnFCO0VMeXZCdkI7QUFDRjtBU2pPSTtFRDdURjtJQVBFLGtCSHBOcUI7RUw2dkJ2QjtBQUNGO0FTdE9JO0VEN1RGO0lBSEUsa0JIdk5zQjtFTGl3QnhCO0FBQ0Y7O0FRaGhCRTtFQW5CQSxtQkhuT3VCO0VHb092Qix5QkFBQTtBUnVpQkY7QVNoUEk7RURyU0Y7SUFmRSxtQkh0T3lCO0VMOHdCM0I7QUFDRjtBU3JQSTtFRHJTRjtJQVhFLG1CSHpPcUI7RUxreEJ2QjtBQUNGO0FTMVBJO0VEclNGO0lBUEUsbUJINU9xQjtFTHN4QnZCO0FBQ0Y7QVMvUEk7RURyU0Y7SUFIRSxtQkgvT3NCO0VMMHhCeEI7QUFDRjs7QVFqaUJFO0VBbkdBLGlCSHBKb0I7RUdxSnBCLHlCQUFBO0VBdUJBLG9CSDVLb0I7RUc2S3BCLHlCQUFBO0FSa25CRjtBUzNRSTtFRDdSRjtJQS9GRSxpQkh2SnNCO0VMa3lCeEI7QUFDRjtBU2hSSTtFRDdSRjtJQTNGRSxpQkgxSmtCO0VMc3lCcEI7QUFDRjtBU3JSSTtFRDdSRjtJQXZGRSxpQkg3SmtCO0VMMHlCcEI7QUFDRjtBUzFSSTtFRDdSRjtJQW5GRSxpQkhoS21CO0VMOHlCckI7QUFDRjtBUy9SSTtFRDdSRjtJQXZFRSxvQkgvS3NCO0VMc3pCeEI7QUFDRjtBU3BTSTtFRDdSRjtJQW5FRSxvQkhsTGtCO0VMMHpCcEI7QUFDRjtBU3pTSTtFRDdSRjtJQS9ERSxvQkhyTGtCO0VMOHpCcEI7QUFDRjtBUzlTSTtFRDdSRjtJQTNERSxvQkh4TG1CO0VMazBCckI7QUFDRjs7QVF4a0JFO0VBbkNBLG1CSG5PdUI7RUdvT3ZCLHlCQUFBO0VBekJBLGtCSDNNdUI7RUc0TXZCLHlCQUFBO0FSeW9C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QTtBWHdpQ0o7QVd0aUNJO0VBRUUsVUFBQTtBWHVpQ047O0FXbmlDRTtFQUNFLFdBQUE7RUFDQSxZTnRCVztFTXVCWCxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSxrQ0FBQTtBWHNpQ0o7QVNuaUJJO0VFM2dCRjtJQWdCSSxjQUFBO0VYa2lDSjtBQUNGOztBVy9oQ0U7RUh0Q0EsV0FBQTtFQUNBLGlCSFJVO0VHU1YsY0FBQTtFR3NDRSxZTjVDaUI7RU02Q2pCLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSwwQkFBQTtFQUNBLDZCQUFBO0VBQ0Esa0NBQUE7QVhvaUNKO0FXbGlDSTtFQUNFLHNCTmxCUTtBTHNqQ2Q7QVN4akJJO0VFdmZGO0lBZUksWUFBQTtJQUNBLDBCQUFBO0lBQ0EsOEJBQUE7RVhvaUNKO0FBQ0Y7O0FXbGlDSTtFSDJLRixtQkhuT3VCO0VHb092Qix5QkFBQTtFQXpCQSxrQkgzTXVCO0VHNE12Qix5QkFBQTtFR2xKSSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlObkVlO0VNb0VmLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QVh3aUNOO0FTOWtCSTtFRW5lQTtJSCtLQSxtQkh0T3lCO0VMNG1DM0I7QUFDRjtBU25sQkk7RUVuZUE7SUhtTEEsbUJIek9xQjtFTGduQ3ZCO0FBQ0Y7QVN4bEJJO0VFbmVBO0lIdUxBLG1CSDVPcUI7RUxvbkN2QjtBQUNGO0FTN2xCSTtFRW5lQTtJSDJMQSxtQkgvT3NCO0VMd25DeEI7QUFDRjtBU2xtQkk7RUVuZUE7SUh1SkEsa0JIOU15QjtFTGdvQzNCO0FBQ0Y7QVN2bUJJO0VFbmVBO0lIMkpBLGtCSGpOcUI7RUxvb0N2QjtBQUNGO0FTNW1CSTtFRW5lQTtJSCtKQSxrQkhwTnFCO0VMd29DdkI7QUFDRjtBU2puQkk7RUVuZUE7SUhtS0Esa0JIdk5zQjtFTDRvQ3hCO0FBQ0Y7QVN0bkJJO0VFbmVBO0lBWUksV0FBQTtJQUNBLGdCTnpFTztJTTBFUCxtQk56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O0VHb092Qix5QkFBQTtFQXpCQSxrQkgzTXVCO0VHNE12Qix5QkFBQTtFR2lOVSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxrQkFBQTtBWGdwQ1o7QVN4aENJO0VFaElNO0lIcExOLG1CSHRPeUI7RUxzakQzQjtBQUNGO0FTN2hDSTtFRWhJTTtJSGhMTixtQkh6T3FCO0VMMGpEdkI7QUFDRjtBU2xpQ0k7RUVoSU07SUg1S04sbUJINU9xQjtFTDhqRHZCO0FBQ0Y7QVN2aUNJO0VFaElNO0lIeEtOLG1CSC9Pc0I7RUxra0R4QjtBQUNGO0FTNWlDSTtFRWhJTTtJSDVNTixrQkg5TXlCO0VMMGtEM0I7QUFDRjtBU2pqQ0k7RUVoSU07SUh4TU4sa0JIak5xQjtFTDhrRHZCO0FBQ0Y7QVN0akNJO0VFaElNO0lIcE1OLGtCSHBOcUI7RUxrbER2QjtBQUNGO0FTM2pDSTtFRWhJTTtJSGhNTixrQkh2TnNCO0VMc2xEeEI7QUFDRjtBU2hrQ0k7RUVoSU07SUFXSSxXQUFBO0lBQ0EsZ0JBQUE7SUFDQSxlQUFBO0lBQ0Esb0JBQUE7RVh5ckNaO0FBQ0Y7QVd2ckNZO0VBQ0UsWU5qYkM7RU1rYkQseUJBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLGNON1pDO0FMc2xEZjtBV3ZyQ2M7RUFDRSxjQUFBO0FYeXJDaEI7QVc5cUNNO0VBQ0UsV0FBQTtFQUNBLHlCTjdhTztBTDZsRGY7O0FXN3FDSTtFSHBPRixtQkhuT3VCO0VHb092Qix5QkFBQTtFR3FPSSxXQUFBO0VBQ0EsWU5oZGU7RU1pZGYsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7QVhpckNOO0FTdG1DSTtFRXBGQTtJSGhPQSxtQkh0T3lCO0VMb29EM0I7QUFDRjtBUzNtQ0k7RUVwRkE7SUg1TkEsbUJIek9xQjtFTHdvRHZCO0FBQ0Y7QVNobkNJO0VFcEZBO0lIeE5BLG1CSDVPcUI7RUw0b0R2QjtBQUNGO0FTcm5DSTtFRXBGQTtJSHBOQSxtQkgvT3NCO0VMZ3BEeEI7QUFDRjtBUzFuQ0k7RUVwRkE7SUFZSSxZTnZkTztJTXdkUCxlQUFBO0VYc3NDTjtBQUNGOztBV3BzQ007RUFDRSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7QVh1c0NSO0FTdm9DSTtFRXBFRTtJQU9JLFlObGVLO0lNbWVMLGFBQUE7RVh3c0NSO0FBQ0Y7QVd0c0NRO0VBQ0UsY041Y0s7QUxvcERmO0FXdHNDVTtFQUNFLGNBQUE7QVh3c0NaO0FXL3JDTTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtBWGlzQ1I7QVN6cENJO0VFNUNFO0lBT0ksaUJBQUE7RVhrc0NSO0FBQ0Y7QVM5cENJO0VFNUNFO0lBV0ksYUFBQTtFWG1zQ1I7QUFDRjtBV2pzQ1E7RUFDRSxjTnZlSztBTDBxRGY7QVdqc0NVO0VBQ0UsY0FBQTtBWG1zQ1o7O0FXOXJDSTtFSGhoQkYsV0FBQTtFQUNBLFlBQUE7RUdpaEJJLFlBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxTTmpoQmU7RU1raEJmLE9BQUE7RUFDQSxzQk5oZlE7RU1pZlIsVUFBQTtBWGtzQ047QVNyckNJO0VFckJBO0lBV0ksU05yaEJPO0lNc2hCUCxXQUFBO0VYbXNDTjtBQUNGO0FXanNDTTtFSGxUSixtQkhuT3VCO0VHb092Qix5QkFBQTtFQXpCQSxrQkgzTXVCO0VHNE12Qix5QkFBQTtBUmdoREY7QVNqc0NJO0VFTkU7SUg5U0YsbUJIdE95QjtFTCt0RDNCO0FBQ0Y7QVN0c0NJO0VFTkU7SUgxU0YsbUJIek9xQjtFTG11RHZCO0FBQ0Y7QVMzc0NJO0VFTkU7SUh0U0YsbUJINU9xQjtFTHV1RHZCO0FBQ0Y7QVNodENJO0VFTkU7SUhsU0YsbUJIL09zQjtFTDJ1RHhCO0FBQ0Y7QVNydENJO0VFTkU7SUh0VUYsa0JIOU15QjtFTG12RDNCO0FBQ0Y7QVMxdENJO0VFTkU7SUhsVUYsa0JIak5xQjtFTHV2RHZCO0FBQ0Y7QVMvdENJO0VFTkU7SUg5VEYsa0JIcE5xQjtFTDJ2RHZCO0FBQ0Y7QVNwdUNJO0VFTkU7SUgxVEYsa0JIdk5zQjtFTCt2RHhCO0FBQ0Y7O0FZdHhEQTs7R0FBQTtBQUlBO0VKWUUsV0FBQTtFQUNBLGlCSFJVO0VHU1YsY0FBQTtFSVpBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLCtCQUFBO0VBQ0Esd0JBQUE7QVoweERGOztBWXZ4REU7RUFDRSxZQUFBO0VBQ0EsVUFBQTtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0FaMHhESjtBWXh4REk7RUFDRSxXQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSxjUGlCUztFT2hCVCxjQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7QVoweEROO0FZdnhESTtFQUNFLFdBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxjUEVTO0FMdXhEZjs7QVlyeERFO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFdQRlU7RU9HVixpQkFBQTtFQUNBLHlCUFZXO0VPV1gsa0NBQUE7QVp3eERKO0FZdHhESTtFQUNFLHlCQUFBO0Fad3hETjs7QWEvMERBOztHQUFBO0FBS0E7RUxHRSxXQUFBO0VBQ0EsWUFBQTtFS0ZBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0FiaTFERjs7QWE5MERFO0VBQ0UsWUFBQTtFQUVBLGtCQUFBO0VBQ0EsZ0JBQUE7QWJnMURKOztBYTkwREk7RUxaRixXQUFBO0VBQ0EsWUFBQTtBUjgxREY7O0FhaDFETTtFTFBKLFdBQUE7RUFDQSxpQkhSVTtFR1NWLGNBQUE7RUEySkEsaUJIcEpvQjtFR3FKcEIseUJBQUE7RUF1RUEsbUJIbk91QjtFR29PdkIseUJBQUE7RUF6QkEsa0JIM011QjtFRzRNdkIseUJBQUE7QVJxcERGO0FTdDBDSTtFSXRoQkU7SUwwSkYsaUJIdkpzQjtFTDYxRHhCO0FBQ0Y7QVMzMENJO0VJdGhCRTtJTDhKRixpQkgxSmtCO0VMaTJEcEI7QUFDRjtBU2gxQ0k7RUl0aEJFO0lMa0tGLGlCSDdKa0I7RUxxMkRwQjtBQUNGO0FTcjFDSTtFSXRoQkU7SUxzS0YsaUJIaEttQjtFTHkyRHJCO0FBQ0Y7QVMxMUNJO0VJdGhCRTtJTGtPRixtQkh0T3lCO0VMdzNEM0I7QUFDRjtBUy8xQ0k7RUl0aEJFO0lMc09GLG1CSHpPcUI7RUw0M0R2QjtBQUNGO0FTcDJDSTtFSXRoQkU7SUwwT0YsbUJINU9xQjtFTGc0RHZCO0FBQ0Y7QVN6MkNJO0VJdGhCRTtJTDhPRixtQkgvT3NCO0VMbzREeEI7QUFDRjtBUzkyQ0k7RUl0aEJFO0lMME1GLGtCSDlNeUI7RUw0NEQzQjtBQUNGO0FTbjNDSTtFSXRoQkU7SUw4TUYsa0JIak5xQjtFTGc1RHZCO0FBQ0Y7QVN4M0NJO0VJdGhCRTtJTGtORixrQkhwTnFCO0VMbzVEdkI7QUFDRjtBUzczQ0k7RUl0aEJFO0lMc05GLGtCSHZOc0I7RUx3NUR4QjtBQUNGO0FhMzNESTtFTDVDRixXQUFBO0VBQ0EsWUFBQTtFSzZDSSxrQkFBQTtFQUNBLGdCQUFBO0FiODNETjs7QWE1M0RNO0VBQ0UsYUFBQTtFQUNBLDBCQUFBO0VBQ0Esd0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0FiKzNEUjtBU2g1Q0k7RUlwZkU7SUFRSSwwQkFBQTtJQUNBLHdCQUFBO0ViZzREUjtBQUNGOztBYTczRE07RUFDRSw4QkFBQTtFQUNBLDZCQUFBO0FiZzREUjtBUzM1Q0k7RUl2ZUU7SUFLSSxnQ0FBQTtJQUNBLDRCQUFBO0ViaTREUjtBQUNGOztBYS8zRFE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0FiazREVjtBUzE2Q0k7RUk5ZEk7SUFTSSxxQkFBQTtJQUNBLFdBQUE7RWJtNERWO0FBQ0Y7O0FhajREVTtFTHBGUixXQUFBO0VBQ0EsWUFBQTtFS3FGVSxrQkFBQTtFQUNBLGdCQUFBO0FicTREWjs7QWFuNERZO0VMakZWLFdBQUE7RUFDQSxpQkhSVTtFR1NWLGNBQUE7RUFtT0EsbUJIbk91QjtFR29PdkIseUJBQUE7RUF6QkEsa0JIM011QjtFRzRNdkIseUJBQUE7RUF6QkEsb0JINUtvQjtFRzZLcEIseUJBQUE7RUtoR1k7Ozs7Ozs7O0lBQUE7QWJtNURkO0FTNThDSTtFSTVjUTtJTHdKUixtQkh0T3lCO0VMMCtEM0I7QUFDRjtBU2o5Q0k7RUk1Y1E7SUw0SlIsbUJIek9xQjtFTDgrRHZCO0FBQ0Y7QVN0OUNJO0VJNWNRO0lMZ0tSLG1CSDVPcUI7RUxrL0R2QjtBQUNGO0FTMzlDSTtFSTVjUTtJTG9LUixtQkgvT3NCO0VMcy9EeEI7QUFDRjtBU2grQ0k7RUk1Y1E7SUxnSVIsa0JIOU15QjtFTDgvRDNCO0FBQ0Y7QVNyK0NJO0VJNWNRO0lMb0lSLGtCSGpOcUI7RUxrZ0V2QjtBQUNGO0FTMStDSTtFSTVjUTtJTHdJUixrQkhwTnFCO0VMc2dFdkI7QUFDRjtBUy8rQ0k7RUk1Y1E7SUw0SVIsa0JIdk5zQjtFTDBnRXhCO0FBQ0Y7QVNwL0NJO0VJNWNRO0lMd0dSLG9CSC9Lc0I7RUwyZ0V4QjtBQUNGO0FTei9DSTtFSTVjUTtJTDRHUixvQkhsTGtCO0VMK2dFcEI7QUFDRjtBUzkvQ0k7RUk1Y1E7SUxnSFIsb0JIckxrQjtFTG1oRXBCO0FBQ0Y7QVNuZ0RJO0VJNWNRO0lMb0hSLG9CSHhMbUI7RUx1aEVyQjtBQUNGOztBYWw4RFE7RUFDRSxnQkFBQTtBYnE4RFY7QVM1Z0RJO0VJMWJJO0lBSUksb0JBQUE7RWJzOERWO0FBQ0Y7O0FhbjhEUTtFTDBFTixvQkg1S29CO0VHNktwQix5QkFBQTtFS3pFUSxXQUFBO0VBQ0EscUJBQUE7RUFDQSxXQUFBO0FidThEVjtBU3poREk7RUlsYkk7SUw4RUosb0JIL0tzQjtFTGdqRXhCO0FBQ0Y7QVM5aERJO0VJbGJJO0lMa0ZKLG9CSGxMa0I7RUxvakVwQjtBQUNGO0FTbmlESTtFSWxiSTtJTHNGSixvQkhyTGtCO0VMd2pFcEI7QUFDRjtBU3hpREk7RUlsYkk7SUwwRkosb0JIeExtQjtFTDRqRXJCO0FBQ0Y7QVM3aURJO0VJbGJJO0lBT0kscUJBQUE7SUFDQSxXQUFBO0ViNDlEVjtBQUNGOztBY2htRUE7O0dBQUE7QUFLQTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtFQUVBLGtCQUFBO0VBQ0EsVUFBQTtBZGdtRUY7O0FjOWxFRTtFTnlMQSxvQkg1S29CO0VHNktwQix5QkFBQTtFTXZMRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY1R3Qlc7RVN2Qlgsa0JBQUE7RUFDQSxnQkFBQTtBZGltRUo7QVN2a0RJO0VLamlCRjtJTjZMRSxvQkgvS3NCO0VMOGxFeEI7QUFDRjtBUzVrREk7RUtqaUJGO0lOaU1FLG9CSGxMa0I7RUxrbUVwQjtBQUNGO0FTamxESTtFS2ppQkY7SU5xTUUsb0JIckxrQjtFTHNtRXBCO0FBQ0Y7QVN0bERJO0VLamlCRjtJTnlNRSxvQkh4TG1CO0VMMG1FckI7QUFDRjs7QWNubkVJO0VBQ0Usb0JBQUE7QWRzbkVOO0FTL2xESTtFS3hoQkE7SUFJSSxXQUFBO0VkdW5FTjtBQUNGO0Fjcm5FTTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBZHVuRVI7QVM1bURJO0VLamhCRTtJQVNJLFdBQUE7RWR3bkVSO0FBQ0Y7QWN0bkVRO0VONk1OLG1CSG5PdUI7RUdvT3ZCLHlCQUFBO0VBekJBLGtCSDNNdUI7RUc0TXZCLHlCQUFBO0VNcExRLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUVBLGlCQUFBO0FkMG5FVjtBUzduREk7RUtyZ0JJO0lOaU5KLG1CSHRPeUI7RUwycEUzQjtBQUNGO0FTbG9ESTtFS3JnQkk7SU5xTkosbUJIek9xQjtFTCtwRXZCO0FBQ0Y7QVN2b0RJO0VLcmdCSTtJTnlOSixtQkg1T3FCO0VMbXFFdkI7QUFDRjtBUzVvREk7RUtyZ0JJO0lONk5KLG1CSC9Pc0I7RUx1cUV4QjtBQUNG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cElFO0FOdzNIZDtBcUJqdkhVO0VBQ0UscUJmckpFO0FOdzRIZDtBcUJodkhVO0VBQ0UscUJmeEpFO0FOMDRIZDtBcUIvdUhVO0VBQ0UscUJmM0pFO0FONDRIZDtBcUI5dUhVO0VBQ0UscUJmOUpFO0FOODRIZDtBcUI3dUhVO0VBQ0UscUJmaktFO0FOZzVIZDtBcUI1dUhVO0VBQ0UscUJmcEtFO0FOazVIZDtBcUIzdUhVO0VBQ0UscUJmdktFO0FObzVIZDtBcUIxdUhVO0VBQ0UscUJmMUtFO0FOczVIZDtBcUJ6dUhVO0VBQ0UscUJmN0tFO0FOdzVIZDtBcUJ4dUhVO0VBQ0UscUJmaExFO0FOMDVIZDtBcUJ2dUhVO0VBQ0UscUJmbkxFO0FONDVIZDtBcUJ0dUhVO0VBQ0UscUJmdExFO0FOODVIZDtBcUJodUhVO0VBQ0UsY2Y3TEU7QU4rNUhkO0FxQjl0SFE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUVBLFVBQUE7RUFDQSxhQUFBO0VBQ0EseUJBQUE7QXJCK3RIVjtBcUI3dEhVO0VBQ0UsYUFBQTtBckIrdEhaO0FxQjd0SFk7RUFFRSwyS0FBQTtBckI4dEhkO0FxQnJ0SFU7RUFDRSxjZjVORTtFZTZORixrQkFBQTtBckJ1dEhaO0FxQi9zSGE7RUFDRSxjZnZPRDtBTnc3SGQ7QXFCOXNIYTtFQUNFLGNmMU9EO0FOMDdIZDtBcUIxc0hhO0VBQ0UsY2ZsUEQ7QU44N0hkO0FxQnhzSGE7RUFDRSxjZnRQRDtBTmc4SGQ7QXFCcnNIUTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtBckJ1c0hWOztBcUJuc0hNO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUVBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjaEI3UEM7RWdCOFBELFVBQUE7QXJCcXNIUjtBcUJuc0hRO0VBQ0UsYUFBQTtBckJxc0hWOztBcUJqc0hNO0VBQ0Us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blFZO0Vkbk9WLHNCQUFBO0VBR0Esb0JBQUE7RUFDQSwyQkFBQTtFQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQUFBO0VBMkJFLGtjQUNFO0Vjc01VLGlCQUFBO0EvQjBwUWQ7QStCeHBRWTtFZDFPVixzQkFBQTtFQUdBLG9CQUFBO0VBQ0EsMkJBQUE7RUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FBQTtFQTJCRSxrY0FDRTtFYzZNVSxpQkFBQTtBL0JxclFkO0ErQmxyUVk7RUFDRSxjekJyVEE7QU55K1FkO0ErQi9xUWM7RUFDRSxXQUFBO0EvQmlyUWhCO0ErQjNxUWdCO0VBQ0UsV0FBQTtFQUNBLGlCQUFBO0EvQjZxUWxCO0ErQnZxUWdCO0VBQ0UsY3pCelVKO0FOay9RZDtBK0JwcVFZO0VBQ0UsdUJBQUE7RUFDQSx5QnpCalZBO0V5QmtWQSxpQkFBQTtBL0JzcVFkO0ErQnBxUWM7RUFDRSxXQUFBO0VBQ0EsaUJBQUE7QS9Cc3FRaEI7QStCbnFRYztFQUNFLHlCekJ6VkY7QU44L1FkO0ErQm5xUWdCO0VBQ0UsY3pCN1ZKO0FOa2dSZDtBK0JocVFZO0VBQ0UseUIxQmpWTDtBTG0vUVQ7QStCOXBRVTtFQWVFLFdBQUE7RUFDQSxTQUFBO0VBQ0EsZ0NBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBRUEseUJBQUE7RUFHQSx1QkFBQTtBL0Irb1FaO0ErQjdvUVk7RUFDRSxjekJsWUE7RXlCbVlBLCtFQUFBO0EvQitvUWQ7QStCNW9RWTtFQUNFLHFCekJwWkE7QU5raVJkO0ErQjNvUVk7RUFDRSxxQnpCdlpBO0FOb2lSZDtBK0Ixb1FZO0VBQ0UscUJ6QjFaQTtBTnNpUmQ7QStCem9RWTtFQUNFLHFCekI3WkE7QU53aVJkO0ErQnhvUVk7RUFDRSxxQnpCaGFBO0FOMGlSZDtBK0J2b1FZO0VBQ0UscUJ6Qm5hQTtBTjRpUmQ7QStCdG9RWTtFQUNFLHFCekJ0YUE7QU44aVJkO0ErQnJvUVk7RUFDRSxxQnpCemFBO0FOZ2pSZDtBK0Jwb1FZO0VBQ0UscUJ6QjVhQTtBTmtq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MEJWLGlCQUFBO0FoQ2ltVUo7O0FnQzVsVUM7RUFDQyxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0FoQytsVUY7O0FnQzdsVUU7RUFDQyx3QkFBQTtFQUNDLFdBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQjFCMUNVO0UwQjJDVixhQUFBO0VBQ0EsWUFBQTtFQUVBLHdCQUFBO0VBRUQsdUJBQUE7RUFPQSxnSEFBQTtBaEN5bFVIO0FnQ3hsVUc7RUFDRTs7Ozs7Ozs7O0dBQUE7RUFhRCxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBSUEsZUFBQTtFQUNBLHVFQUFBO0FoQ29sVUo7QWdDaGxVRztFQUNDOzs7Ozs7O0dBQUE7RUFXQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBSUEsZUFBQTtFQUNBLHVFQUFBO0FoQzRrVUoiLCJmaWxlIjoiaG9tZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAgKiBQQUdFLVNQRUNJRklDIFNUWUxFU0hFRVQ6IEhvbWVcbiAgKlxuICAqIEltcG9ydCBjb21tb24gc3R5bGVzIGFuZCBob3VzZSBwYWdlLXNwZWNpZmljIHN0eWxlcyBmb3IgSG9tZSBwYWdlLlxuICAqL1xuLyoqXG4gICogQ09NTU9OIFNUWUxFU1xuICAqXG4gICogRGVmaW5lcyB0aGUgc3R5bGVzIHRvIGltcG9ydCB0aGF0IGFyZSByZXF1aXJlZCBieSB2aXJ0dWFsbHkgYWxsIHBhZ2VzLlxuICAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuW3R5cGU9YnV0dG9uXSxcblt0eXBlPXJlc2V0XSxcblt0eXBlPXN1Ym1pdF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1idXR0b25dOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9c3VibWl0XTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1zZWFyY2hdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAgKiBTQ1NTIEJSRUFLUE9JTlRTXG4gICpcbiAgKiBEZWZpbmUgYnJlYWtwb2ludHMgZm9yIG1lZGlhIHF1ZXJ5IHVzZSBhbmQgZXhwb3J0IHRoZW0gZm9yIHVzZSB3aXRoIEpTLlxuICAqL1xuLypcbmV4YW1wbGUgdXNhZ2U6XG5AaW5jbHVkZSBtZWRpYShcIj49cGhvbmUtc21hbGxcIikgey4uLn1cbiovXG46ZXhwb3J0IHtcbiAgYnJlYWtwb2ludFBob25lU21hbGw6IDMyMDtcbiAgYnJlYWtwb2ludFBob25lTGFyZ2U6IDQ4MDtcbiAgYnJlYWtwb2ludFRhYmxldDogNzY4O1xuICBicmVha3BvaW50TGFwdG9wOiA5OTI7XG4gIGJyZWFrcG9pbnREZXNrdG9wOiAxMjAwO1xuICBicmVha3BvaW50RGVza3RvcExhcmdlOiAxNDAwO1xuICBicmVha3BvaW50SGQ6IDE5MjA7XG59XG5cbi8qKlxuICAqIFNDU1MgVkFSSUFCTEVTXG4gICovXG4vKipcbiAgKiBEaW1lbnNpb25zOlxuICAqL1xuLyoqXG4gICogQ29sb3JzOlxuICAqL1xuLyoqXG4gICogU0NTUyBDT0xPUlNcbiAgKlxuICAqIERlZmluZSBjb2xvcnMgYW5kIGV4cG9ydCB0aGVtIGZvciB1c2Ugd2l0aCBKUy5cbiAgKi9cbjpleHBvcnQge1xuICBjb2xvclJlZDogI2ZmMDAwMDtcbiAgY29sb3JSZWRPcmFuZ2U6ICNmZjgwMDA7XG4gIGNvbG9yT3JhbmdlOiAjYThhODAwO1xuICBjb2xvckdvbGQ6ICM2MWMyMDA7XG4gIGNvbG9yWWVsbG93OiAjMDBiMzAwO1xuICBjb2xvclllbGxvd0dyZWVuOiAjMDBiMzVhO1xuICBjb2xvckdyZWVuOiAjMDA5OTk5O1xuICBjb2xvckN5YW46ICMwMDgwZmY7XG4gIGNvbG9yQmx1ZTogIzMzMzNmZjtcbiAgY29sb3JJbmRpZ286ICM4MDAwZmY7XG4gIGNvbG9yVmlvbGV0OiAjY2MwMGNjO1xuICBjb2xvck1hZ2VudGE6ICNmZjAwODA7XG4gIGNvbG9yQmxhY2s6ICMwMDAwMDA7XG4gIGNvbG9yV2hpdGU6ICNmZmZmZmY7XG59XG5cbi5ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4uYmxhY2suY29sb3ItdGV4dC1vbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4ud2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLndoaXRlLmNvbG9yLXRleHQtb25seSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjAwMDA7XG59XG4ucmVkLmNvbG9yLXRleHQtb25seSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBjb2xvcjogI2ZmMDAwMDtcbn1cblxuLnJlZG9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjgwMDA7XG59XG4ucmVkb3JhbmdlLmNvbG9yLXRleHQtb25seSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBjb2xvcjogI2ZmODAwMDtcbn1cblxuLm9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGE4MDA7XG59XG4ub3JhbmdlLmNvbG9yLXRleHQtb25seSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBjb2xvcjogI2E4YTgwMDtcbn1cblxuLmdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjFjMjAwO1xufVxuLmdvbGQuY29sb3ItdGV4dC1vbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjNjFjMjAwO1xufVxuXG4ueWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjMwMDtcbn1cbi55ZWxsb3cuY29sb3ItdGV4dC1vbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjMDBiMzAwO1xufVxuXG4ueWVsbG93Z3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiMzVhO1xufVxuLnllbGxvd2dyZWVuLmNvbG9yLXRleHQtb25seSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBjb2xvcjogIzAwYjM1YTtcbn1cblxuLmdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTk5OTtcbn1cbi5ncmVlbi5jb2xvci10ZXh0LW9ubHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgY29sb3I6ICMwMDk5OTk7XG59XG5cbi5jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODBmZjtcbn1cbi5jeWFuLmNvbG9yLXRleHQtb25seSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBjb2xvcjogIzAwODBmZjtcbn1cblxuLmJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzM2ZmO1xufVxuLmJsdWUuY29sb3ItdGV4dC1vbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjMzMzM2ZmO1xufVxuXG4uaW5kaWdvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwMDBmZjtcbn1cbi5pbmRpZ28uY29sb3ItdGV4dC1vbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjODAwMGZmO1xufVxuXG4udmlvbGV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjMDBjYztcbn1cbi52aW9sZXQuY29sb3ItdGV4dC1vbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjY2MwMGNjO1xufVxuXG4ubWFnZW50YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjAwODA7XG59XG4ubWFnZW50YS5jb2xvci10ZXh0LW9ubHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgY29sb3I6ICNmZjAwODA7XG59XG5cbi8qKlxuICAqIEZPTlQgU1RZTEVTXG4gICpcbiAgKiBEZWZpbmUgQGZvbnQtZmFjZSBzdHlsZXMuXG4gICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQ7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL01vbnRzZXJyYXQtUmVndWxhci50dGYpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQ7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL01vbnRzZXJyYXQtQm9sZC50dGYpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFByZXNzU3RhcnQyUDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUHJlc3NTdGFydDJQLVJlZ3VsYXIudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBWVDMyMztcbiAgc3JjOiB1cmwoLi4vZm9udHMvVlQzMjMtUmVndWxhci50dGYpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKipcbiAgKiBTQ1NTIE1JWElOU1xuICAqXG4gICogU3RhbmRhcmRpemVkIHN0eWxlIGNodW5rcywgcHJvdmlkZWQgYXMgYm90aCBTQ1NTIG1peGlucyBhbmQgSFRNTCBjbGFzc2VzLlxuICAqL1xuLndyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uaW5uZXItd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDE0MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5tYXItdG9wIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDMwMG1zO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5tYXItdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1hci10b3Age1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubWFyLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubWFyLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgfVxufVxuXG4ubWFyLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHRyYW5zaXRpb246IG1hcmdpbiAzMDBtcztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAubWFyLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYXItYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1hci1ib3R0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm1hci1ib3R0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gIH1cbn1cblxuLm1hci1ob3Jpem9udGFsIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDMwMG1zO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB0cmFuc2l0aW9uOiBtYXJnaW4gMzAwbXM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLm1hci1ob3Jpem9udGFsIHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1hci1ob3Jpem9udGFsIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1hci1ob3Jpem9udGFsIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5tYXItaG9yaXpvbnRhbCB7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5tYXItaG9yaXpvbnRhbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYXItaG9yaXpvbnRhbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tYXItaG9yaXpvbnRhbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubWFyLWhvcml6b250YWwge1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gIH1cbn1cblxuLm1hci1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDMwMG1zO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5tYXItcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDI1cHgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1hci1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubWFyLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDYwcHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA2MHB4KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubWFyLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDgwcHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgfVxufVxuXG4ubWFyLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDMwMG1zO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5tYXItbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyNXB4KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYXItbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tYXItbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDYwcHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA2MHB4KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubWFyLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiA4MHB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gODBweCk7XG4gIH1cbn1cblxuLm1hci1ob3Jpem9udGFsIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDMwMG1zO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5tYXItaG9yaXpvbnRhbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNTBweCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubWFyLWhvcml6b250YWwge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDYwcHgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1hci1ob3Jpem9udGFsIHtcbiAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDYwcHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxMjBweCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm1hci1ob3Jpem9udGFsIHtcbiAgICBtYXJnaW4tbGVmdDogODBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDgwcHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxNjBweCk7XG4gIH1cbn1cblxuLnBhZC10b3Age1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAucGFkLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucGFkLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICB9XG59XG5cbi5wYWQtYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbiAgfVxufVxuXG4ucGFkLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG5cbi5wYWQtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5wYWQtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnBhZC1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xuICB9XG59XG5cbi5wYWQtdmVydGljYWwge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZC12ZXJ0aWNhbCB7XG4gICAgcGFkZGluZy10b3A6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLXZlcnRpY2FsIHtcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wYWQtdmVydGljYWwge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWQtdmVydGljYWwge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZC12ZXJ0aWNhbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLXZlcnRpY2FsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wYWQtdmVydGljYWwge1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWQtdmVydGljYWwge1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICB9XG59XG5cbi5wYWQtaG9yaXpvbnRhbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAucGFkLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucGFkLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnBhZC1ob3Jpem9udGFsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZC1ob3Jpem9udGFsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFkLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wYWQtaG9yaXpvbnRhbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWQtaG9yaXpvbnRhbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG5cbi5idXR0b24ge1xuICBtYXJnaW46IDNyZW0gMDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZjlmOWY5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2Y5ZjlmOTtcbn1cblxuLmxjZCB7XG4gIGZvbnQtZmFtaWx5OiBWVDMyMztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiAwIDAgMTBweCAjZmZmZmZmLCAwIDAgMHB4ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjM2MzYzNjO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjM2MzYzNjO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjM2MzYzNjO1xufVxuXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5uby1zY3JvbGwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKipcbiAgKiBIVE1MIEVMRU1FTlQgU1RZTEVTXG4gICpcbiAgKiBTdHlsZSBkZWZpbml0aW9ucyBmb3IgZ2xvYmFsIGVsZW1lbnQgc2VsZWN0b3JzLlxuICAqL1xuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG59XG5cbmJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjlyZW07XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyLjFyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuOHJlbTtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuN3JlbTtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuOXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbnAge1xuICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG59XG51bCwgb2wge1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG59XG5cbi8qIGJlZ2luIGJ1dHRvbiBzdHlsZXMgKi9cbmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyogZW5kIGJ1dHRvbiBzdHlsZXMgKi9cbmJsb2NrcXVvdGUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMDAwMDA7XG4gIG1hcmdpbjogMS41ZW0gMTBweDtcbiAgcGFkZGluZzogMC41ZW0gMzBweDtcbiAgcXVvdGVzOiBcIuKAnFwiO1xufVxuYmxvY2txdW90ZTpiZWZvcmUge1xuICBjb2xvcjogI2NjYztcbiAgY29udGVudDogb3Blbi1xdW90ZTtcbiAgZm9udC1zaXplOiA0ZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiAtMC40ZW07XG59XG5ibG9ja3F1b3RlIHAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJsb2NrcXVvdGUgcDpmaXJzdC1vZi10eXBlLCBibG9ja3F1b3RlIHA6bnRoLW9mLXR5cGUoMikge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cblxuLyoqXG4gICogSEVBREVSIFNUWUxFU1xuICAqL1xuLmhlYWRlci13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZ3JpZC1yb3ctc3RhcnQ6IDE7XG4gIGdyaWQtcm93LWVuZDogMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXMsIGJvcmRlciAyMDBtcywgYm94LXNoYWRvdyAyMDBtcztcbn1cbi5oZWFkZXItb3ZlcmxheSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyO1xuICBvcGFjaXR5OiAwLjc7XG59XG4uaGVhZGVyLW92ZXJsYXkuYmctdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50b3AtYmFyLWJnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDY7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRvcC1iYXItYmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBoZWlnaHQ6IDkwcHg7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDkwcHggYXV0bztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcztcbn1cbi5oZWFkZXIuYmctdmlzaWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMTIwcHggNzBweDtcbiAgfVxufVxuXG4uaGVhZGVyLWJyYW5kIHtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBoZWlnaHQ6IDkwcHg7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgZ3JpZC1yb3c6IDEvc3BhbiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlci1icmFuZCB7XG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItYnJhbmQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaGVhZGVyLWJyYW5kIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZWFkZXItYnJhbmQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLWJyYW5kIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLWJyYW5kIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaGVhZGVyLWJyYW5kIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1icmFuZCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1icmFuZCB7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgbWFyZ2luLXRvcDogNDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICB9XG59XG4uaGVhZGVyLWJyYW5kIGEge1xuICBoZWlnaHQ6IDkwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1icmFuZCBhIHtcbiAgICBoZWlnaHQ6IDBweDtcbiAgfVxufVxuLmhlYWRlci1icmFuZCBhIC5sb2dvLWltYWdlIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhlYWRlci1icmFuZCBhIC5sb2dvLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICNmOWY5Zjk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlci1icmFuZCBhIC5sb2dvLXRleHQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cbi5oZWFkZXItYnJhbmQgYSAubG9nby10ZXh0IC5sb2dvLXRleHQtdGl0bGUge1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwLjk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5oZWFkZXItYnJhbmQgYSAubG9nby10ZXh0IC5sb2dvLXRleHQtdGl0bGUgc3Bhbi5yZWdpc3RlcmVkIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLWJyYW5kIGEgLmxvZ28tdGV4dCAubG9nby10ZXh0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgfVxuICAuaGVhZGVyLWJyYW5kIGEgLmxvZ28tdGV4dCAubG9nby10ZXh0LXRpdGxlIHNwYW4ucmVnaXN0ZXJlZCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbn1cbi5oZWFkZXItYnJhbmQgYSAubG9nby10ZXh0IC5sb2dvLXRleHQtdGFnbGluZSB7XG4gIG1hcmdpbjogMTBweCBhdXRvIDAgYXV0bztcbiAgbGluZS1oZWlnaHQ6IDAuODtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI2Y5ZjlmOTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLWJyYW5kIGEgLmxvZ28tdGV4dCAubG9nby10ZXh0LXRhZ2xpbmUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICB9XG59XG5cbi5oZWFkZXItbmF2IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgbWluLWhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDkwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uaGVhZGVyLW5hdi5iZy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLW5hdiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG59XG5cbi5oZWFkZXItbmF2LW1haW4ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDY7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGVhZGVyLW5hdi1tYWluIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLW5hdi1tYWluIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4ge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmhlYWRlci1uYXYtbWFpbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1uYXYtbWFpbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG4uaGVhZGVyLW5hdi1tYWluIHVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4gdWwge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogNDVweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGNvbHVtbi1nYXA6IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogdW5zZXQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxufVxuLmhlYWRlci1uYXYtbWFpbiB1bCBsaSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJvcmRlci10b3A6IHVuc2V0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1uYXYtbWFpbiB1bCBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gICAgdHJhbnNpdGlvbjogZGlzcGxheSAzMDBtcztcbiAgfVxuICAuaGVhZGVyLW5hdi1tYWluIHVsIGxpOmhvdmVyID4gdWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uaGVhZGVyLW5hdi1tYWluIHVsIGxpIGEge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ODg4ODg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6ICNmOWY5Zjk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlci1uYXYtbWFpbiB1bCBsaSBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLW5hdi1tYWluIHVsIGxpIGEge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4gdWwgbGkgYSB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4gdWwgbGkgYSB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG4uaGVhZGVyLW5hdi1tYWluIHVsIGxpIGE6aG92ZXIge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLW5hdi1tYWluIHVsIGxpIGEge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogNDVweDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBib3JkZXItYm90dG9tOiB1bnNldDtcbiAgfVxufVxuLmhlYWRlci1uYXYtbWFpbiB1bCBsaSAubmF2LWNoZXZyb24ge1xuICB3aWR0aDogNDVweDtcbiAgaGVpZ2h0OiA0NXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgei1pbmRleDogMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2Y5ZjlmOTtcbn1cbi5oZWFkZXItbmF2LW1haW4gdWwgbGkgLm5hdi1jaGV2cm9uOmhvdmVyIHtcbiAgY29sb3I6ICNjNmM2YzY7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1uYXYtbWFpbiB1bCBsaSAubmF2LWNoZXZyb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5oZWFkZXItbmF2LW1haW4gdWwgbGkgdWwge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1uYXYtbWFpbiB1bCBsaSB1bCB7XG4gICAgbWluLXdpZHRoOiAzMjBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0NXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgfVxufVxuLmhlYWRlci1uYXYtbWFpbiB1bCBsaSB1bCBsaSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0NXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LW1haW4gdWwgbGkgdWwgbGkge1xuICAgIGhlaWdodDogNDVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg3NSwgNzUsIDc1LCAwLjUpO1xuICB9XG4gIC5oZWFkZXItbmF2LW1haW4gdWwgbGkgdWwgbGk6aG92ZXIgPiB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmhlYWRlci1uYXYtbWFpbiB1bCBsaSB1bCBsaSBhIHtcbiAgcGFkZGluZy1sZWZ0OiAzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLW5hdi1tYWluIHVsIGxpIHVsIGxpIGEge1xuICAgIGhlaWdodDogNDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgfVxufVxuLmhlYWRlci1uYXYtbWFpbiB1bCBsaSB1bCBsaSB1bCBsaSBhIHtcbiAgcGFkZGluZy1sZWZ0OiA0LjVlbTtcbn1cbi5oZWFkZXItbmF2LW1haW4gdWwgbGkgdWwgbGkgdWwgbGkgdWwgbGkgYSB7XG4gIHBhZGRpbmctbGVmdDogNmVtO1xufVxuXG4uaGVhZGVyLW5hdi10b3Age1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB6LWluZGV4OiA2O1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogNjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLW5hdi10b3Age1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB7XG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB7XG4gICAgcGFkZGluZy1yaWdodDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaGVhZGVyLW5hdi10b3Age1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG4uaGVhZGVyLW5hdi10b3AgdWwge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGNvbHVtbi1nYXA6IDMwcHg7XG4gIGZsZXgtZmxvdzogY29sdW1uO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB1bCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiA0NXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG59XG4uaGVhZGVyLW5hdi10b3AgdWwgbGkge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODg4ODg4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHVsIGxpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHVsIGxpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHVsIGxpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB1bCBsaSB7XG4gICAgcGFkZGluZy1yaWdodDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB1bCBsaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1uYXYtdG9wIHVsIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaGVhZGVyLW5hdi10b3AgdWwgbGkge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGVhZGVyLW5hdi10b3AgdWwgbGkge1xuICAgIHBhZGRpbmctbGVmdDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItbmF2LXRvcCB1bCBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gIH1cbn1cbi5oZWFkZXItbmF2LXRvcCB1bCBsaSBhIHtcbiAgaGVpZ2h0OiA0NXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZjlmOWY5O1xufVxuLmhlYWRlci1uYXYtdG9wIHVsIGxpIGE6aG92ZXIge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5zbGlkZS1saW5lIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5oZWFkZXItYnV0dG9ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDkwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogNjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLWJ1dHRvbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLWJ1dHRvbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaGVhZGVyLWJ1dHRvbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1idXR0b25zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1idXR0b25zIHtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbi5nbGFzcyB7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0b3A6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmdsYXNzIHtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgYm9yZGVyOiB1bnNldDtcbiAgfVxufVxuLmdsYXNzIGkge1xuICBjb2xvcjogI2Y5ZjlmOTtcbn1cbi5nbGFzcyBpOmhvdmVyIHtcbiAgY29sb3I6ICNjNmM2YzY7XG59XG4uYnVyZ2VyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDM0MHB4KSB7XG4gIC5idXJnZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJ1cmdlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmJ1cmdlciBpIHtcbiAgY29sb3I6ICNmOWY5Zjk7XG59XG4uYnVyZ2VyIGk6aG92ZXIge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cblxuLmhlYWRlci1zZWFyY2gtd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDkwcHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIHotaW5kZXg6IDY7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1zZWFyY2gtd3JhcCB7XG4gICAgdG9wOiA0NXB4O1xuICAgIGhlaWdodDogMHB4O1xuICB9XG59XG4uaGVhZGVyLXNlYXJjaC13cmFwIC5zaXRlLXNlYXJjaCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLXNlYXJjaC13cmFwIC5zaXRlLXNlYXJjaCB7XG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXItc2VhcmNoLXdyYXAgLnNpdGUtc2VhcmNoIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmhlYWRlci1zZWFyY2gtd3JhcCAuc2l0ZS1zZWFyY2gge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1zZWFyY2gtd3JhcCAuc2l0ZS1zZWFyY2gge1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyLXNlYXJjaC13cmFwIC5zaXRlLXNlYXJjaCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci1zZWFyY2gtd3JhcCAuc2l0ZS1zZWFyY2gge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oZWFkZXItc2VhcmNoLXdyYXAgLnNpdGUtc2VhcmNoIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1zZWFyY2gtd3JhcCAuc2l0ZS1zZWFyY2gge1xuICAgIHBhZGRpbmctbGVmdDogODBweDtcbiAgfVxufVxuXG4vKipcbiAgKiBTSVRFIFNFQVJDSCBGT1JNIFNUWUxFU1xuICAqL1xuLnNpdGUtc2VhcmNoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTQwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiA0MHB4IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDUwcHg7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbn1cblxuLnNlYXJjaC1xdWVyeSB7XG4gIGhlaWdodDogNTBweDtcbiAgcGFkZGluZzogMDtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICBncmlkLXJvdzogMTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLnNlYXJjaC1xdWVyeSBsYWJlbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbiAgY29sb3I6ICNmOWY5Zjk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNlYXJjaC1xdWVyeSBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZjlmOWY5O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGNvbG9yOiAjZjlmOWY5O1xufVxuXG4uc2VhcmNoLXN1Ym1pdCB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGdyaWQtY29sdW1uOiAyL3NwYW4gMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xuICBjb2xvcjogIzIyMjtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXM7XG59XG4uc2VhcmNoLXN1Ym1pdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNmM2YzY7XG59XG5cbi8qKlxuICAqIENPTlRFTlQgU1RZTEVTXG4gICovXG4ubWFpbi13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZ3JpZC1yb3ctc3RhcnQ6IDI7XG4gIGdyaWQtcm93LWVuZDogMztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLm1haW4ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbn1cblxuLnBhZ2UtaGVhZGVyLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucGFnZS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5wYWdlLWhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFnZS1oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAucGFnZS1oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWdlLWhlYWRlciB7XG4gICAgcGFkZGluZy1yaWdodDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5wYWdlLWhlYWRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucGFnZS1oZWFkZXIge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAucGFnZS1oZWFkZXIge1xuICAgIHBhZGRpbmctbGVmdDogODBweDtcbiAgfVxufVxuLnBhZ2UtY29udGVudC13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiBpbmhlcml0O1xufVxuXG4ucGFnZS1jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiBpbmhlcml0O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wYWdlLWNvbnRlbnQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgfVxufVxuXG4ucGFnZS1jb250ZW50LnNpZGUge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAwcHg7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wYWdlLWNvbnRlbnQuc2lkZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzIwcHg7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDBweDtcbiAgfVxufVxuXG4ucGFnZS1tYWluIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgZ3JpZC1yb3c6IDI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFnZS1tYWluIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cbn1cblxuLnBhZ2Utc2VjdGlvbi13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiBpbmhlcml0O1xufVxuXG4ucGFnZS1zZWN0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTQwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgLypAaW5jbHVkZSBwYWQtdG9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRibGFjaywgMTAlKTsvL2xpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgLy8gbWFyZ2luOiAwIDEwcHg7XG4gICAgLy9wYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgfSovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZ2Utc2VjdGlvbiB7XG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wYWdlLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucGFnZS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWdlLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAucGFnZS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFnZS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucGFnZS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnBhZ2Utc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZ2Utc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFnZS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wYWdlLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWdlLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICB9XG59XG5cbi5zaWRlIC5wYWdlLW1haW4ge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zaWRlIC5wYWdlLW1haW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuICB9XG59XG5cbi5wYWdlLXNpZGViYXIge1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcbiAgd2lkdGg6IDEwMCU7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgZ3JpZC1yb3c6IDE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBhZ2Utc2lkZWJhciB7XG4gICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucGFnZS1zaWRlYmFyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wYWdlLXNpZGViYXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5wYWdlLXNpZGViYXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2Utc2lkZWJhciB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAxO1xuICB9XG59XG5cbi8qKlxuICAqIEZPT1RFUiBTVFlMRVNcbiAgKi9cbi5mb290ZXItd3JhcCB7XG4gIGdyaWQtcm93LXN0YXJ0OiAzO1xuICBncmlkLXJvdy1lbmQ6IDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbn1cblxuLmZvb3RlciB7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAjZjlmOWY5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IGluaGVyaXQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmZvb3RlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5mb290ZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5mb290ZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICB9XG59XG5cbi5mb290ZXItbmF2IHtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlci1uYXYge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG4uZm9vdGVyLW5hdiB1bCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXItbmF2IHVsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuLmZvb3Rlci1uYXYgdWwgbGkge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XG4gIHdpZHRoOiAxMDAlO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuZm9vdGVyLW5hdiB1bCBsaSB7XG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXItbmF2IHVsIGxpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZvb3Rlci1uYXYgdWwgbGkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmZvb3Rlci1uYXYgdWwgbGkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuZm9vdGVyLW5hdiB1bCBsaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlci1uYXYgdWwgbGkge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5mb290ZXItbmF2IHVsIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmZvb3Rlci1uYXYgdWwgbGkge1xuICAgIHBhZGRpbmctbGVmdDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXItbmF2IHVsIGxpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cbiAgLmZvb3Rlci1uYXYgdWwgbGk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgIGNvbG9yOiAjZjlmOWY5O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IC0ycHg7XG4gIH1cbiAgLmZvb3Rlci1uYXYgdWwgbGk6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxufVxuLmZvb3Rlci1uYXYgdWwgbGkgYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogIzg4ODg4ODtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXItbmF2IHVsIGxpIGEge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICB9XG59XG5cbi5jb3B5cmlnaHQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6ICM4ODg4ODg7XG59XG5cbi8qKlxuICAqIE1JU0NFTExBTkVPVVMgU1RZTEVTXG4gICovXG4uZW1iZWQtY29udGFpbmVyLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbWFyZ2luOiAyMHB4IGF1dG87XG59XG5cbi5lbWJlZC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZW1iZWQtY29udGFpbmVyIGlmcmFtZSxcbi5lbWJlZC1jb250YWluZXIgb2JqZWN0LFxuLmVtYmVkLWNvbnRhaW5lciBlbWJlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKipcbiAgKiBLRVktV0hJWiBBUFAgU1RZTEVTXG4gICovXG4vKiBGb3IgS2V5LVdoaXo6ICovXG4uYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG5cbi5saWdodC1vZmYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cblxuLmxpZ2h0LW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmZmZmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsIHdoaXRlIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQod2hpdGUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBjb2xvcjogIzY2Njtcbn1cblxuLmxpZ2h0LW9uLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjAwMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmYzMzMzIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgMCwgMCwgMC40KSAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGQ0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ubGlnaHQtb24ucmVkb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmODAwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjk5MzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAxNTMsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDE1MywgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDkwLCAwLCAwLjQpIDJweCwgcmdiYSgxNzksIDkwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmYTY0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4ubGlnaHQtb24ub3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2E4YTgwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNkYmRiMDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjE5LCAyMTksIDAsIDAuNCkgMnB4LCByZ2JhKDIxOSwgMjE5LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoOTIsIDkyLCAwLCAwLjQpIDJweCwgcmdiYSg5MiwgOTIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZjVmNTAwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saWdodC1vbi5nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzYxYzIwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM3YmY1MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgMnB4LCByZ2JhKDEyMywgMjQ1LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM4OGZmMGYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmxpZ2h0LW9uLnllbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjAwIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMCwgMC40KSAycHgsIHJnYmEoMCwgMjMwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMTAyLCAwLCAwLjQpIDJweCwgcmdiYSgwLCAxMDIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudChsaW1lLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saWdodC1vbi55ZWxsb3dncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzNWE7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjczIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMTE1LCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDExNSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjMDBmZjgwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saWdodC1vbi5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDk5OTk7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBjY2NjIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDJweCwgcmdiYSgwLCAyMDQsIDIwNCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDc3LCA3NywgMC40KSAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZTZlNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4ubGlnaHQtb24uY3lhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDgwZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMzM5OWZmIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDUxLCAxNTMsIDI1NSwgMC40KSAycHgsIHJnYmEoNTEsIDE1MywgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgOTAsIDE3OSwgMC40KSAycHgsIHJnYmEoMCwgOTAsIDE3OSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM0ZGE2ZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmxpZ2h0LW9uLmJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMzMzM2ZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzY2NjZmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMCwgMjMwLCAwLjQpIDJweCwgcmdiYSgwLCAwLCAyMzAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjODA4MGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saWdodC1vbi5pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjODAwMGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzk5MzNmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNTMsIDUxLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjYTY0ZGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saWdodC1vbi52aW9sZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjY2MwMGNjO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgZnVjaHNpYSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDAsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAwLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMjgsIDAsIDEyOCwgMC40KSAycHgsIHJnYmEoMTI4LCAwLCAxMjgsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmYxYWZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saWdodC1vbi5tYWdlbnRhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDA4MDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzOTkgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgMTUzLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCAxNTMsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGRhNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4ubGlnaHQtb24uYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMDAwMDAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzFhMWExYSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNiwgMjYsIDI2LCAwLjQpIDJweCwgcmdiYSgyNiwgMjYsIDI2LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMCwgMCwgMC40KSAycHgsIHJnYmEoMCwgMCwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCMyNjI2MjYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmxpZ2h0LW9uLndoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmZmZmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsIHdoaXRlIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQod2hpdGUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBjb2xvcjogIzY2Njtcbn1cblxuLmt3LXNldHRpbmctcGFuZWwge1xuICBtYXJnaW46IDVweCA1cHggMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjJmMmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1wYW5lbCB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cblxuLm5vLWhpZ2hsaWdodCB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5wYWdlLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wYWdlLXNlY3Rpb24ge1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IGluaGVyaXQ7XG59XG4ua3ctc2VjdGlvbi10aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMjIyO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjMjIyLCAjMmMyYzJjKTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzg4ODg4ODtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xufVxuXG4ua3ctc2VjdGlvbi10b2dnbGUge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5rdy1zZWN0aW9uLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmt3LXNlY3Rpb24tdG9nZ2xlIC5jaGV2cm9uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5rdy1zZWN0aW9uLXRvZ2dsZSAuY2hldnJvbi5hY3RpdmUge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG59XG5cbnNlbGVjdCB7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmt3LXNldHRpbmdzLXdyYXAge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCA1cHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5ncy13cmFwIHtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZ3Mge1xuICBwYWRkaW5nOiAzcHggMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogMTBweCAxMHB4IDAgMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAua3ctc2V0dGluZ3Mge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5ncyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICB9XG59XG5cbi8qLmt3LXNldHRpbmdzIHtcbiAgcGFkZGluZzogMjBweCAwO1xuICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xufSovXG4ua3ctc2V0dGluZy1rZXlzIHtcbiAgbWFyZ2luOiA1cHggNXB4IDAgNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgZ3JpZC1yb3c6IDE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmcta2V5cyB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cblxuLmt3LXNldHRpbmcta2V5LWJ1dHRvbnMge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICBncmlkLWNvbHVtbi1nYXA6IDE2cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmt3LXNldHRpbmcta2V5LWJ1dHRvbnMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmciAxZnI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmt3LXNldHRpbmcta2V5LWJ1dHRvbnMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnI7XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiA1cHg7XG4gIH1cbn1cblxuLmt3LXNldHRpbmcta2V5LWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbjogOHB4IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi5rdy1zZXR0aW5nLWtleS1idXR0b24ucmVkIHtcbiAgaGVpZ2h0OiAzNnB4O1xuICBtYXJnaW46IDVweCBhdXRvO1xufVxuLmt3LXNldHRpbmcta2V5LWJ1dHRvbi5hY3RpdmUucmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDAwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzMzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgNTEsIDAuNCkgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmY0ZDRkLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ua3ctc2V0dGluZy1rZXktYnV0dG9uLmFjdGl2ZS5yZWRvcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmY4MDAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgI2ZmOTkzMyA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDE1MywgNTEsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMTUzLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgOTAsIDAsIDAuNCkgMnB4LCByZ2JhKDE3OSwgOTAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmZhNjRkLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWtleS1idXR0b24uYWN0aXZlLm9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNhOGE4MDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZGJkYjAwIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxOSwgMjE5LCAwLCAwLjQpIDJweCwgcmdiYSgyMTksIDIxOSwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkyLCA5MiwgMCwgMC40KSAycHgsIHJnYmEoOTIsIDkyLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2Y1ZjUwMCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1rZXktYnV0dG9uLmFjdGl2ZS5nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzYxYzIwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM3YmY1MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgMnB4LCByZ2JhKDEyMywgMjQ1LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM4OGZmMGYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmcta2V5LWJ1dHRvbi5hY3RpdmUueWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwYjMwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGU2MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMjMwLCAwLCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAxMDIsIDAsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KGxpbWUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmcta2V5LWJ1dHRvbi5hY3RpdmUueWVsbG93Z3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMDBiMzVhO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzAwZTY3MyA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAyMzAsIDExNSwgMC40KSAycHgsIHJnYmEoMCwgMjMwLCAxMTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAxMDIsIDUxLCAwLjQpIDJweCwgcmdiYSgwLCAxMDIsIDUxLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZmY4MCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1rZXktYnV0dG9uLmFjdGl2ZS5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDk5OTk7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBjY2NjIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDJweCwgcmdiYSgwLCAyMDQsIDIwNCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDc3LCA3NywgMC40KSAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZTZlNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1rZXktYnV0dG9uLmFjdGl2ZS5jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwODBmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMzMzk5ZmYgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTEsIDE1MywgMjU1LCAwLjQpIDJweCwgcmdiYSg1MSwgMTUzLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCA5MCwgMTc5LCAwLjQpIDJweCwgcmdiYSgwLCA5MCwgMTc5LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzRkYTZmZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1rZXktYnV0dG9uLmFjdGl2ZS5ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzMzMzNmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM2NjY2ZmYgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAyLCAxMDIsIDI1NSwgMC40KSAycHgsIHJnYmEoMTAyLCAxMDIsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDAsIDIzMCwgMC40KSAycHgsIHJnYmEoMCwgMCwgMjMwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzgwODBmZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1rZXktYnV0dG9uLmFjdGl2ZS5pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjODAwMGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzk5MzNmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNTMsIDUxLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjYTY0ZGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWtleS1idXR0b24uYWN0aXZlLnZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNjYzAwY2M7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCBmdWNoc2lhIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMCwgMjU1LCAwLjQpIDJweCwgcmdiYSgyNTUsIDAsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEyOCwgMCwgMTI4LCAwLjQpIDJweCwgcmdiYSgxMjgsIDAsIDEyOCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZjFhZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmcta2V5LWJ1dHRvbi5hY3RpdmUubWFnZW50YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjAwODA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmYzMzk5IDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgNTEsIDE1MywgMC40KSAycHgsIHJnYmEoMjU1LCA1MSwgMTUzLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTc5LCAwLCA5MCwgMC40KSAycHgsIHJnYmEoMTc5LCAwLCA5MCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZjRkYTYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5rdy1zZXR0aW5nLWtleS1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICB9XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbHMge1xuICBtYXJnaW46IDVweCA1cHggMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjJmMmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICBncmlkLXJvdzogNDtcbiAgbWFyZ2luOiAxMHB4IDVweCAwIDVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnRlcnZhbHMge1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmt3LXNldHRpbmctaW50ZXJ2YWxzIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDM7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnRlcnZhbHMge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gMTtcbiAgICBncmlkLXJvdzogMjtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1jb250ZW50IHtcbiAgcGFkZGluZzogMTBweCAwO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW50ZXJ2YWwtY29udGVudCB7XG4gICAgcGFkZGluZzogMTBweCA1cHg7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtY2lyY2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMzAwcHg7XG4gIG1hcmdpbjogMzNweCBhdXRvIDQwcHggYXV0bztcbiAgei1pbmRleDogMTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEyNXB4O1xuICBsZWZ0OiAxMjVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgei1pbmRleDogMjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLmFjdGl2ZS5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmYwMDAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgI2ZmMzMzMyA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDUxLCA1MSwgMC40KSAycHgsIHJnYmEoMjU1LCA1MSwgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDAsIDAsIDAuNCkgMnB4LCByZ2JhKDE3OSwgMCwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZjRkNGQsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLmFjdGl2ZS5yZWRvcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmY4MDAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgI2ZmOTkzMyA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDE1MywgNTEsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMTUzLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgOTAsIDAsIDAuNCkgMnB4LCByZ2JhKDE3OSwgOTAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmZhNjRkLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLmFjdGl2ZS5vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjYThhODAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgI2RiZGIwMCA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyMTksIDIxOSwgMCwgMC40KSAycHgsIHJnYmEoMjE5LCAyMTksIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSg5MiwgOTIsIDAsIDAuNCkgMnB4LCByZ2JhKDkyLCA5MiwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmNWY1MDAsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwuYWN0aXZlLmdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjNjFjMjAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzdiZjUwMCA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMjMsIDI0NSwgMCwgMC40KSAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSg1OSwgMTE3LCAwLCAwLjQpIDJweCwgcmdiYSg1OSwgMTE3LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzg4ZmYwZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC5hY3RpdmUueWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwYjMwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGU2MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMjMwLCAwLCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAxMDIsIDAsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KGxpbWUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwuYWN0aXZlLnllbGxvd2dyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwYjM1YTtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGU2NzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMjMwLCAxMTUsIDAuNCkgMnB4LCByZ2JhKDAsIDIzMCwgMTE1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMTAyLCA1MSwgMC40KSAycHgsIHJnYmEoMCwgMTAyLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCMwMGZmODAsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwuYWN0aXZlLmdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwOTk5OTtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGNjY2MgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMjA0LCAyMDQsIDAuNCkgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDJweCwgcmdiYSgwLCA3NywgNzcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjMDBlNmU2LCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLmFjdGl2ZS5jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwODBmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMzMzk5ZmYgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTEsIDE1MywgMjU1LCAwLjQpIDJweCwgcmdiYSg1MSwgMTUzLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCA5MCwgMTc5LCAwLjQpIDJweCwgcmdiYSgwLCA5MCwgMTc5LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzRkYTZmZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC5hY3RpdmUuYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMzMzMzZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjNjY2NmZmIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMiwgMTAyLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDEwMiwgMTAyLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAwLCAyMzAsIDAuNCkgMnB4LCByZ2JhKDAsIDAsIDIzMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM4MDgwZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwuYWN0aXZlLmluZGlnbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICM4MDAwZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjOTkzM2ZmIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAycHgsIHJnYmEoMTUzLCA1MSwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoOTAsIDAsIDE3OSwgMC40KSAycHgsIHJnYmEoOTAsIDAsIDE3OSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNhNjRkZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwuYWN0aXZlLnZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNjYzAwY2M7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCBmdWNoc2lhIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMCwgMjU1LCAwLjQpIDJweCwgcmdiYSgyNTUsIDAsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEyOCwgMCwgMTI4LCAwLjQpIDJweCwgcmdiYSgxMjgsIDAsIDEyOCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZjFhZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwuYWN0aXZlLm1hZ2VudGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmYwMDgwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgI2ZmMzM5OSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDUxLCAxNTMsIDAuNCkgMnB4LCByZ2JhKDI1NSwgNTEsIDE1MywgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgMCwgOTAsIDAuNCkgMnB4LCByZ2JhKDE3OSwgMCwgOTAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmY0ZGE2LCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLmFjdGl2ZS5yZWQgKyBzcGFuIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbCAua3ctc2V0dGluZy1pbnRlcnZhbC1hcnBlZ2dpbyB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzcHg7XG4gIGxlZnQ6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbiAgei1pbmRleDogMztcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAzcHggc29saWQgI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbCAua3ctc2V0dGluZy1pbnRlcnZhbC1hcnBlZ2dpby5yZWQuYWN0aXZlIH4gc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8ucmVkIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmYwMDAwO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8ucmVkb3JhbmdlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmY4MDAwO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8ub3JhbmdlIHtcbiAgYm9yZGVyLWNvbG9yOiAjYThhODAwO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8uZ29sZCB7XG4gIGJvcmRlci1jb2xvcjogIzYxYzIwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLnllbGxvdyB7XG4gIGJvcmRlci1jb2xvcjogIzAwYjMwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLnllbGxvd2dyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBiMzVhO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8uZ3JlZW4ge1xuICBib3JkZXItY29sb3I6ICMwMDk5OTk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbCAua3ctc2V0dGluZy1pbnRlcnZhbC1hcnBlZ2dpby5jeWFuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA4MGZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8uYmx1ZSB7XG4gIGJvcmRlci1jb2xvcjogIzMzMzNmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLmluZGlnbyB7XG4gIGJvcmRlci1jb2xvcjogIzgwMDBmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLnZpb2xldCB7XG4gIGJvcmRlci1jb2xvcjogI2NjMDBjYztcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLm1hZ2VudGEge1xuICBib3JkZXItY29sb3I6ICNmZjAwODA7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbCAua3ctc2V0dGluZy1pbnRlcnZhbC1hcnBlZ2dpby5hY3RpdmUucmVkICsgc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtY2hvcmQge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICBsZWZ0OiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogNDtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsIC5rdy1zZXR0aW5nLWludGVydmFsLWNob3JkLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbCAua3ctc2V0dGluZy1pbnRlcnZhbC1jaG9yZC5hY3RpdmUgKyBzcGFuIHtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksIC0xcHggLTFweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSwgMXB4IC0xcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksIC0xcHggMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtY2hvcmQuYWN0aXZlLnJlZCArIHNwYW4ge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwucmVkLmxpZ2h0LW9uIC5rdy1zZXR0aW5nLWludGVydmFsLWFycGVnZ2lvLmFjdGl2ZSArIHNwYW4ge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLnJlZC5saWdodC1vbiAua3ctc2V0dGluZy1pbnRlcnZhbC1hcnBlZ2dpby5hY3RpdmUucmVkICsgc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwucmVkLmxpZ2h0LW9uIC5rdy1zZXR0aW5nLWludGVydmFsLWNob3JkLmFjdGl2ZSArIHNwYW4ge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLnJlZC5saWdodC1vbiAua3ctc2V0dGluZy1pbnRlcnZhbC1jaG9yZC5hY3RpdmUucmVkICsgc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwgc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNDtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3Ige1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTMzcHg7XG4gIGxlZnQ6IDEzM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIHotaW5kZXg6IDE7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0MHB4O1xuICBsZWZ0OiAxNDBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzg4ODg4ODtcbiAgei1pbmRleDogMTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoua3ctc2V0dGluZy1pbnRlcnZhbC1zcGlyYWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDMwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn0qL1xuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMjJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0MXB4O1xuICBsZWZ0OiAxMzVweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogIzIyMjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmhpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwuYWN0aXZlIHNwYW4ge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmFjdGl2ZS5yZWQgc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwucmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDAwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzMzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgNTEsIDAuNCkgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmY0ZDRkLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLnJlZG9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjgwMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmY5OTMzIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMTUzLCA1MSwgMC40KSAycHgsIHJnYmEoMjU1LCAxNTMsIDUxLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTc5LCA5MCwgMCwgMC40KSAycHgsIHJnYmEoMTc5LCA5MCwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZmE2NGQsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwub3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2E4YTgwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNkYmRiMDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjE5LCAyMTksIDAsIDAuNCkgMnB4LCByZ2JhKDIxOSwgMjE5LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoOTIsIDkyLCAwLCAwLjQpIDJweCwgcmdiYSg5MiwgOTIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZjVmNTAwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjNjFjMjAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzdiZjUwMCA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMjMsIDI0NSwgMCwgMC40KSAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSg1OSwgMTE3LCAwLCAwLjQpIDJweCwgcmdiYSg1OSwgMTE3LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzg4ZmYwZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC55ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMDBiMzAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzAwZTYwMCA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAyMzAsIDAsIDAuNCkgMnB4LCByZ2JhKDAsIDIzMCwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDEwMiwgMCwgMC40KSAycHgsIHJnYmEoMCwgMTAyLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQobGltZSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC55ZWxsb3dncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzNWE7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjczIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMTE1LCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDExNSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjMDBmZjgwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwOTk5OTtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGNjY2MgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMjA0LCAyMDQsIDAuNCkgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDJweCwgcmdiYSgwLCA3NywgNzcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjMDBlNmU2LCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmN5YW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMDA4MGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzMzOTlmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSg1MSwgMTUzLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDUxLCAxNTMsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDkwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDAsIDkwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjNGRhNmZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMzMzM2ZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzY2NjZmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMCwgMjMwLCAwLjQpIDJweCwgcmdiYSgwLCAwLCAyMzAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjODA4MGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmluZGlnbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICM4MDAwZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjOTkzM2ZmIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAycHgsIHJnYmEoMTUzLCA1MSwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoOTAsIDAsIDE3OSwgMC40KSAycHgsIHJnYmEoOTAsIDAsIDE3OSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNhNjRkZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwudmlvbGV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2NjMDBjYztcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsIGZ1Y2hzaWEgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAwLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMCwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTI4LCAwLCAxMjgsIDAuNCkgMnB4LCByZ2JhKDEyOCwgMCwgMTI4LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmMWFmZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC5tYWdlbnRhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDA4MDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzOTkgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgMTUzLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCAxNTMsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGRhNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpbyB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiB1bnNldDtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMztcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby5hY3RpdmUgfiBzcGFuIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby5hY3RpdmUucmVkIH4gc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtYXJwZWdnaW8ucmVkLmFjdGl2ZSB+IHNwYW4ge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLnJlZCB7XG4gIGJvcmRlci1jb2xvcjogI2ZmMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLnJlZG9yYW5nZSB7XG4gIGJvcmRlci1jb2xvcjogI2ZmODAwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLm9yYW5nZSB7XG4gIGJvcmRlci1jb2xvcjogI2E4YTgwMDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLmdvbGQge1xuICBib3JkZXItY29sb3I6ICM2MWMyMDA7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby55ZWxsb3cge1xuICBib3JkZXItY29sb3I6ICMwMGIzMDA7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby55ZWxsb3dncmVlbiB7XG4gIGJvcmRlci1jb2xvcjogIzAwYjM1YTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLmdyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5OTk5O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtYXJwZWdnaW8uY3lhbiB7XG4gIGJvcmRlci1jb2xvcjogIzAwODBmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvLmJsdWUge1xuICBib3JkZXItY29sb3I6ICMzMzMzZmY7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby5pbmRpZ28ge1xuICBib3JkZXItY29sb3I6ICM4MDAwZmY7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby52aW9sZXQge1xuICBib3JkZXItY29sb3I6ICNjYzAwY2M7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpby5tYWdlbnRhIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmYwMDgwO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWNob3JkLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1jaG9yZC5hY3RpdmUgfiBzcGFuIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLCAtMXB4IC0xcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksIDFweCAtMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLCAtMXB4IDFweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWNob3JkLmFjdGl2ZS5yZWQgfiBzcGFuIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtZXh0ZW5kZWQge1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB0b3A6IDE0NXB4O1xuICBsZWZ0OiAxMzdweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1leHRlbmRlZCBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWV4dGVuZGVkIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWFycGVnZ2lvIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMThweDtcbiAgdG9wOiAxO1xuICBsZWZ0OiAxO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1leHRlbmRlZCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1jaG9yZCB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtZXh0ZW5kZWQua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1leHRlbmRlZC1leHRlbmRlZCB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHRvcDogMTM4cHg7XG4gIGxlZnQ6IDEzOHB4O1xuICBmb250LXNpemU6IDAuNjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1leHRlbmRlZC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWV4dGVuZGVkLWV4dGVuZGVkIHNwYW4ge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtZXh0ZW5kZWQua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1leHRlbmRlZC1leHRlbmRlZCAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpbyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAycHg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWV4dGVuZGVkLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtZXh0ZW5kZWQtZXh0ZW5kZWQgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICB0b3A6IDFweDtcbiAgbGVmdDogMnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCBzcGFuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy11cHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzg4ODg4ODtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy11cHBlci5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy11cHBlciBkaXYge1xuICBoZWlnaHQ6IDE4NXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyMHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgdG9wOiAtMTE1cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtdXBwZXIgZGl2Om50aC1jaGlsZCgxKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtdXBwZXIgZGl2Om50aC1jaGlsZCgyKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xOWRlZyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLXVwcGVyIGRpdjpudGgtY2hpbGQoMykge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTZkZWcpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLXVwcGVyIGRpdjpudGgtY2hpbGQoNCkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTNkZWcpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLXVwcGVyIGRpdjpudGgtY2hpbGQoNSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLXVwcGVyIGRpdjpudGgtY2hpbGQoNikge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy11cHBlciBkaXY6bnRoLWNoaWxkKDcpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy11cHBlciBkaXY6bnRoLWNoaWxkKDgpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTNkZWcpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLXVwcGVyIGRpdjpudGgtY2hpbGQoOSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxNmRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtdXBwZXIgZGl2Om50aC1jaGlsZCgxMCkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxOWRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtdXBwZXIgZGl2Om50aC1jaGlsZCgxMSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy1sb3dlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzg4ODg4ODtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy1sb3dlci5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy1sb3dlciBkaXYge1xuICBoZWlnaHQ6IDE4NXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyMHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgdG9wOiAtMTE1cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy1sb3dlciBkaXY6bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTIxMGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCgxKSBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLWxvd2VyIGRpdjpudGgtY2hpbGQoMikge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTk5ZGVnKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy1sb3dlciBkaXY6bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE5NmRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCg0KSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xOTNkZWcpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLWxvd2VyIGRpdjpudGgtY2hpbGQoNSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTkwZGVnKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCg2KSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCg3KSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE5MGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCg4KSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE5M2RlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCg5KSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE5NmRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCgxMCkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxOTlkZWcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLXRocy1sb3dlciBkaXY6bnRoLWNoaWxkKDExKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC10aHMtbG93ZXIgZGl2Om50aC1jaGlsZCgxMSkgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtMSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTI3MGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLTIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMDBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC0zMDBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC0zIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtMzMwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtNCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEyNXB4KTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtNSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtMzBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC02IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC02MGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLTcge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTkwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtOCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEyMGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTEyMGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLTkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxNTBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC0xNTBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC0xMCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTE4MGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLTExIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjEwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtMjEwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtMTIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC0yNDBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0xIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoODBweCkgcm90YXRlKC0yNzBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0yIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzAwZGVnKSB0cmFuc2xhdGUoODBweCkgcm90YXRlKC0zMDBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0zIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoODBweCkgcm90YXRlKC0zMzBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci00IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDgycHgpIHJvdGF0ZSgtMzBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci02IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTYwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItNyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoODJweCkgcm90YXRlKC05MGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTgge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTEyMGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxNTBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTE1MGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTEwIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGUoODJweCkgcm90YXRlKC0xODBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0xMSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZykgdHJhbnNsYXRlKDgycHgpIHJvdGF0ZSgtMjEwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItMTIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTI0MGRlZyk7XG59XG5cbi8qLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lncyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDMwMHB4O1xufSovXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctMSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtMjcwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLTIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMDBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTMwMGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy0zIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC0zMzBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctNCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoMGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy01IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTMwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLTYge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtNjBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctNyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC05MGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy04IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC0xMjBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctOSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtMTUwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLTEwIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC0xODBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctMTEge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTIxMGRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy0xMiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI0MGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtMjQwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1hIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZykgdHJhbnNsYXRlKDQzcHgpIHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVgoNHB4KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDQ5JSwgIzg4ODg4OCA0OSUsICM4ODg4ODggNTElLCB0cmFuc3BhcmVudCA1MSUsIHRyYW5zcGFyZW50IDEwMCUpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1hIHNwYW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctZG91YmxlLWEgc3BhbjpmaXJzdC1jaGlsZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMnB4O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1hIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0ycHg7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy1kb3VibGUtYiB7XG4gIGhlaWdodDogMzVweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSg0MHB4KSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDBweCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCA0OSUsICM4ODg4ODggNDklLCAjODg4ODg4IDUxJSwgdHJhbnNwYXJlbnQgNTElLCB0cmFuc3BhcmVudCAxMDAlKTtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy1kb3VibGUtYiBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctZG91YmxlLWIgc3BhbjpudGgtY2hpbGQoMikge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTJweDtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1jIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSg0M3B4KSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKC00cHgpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgNDklLCAjODg4ODg4IDQ5JSwgIzg4ODg4OCA1MSUsIHRyYW5zcGFyZW50IDUxJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctZG91YmxlLWMgc3BhbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctZG91YmxlLWMgc3BhbjpmaXJzdC1jaGlsZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMnB4O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1jIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTEge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSg1LjRlbSk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMSBzcGFuIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzAwZGVnKSB0cmFuc2xhdGUoNS4yNWVtKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0zIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoNS4xZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0Ljk1ZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDQuOGVtKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC02IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpIHRyYW5zbGF0ZSg0LjY1ZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTcge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDQuNWVtKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC03IHNwYW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC04IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoNC4zNWVtKSByb3RhdGUoLTE4MGRlZyk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtOSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDQuMmVtKSByb3RhdGUoLTE4MGRlZyk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTAge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSg0LjA1ZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xMSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZykgdHJhbnNsYXRlKDMuOWVtKSByb3RhdGUoLTE4MGRlZyk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSgzLjc1ZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4vKiBleHRlbmRlZCBpbnRlcnZhbHM6ICovXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xMyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDQuNTVlbSk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0b3A6IDE0M3B4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xMyAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1jaG9yZCB7XG4gIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB0b3A6IDJweCAhaW1wb3J0YW50O1xuICBsZWZ0OiAxcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTMgc3BhbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMDBkZWcpIHRyYW5zbGF0ZSg0LjM1ZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xNSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDMzMGRlZykgdHJhbnNsYXRlKDQuMmVtKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTYge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzLjllbSk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDE1cHggIWltcG9ydGFudDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTE3IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpIHRyYW5zbGF0ZSgzLjc1ZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xOCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKSB0cmFuc2xhdGUoMy42ZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xOSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoMy40ZW0pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdG9wOiAxNDJweCAhaW1wb3J0YW50O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTkgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgdG9wOiAycHggIWltcG9ydGFudDtcbiAgbGVmdDogMXB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTE5IHNwYW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yMCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEyMGRlZykgdHJhbnNsYXRlKDMuMjVlbSkgcm90YXRlKC0xODBkZWcpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yMSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDNlbSkgcm90YXRlKC0xODBkZWcpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yMiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDIuODJlbSkgcm90YXRlKC0xODBkZWcpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yMyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZykgdHJhbnNsYXRlKDIuNjVlbSkgcm90YXRlKC0xODBkZWcpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yNCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI0MGRlZykgdHJhbnNsYXRlKDIuNWVtKSByb3RhdGUoLTE4MGRlZyk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDE1cHggIWltcG9ydGFudDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTI1IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoMi43ZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRvcDogMTM3cHggIWltcG9ydGFudDtcbiAgbGVmdDogMTQxcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTI1IHNwYW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMjUgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICB3aWR0aDogMTRweCAhaW1wb3J0YW50O1xufVxuLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMjUgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtYXJwZWdnaW8ge1xuICB3aWR0aDogMTRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgdG9wOiAwcHggIWltcG9ydGFudDtcbiAgbGVmdDogMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvciB7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMzAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTQ5LjVweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjODg4ODg4LCB0cmFuc3BhcmVudCwgIzg4ODg4OCwgdHJhbnNwYXJlbnQpO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvci5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtc2VwYXJhdG9yLTEge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1zZXBhcmF0b3ItMiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtc2VwYXJhdG9yLTMge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvci00IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1zZXBhcmF0b3ItNSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEwNWRlZyk7XG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvci02IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogNDJweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudChyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMCUsIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC44KSAxMDAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGRhcmtlbigkbWFnZW50YSwgMjUlKSAwJSwgbGlnaHRlbigkeWVsbG93LCAyNSUpIDI1JSwgZGFya2VuKCRibHVlLCAyNSUpIDUwJSwgJHllbGxvd0dyZWVuIDUwJSwgZGFya2VuKCRjeWFuLCAyNSUpIDEwMCUpXG4gIDtcbiAgYm9yZGVyOiAycHggc29saWQgJGRhcmtlckdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDIxcHg7XG4gICovXG59XG5cbi5rdy1zZXR0aW5nLWludGVydmFsLW9wdGlvbi10eXBlLXRleHQge1xuICB3aWR0aDogMTAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzg4ODg4ODtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtdGV4dC1sb3dlciB7XG4gIGNvbG9yOiAjODg4ODg4O1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzY2NjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWludGVydmFsLW9wdGlvbi10eXBlLWxhYmVsOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudCgjYzljOWM5LCAjNjY2LCAjYzljOWM5LCAjNjY2LCAjYzljOWM5KTtcbn1cblxuLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtY2hlY2tib3gge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ua3ctc2V0dGluZy1pbnRlcnZhbC1vcHRpb24tdHlwZS1jaGVja2JveDpjaGVja2VkICsgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtbGFiZWw6OmFmdGVyIHtcbiAgbGVmdDogMjhweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoI2M5YzljOSwgIzY2NiwgI2M5YzljOSwgIzY2NiwgI2M5YzljOSk7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm5zIHtcbiAgbWFyZ2luOiA1cHggNXB4IDAgNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgZ3JpZC1yb3c6IDM7XG4gIG1hcmdpbjogMTBweCA1cHggMCA1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1wYXR0ZXJucyB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAua3ctc2V0dGluZy1wYXR0ZXJucyB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAzO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctcGF0dGVybnMge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gMTtcbiAgICBncmlkLXJvdzogMjtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ua3ctc2V0dGluZy1wYXR0ZXJuLWNvbnRlbnQuY29sbGFwc2VkIHtcbiAgaGVpZ2h0OiA1cHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5rdy1zZXR0aW5nLXBhdHRlcm4tY29udGVudC5jb2xsYXBzZWQge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1jb250cm9sLXRvZ2dsZSB7XG4gIHdpZHRoOiAyMjBweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBtYXJnaW46IGF1dG8gYXV0byAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbn1cbi5rdy1zZXR0aW5nLXBhdHRlcm4tY29udHJvbC10b2dnbGUgLmt3LXNldHRpbmctcGF0dGVybi1jb250cm9sLXRvZ2dsZS1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xufVxuLmt3LXNldHRpbmctcGF0dGVybi1jb250cm9sLXRvZ2dsZSAua3ctc2V0dGluZy1wYXR0ZXJuLWNvbnRyb2wtdG9nZ2xlLWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmZmZmZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgd2hpdGUgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCh3aGl0ZSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udHJvbC10b2dnbGUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDdweDtcbiAgbGVmdDogMnB4O1xuICB6LWluZGV4OiAyMDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG4ua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtdG9nZ2xlLWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmZmZmZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgd2hpdGUgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCh3aGl0ZSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC10b2dnbGUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1zZWxmOiBsZWZ0O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBncmlkLWNvbHVtbjogMy9zcGFuIDE7XG4gIGdyaWQtcm93OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogN3B4O1xuICByaWdodDogMnB4O1xuICB6LWluZGV4OiAyO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdW5zZXQgIWltcG9ydGFudDtcbn1cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC10b2dnbGUtYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZmZmZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCB3aGl0ZSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDJweCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjE3LCAyMTcsIDIxNywgMC40KSAycHgsIHJnYmEoMjE3LCAyMTcsIDIxNywgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHdoaXRlLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cblxuLmt3LXNldHRpbmctc2hhcGVzIHtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAua3ctc2V0dGluZy1zaGFwZXMge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgICBncmlkLXJvdzogYXV0bztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLXNoYXBlcyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGVzIHtcbiAgbWFyZ2luOiA1cHggNXB4IDAgNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZsZXgtZ3JvdzogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGVzIHtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxufVxuLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250ZW50IHtcbiAgcGFkZGluZzogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsICMzNjM2MzYpO1xuICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcbn1cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udGVudC5jb2xsYXBzZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udGVudC5jb2xsYXBzZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9scyB7XG4gIG1pbi1oZWlnaHQ6IDEzMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtcHJlc2V0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7XG4gIC8qXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgNXB4XG4gICAgKSxcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC45NSkgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC45NSkgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgNXB4XG4gICAgKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICApXG4gIDtcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudChyZ2JhKDEyNywgMTI3LCAxMjcsIDAuNSksIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudChyZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNSksIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgY29sb3I6ICMyMjI7XG4gIHRleHQtc2hhZG93OiAwIDAuNXB4IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwIDEwcHggMCAyNXB4O1xuICBib3JkZXI6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMTEsIDExMSwgMTExLCAwLjUpLCByZ2JhKDQ3LCA0NywgNDcsIDAuNSkpLCBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgIzZmNmY2ZiwgIzZmNmY2ZiAxNXB4LCAjNDg0ODQ4IDE1cHgsICM0ODQ4NDgpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICMxNTE1MTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtc2VsZWN0ZWQge1xuICBtYXJnaW46IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtc2VsZWN0ZWQtbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLXNlbGVjdGVkLWxpc3QgbGkge1xuICBtaW4taGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbjogMCA1cHggNXB4IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDAgIWltcG9ydGFudDtcbiAgLypcbiAgJi5mbGFzaCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAkcmVkLCAwIDAgMTBweCAkcmVkICFpbXBvcnRhbnQ7XG4gIH1cbiAgKi9cbn1cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtc2VsZWN0ZWQtbGlzdCBsaSBzcGFuIHtcbiAgcGFkZGluZzogMCA1cHggMCAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udHJvbC1tb25vcG9seSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQycHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBwYWRkaW5nOiA1cHggMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtbW9ub3BvbHktdGV4dCB7XG4gIHdpZHRoOiAxMDBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBjb2xvcjogIzg4ODg4ODtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LXRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtbW9ub3BvbHktdGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udHJvbC1tb25vcG9seS1sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAyN3B4O1xuICBtYXJnaW46IDAgNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTUxNTE1O1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjNjY2O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWxhYmVsOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjNweDtcbiAgaGVpZ2h0OiAyM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudCgjYzljOWM5LCAjNjY2LCAjYzljOWM5LCAjNjY2LCAjYzljOWM5KTtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtbW9ub3BvbHktbGFiZWw6OmFmdGVyIHtcbiAgbGVmdDogMjNweDtcbiAgd2lkdGg6IDIzcHg7XG4gIGhlaWdodDogMjNweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoI2M5YzljOSwgIzY2NiwgI2M5YzljOSwgIzY2NiwgI2M5YzljOSk7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW9zIHtcbiAgbWFyZ2luOiA1cHggNXB4IDAgNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4LWdyb3c6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvcyB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvcyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzM2MzYzNik7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4O1xufVxuLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250ZW50LmNvbGxhcHNlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250ZW50LmNvbGxhcHNlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2xzIHtcbiAgbWluLWhlaWdodDogMTMxcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1wcmVzZXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDAgMTBweCAwIDI1cHg7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDExMSwgMTExLCAxMTEsIDAuNSksIHJnYmEoNDcsIDQ3LCA0NywgMC41KSksIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjNmY2ZjZmLCAjNmY2ZjZmIDE1cHgsICM0ODQ4NDggMTVweCwgIzQ4NDg0OCk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzE1MTUxNTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1zZWxlY3RlZCB7XG4gIG1hcmdpbjogMCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1zZWxlY3RlZC1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tc2VsZWN0ZWQtbGlzdCBsaSB7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luOiAwIDVweCA1cHggMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMCAhaW1wb3J0YW50O1xuICAvKlxuICAmLmZsYXNoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRyZWQsIDAgMCAxMHB4ICRyZWQgIWltcG9ydGFudDtcbiAgfVxuICAqL1xufVxuLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1zZWxlY3RlZC1saXN0IGxpIHNwYW4ge1xuICBwYWRkaW5nOiAwIDVweCAwIDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDJweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIHBhZGRpbmc6IDVweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1tb25vcG9seS10ZXh0IHtcbiAgd2lkdGg6IDEwMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGNvbG9yOiAjODg4ODg4O1xufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2wtbW9ub3BvbHktdGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1tb25vcG9seS10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5LWxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDI3cHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTE1MTU7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM2NjY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2wtbW9ub3BvbHktbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDIzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KCNjOWM5YzksICM2NjYsICNjOWM5YzksICM2NjYsICNjOWM5YzkpO1xufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2wtbW9ub3BvbHktY2hlY2tib3gge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2wtbW9ub3BvbHktY2hlY2tib3g6Y2hlY2tlZCArIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1tb25vcG9seS1sYWJlbDo6YWZ0ZXIge1xuICBsZWZ0OiAyM3B4O1xuICB3aWR0aDogMjNweDtcbiAgaGVpZ2h0OiAyM3B4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudCgjYzljOWM5LCAjNjY2LCAjYzljOWM5LCAjNjY2LCAjYzljOWM5KTtcbn1cblxuLmt3LXNldHRpbmctY2hvcmRzIHtcbiAgbWFyZ2luOiA1cHggNXB4IDAgNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgZ3JpZC1yb3c6IDI7XG4gIG1hcmdpbjogMTBweCA1cHggMCA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1jaG9yZHMge1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmt3LXNldHRpbmctY2hvcmRzIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgbWFyZ2luOiAxMHB4IDVweCAwIDVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLWNob3JkcyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAyO1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDQ3NXB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250ZW50LmNvbGxhcHNlZCB7XG4gIGhlaWdodDogNXB4O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmt3LXNldHRpbmctY2hvcmQtY29udGVudC5jb2xsYXBzZWQge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG4vKiBCRUdJTiBLRVlCT0FSRCAqL1xuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbHMta2V5Ym9hcmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbHMta2V5Ym9hcmQudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXByZXNldCxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtcm9vdCxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaW52ZXJzaW9uLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC12ZXJzaW9uLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tY29sdW1uczogOTBweCAxZnI7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXByZXNldC5oaWRkZW4sXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXJvb3QuaGlkZGVuLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1pbnZlcnNpb24uaGlkZGVuLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC12ZXJzaW9uLmhpZGRlbixcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtb2N0YXZlLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtcHJlc2V0LWxhYmVsLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1yb290LWxhYmVsLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1pbnZlcnNpb24tbGFiZWwsXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXZlcnNpb24tbGFiZWwsXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1sYWJlbCB7XG4gIHdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICBjb2xvcjogIzg4ODg4ODtcbn1cblxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1wcmVzZXQtc2VsZWN0LFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1yb290LXNlbGVjdCxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaW52ZXJzaW9uLXNlbGVjdCxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtdmVyc2lvbi1zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBwYWRkaW5nOiAwIDEwcHggMCAyNXB4O1xuICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDExMSwgMTExLCAxMTEsIDAuNSksIHJnYmEoNDcsIDQ3LCA0NywgMC41KSksIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjNmY2ZjZmLCAjNmY2ZjZmIDE1cHgsICM0ODQ4NDggMTVweCwgIzQ4NDg0OCk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtcHJlc2V0LXNlbGVjdCBvcHRpb24sXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXJvb3Qtc2VsZWN0IG9wdGlvbixcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaW52ZXJzaW9uLXNlbGVjdCBvcHRpb24sXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXZlcnNpb24tc2VsZWN0IG9wdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjAwMDA7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaGFuZCB7XG4gIHdpZHRoOiAyODBweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaGFuZC10ZXh0OmZpcnN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLWhhbmQtY2hlY2tib3gge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1oYW5kLWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLWhhbmQtbGFiZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDAwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzMzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgNTEsIDAuNCkgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmY0ZDRkLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgbGVmdDogMjhweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbn1cblxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1oYW5kLWxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM5OTk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLWhhbmQtbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMDA4MGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzMzOTlmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSg1MSwgMTUzLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDUxLCAxNTMsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDkwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDAsIDkwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjNGRhNmZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1jb2x1bW5zOiA5MHB4IDFmciA0NXB4O1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9scyB7XG4gIHdpZHRoOiAxMDhweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdyaWQtY29sdW1uOiAyL3NwYW4gMTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMTExLCAxMTEsIDExMSwgMC41KSwgcmdiYSg3MiwgNzIsIDcyLCAwLjUpKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLWJ1dHRvbi1kZWNyZW1lbnQsXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLWJ1dHRvbi1pbmNyZW1lbnQge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMTEsIDExMSwgMTExLCAwLjUpLCByZ2JhKDcyLCA3MiwgNzIsIDAuNSkpO1xufVxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbC1idXR0b24tZGVjcmVtZW50OmFjdGl2ZSxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtb2N0YXZlLWNvbnRyb2wtYnV0dG9uLWluY3JlbWVudDphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSg3MiwgNzIsIDcyLCAwLjUpLCByZ2JhKDExMSwgMTExLCAxMTEsIDAuNSkpO1xufVxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbC1idXR0b24tZGVjcmVtZW50IHNwYW4sXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLWJ1dHRvbi1pbmNyZW1lbnQgc3BhbiB7XG4gIGNvbG9yOiAjMTUxNTE1O1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLWJ1dHRvbi1kZWNyZW1lbnQge1xuICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDtcbn1cblxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbC1yZWFkb3V0IHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAjMTUxNTE1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXM7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLXJlYWRvdXQuZmxhc2gge1xuICBjb2xvcjogI2ZmODAwMDtcbn1cblxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbC1idXR0b24taW5jcmVtZW50IHtcbiAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7XG59XG5cbi8qIEJFR0lOIFNUUklOR0VEICovXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9scy1zdHJpbmdlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9scy1zdHJpbmdlZC52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtcHJlc2V0LFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1yb290LFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1pbnZlcnNpb24sXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXZlcnNpb24ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tY29sdW1uczogOTBweCAxZnI7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXByZXNldC5oaWRkZW4sXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXJvb3QuaGlkZGVuLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1pbnZlcnNpb24uaGlkZGVuLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC12ZXJzaW9uLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtcHJlc2V0LWxhYmVsLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1yb290LWxhYmVsLFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1pbnZlcnNpb24tbGFiZWwsXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXZlcnNpb24tbGFiZWwsXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLW9jdGF2ZS1sYWJlbCB7XG4gIHdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICBjb2xvcjogIzg4ODg4ODtcbn1cblxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1wcmVzZXQtc2VsZWN0LFxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1yb290LXNlbGVjdCxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtaW52ZXJzaW9uLXNlbGVjdCxcbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtdmVyc2lvbi1zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBwYWRkaW5nOiAwIDEwcHggMCAyNXB4O1xuICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDExMSwgMTExLCAxMTEsIDAuNSksIHJnYmEoNDcsIDQ3LCA0NywgMC41KSksIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjNmY2ZjZmLCAjNmY2ZjZmIDE1cHgsICM0ODQ4NDggMTVweCwgIzQ4NDg0OCk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzE1MTUxNTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtb2N0YXZlLXNsaWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxNTNweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGdyaWQtY29sdW1uOiAyL3NwYW4gMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1vY3RhdmUtc2xpZGVyIGxhYmVsIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWZhbWlseTogT3BlbiBTYW5zO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtb2N0YXZlLXNsaWRlciBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIC8qXG4gICAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6ICRibGFjaztcbiAgb3V0bGluZTogbm9uZTtcbiAgb3BhY2l0eTogMC43O1xuICAtd2Via2l0LXRyYW5zaXRpb246IC4ycztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnM7XG4gICAgKi9cbiAgLyogTW91c2Utb3ZlciBlZmZlY3RzICovXG4gIC8qIFRoZSBzbGlkZXIgaGFuZGxlICh1c2UgLXdlYmtpdC0gKENocm9tZSwgT3BlcmEsIFNhZmFyaSwgRWRnZSkgYW5kIC1tb3otIChGaXJlZm94KSB0byBvdmVycmlkZSBkZWZhdWx0IGxvb2spICovXG4gIC8qJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgIC8vLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC8vYXBwZWFyYW5jZTogbm9uZTtcbiAgICBAaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgQGluY2x1ZGUgbGlnaHQtb24oJHdoaXRlKTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC8vYmFja2dyb3VuZDogJGJsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9Ki9cbiAgLyomOjotbW96LXJhbmdlLXRodW1iIHtcbiAgXHRAaW5jbHVkZSBsaWdodC1vZmY7XG4gIFx0QGluY2x1ZGUgbGlnaHQtb24oJHdoaXRlKTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC8vYmFja2dyb3VuZDogJGJsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9Ki9cbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtb2N0YXZlLXNsaWRlciBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtb2N0YXZlLXNsaWRlciBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLW9jdGF2ZS1zbGlkZXIgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgaGVpZ2h0OiA1cHg7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLW9jdGF2ZS1zbGlkZXIgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdHJhY2sge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmZmZmZmYgMCwgI2ZmZmZmZiA5cHgsICMwMDAwMDAgOXB4LCAjMDAwMDAwIDExcHgsICNmZmZmZmYgMTFweCwgI2ZmZmZmZiAyOXB4LCAjMDAwMDAwIDI5cHgsICMwMDAwMDAgMzFweCwgI2ZmZmZmZiAzMXB4LCAjZmZmZmZmIDQ5cHgsICMwMDAwMDAgNDlweCwgIzAwMDAwMCA1MXB4LCAjZmZmZmZmIDUxcHgsICNmZmZmZmYgNjlweCwgIzAwMDAwMCA2OXB4LCAjMDAwMDAwIDcxcHgsICNmZmZmZmYgNzFweCwgI2ZmZmZmZiA4OXB4LCAjMDAwMDAwIDg5cHgsICMwMDAwMDAgOTFweCwgI2ZmZmZmZiA5MXB4LCAjZmZmZmZmIDEwOXB4LCAjMDAwMDAwIDEwOXB4LCAjMDAwMDAwIDExMXB4LCAjZmZmZmZmIDExMXB4LCAjZmZmZmZmIDEyOXB4LCAjMDAwMDAwIDEyOXB4LCAjMDAwMDAwIDEzMXB4LCAjZmZmZmZmIDEzMXB4LCAjZmZmZmZmIDE1M3B4KTtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtb2N0YXZlLXNsaWRlciBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHBpbms7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtb2N0YXZlLXNsaWRlciBpbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10aHVtYiB7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHBpbms7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1vY3RhdmUtcmVhZG91dCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZ3JpZC1jb2x1bW46IDMvc3BhbiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRlbnQtcmVhZG91dCB7XG4gIG1hcmdpbjogMTBweCAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA1MHB4O1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmMmYyZjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzJmMmYyZiwgIzJmMmYyZiAxOHB4LCB0cmFuc3BhcmVudCAxOHB4LCB0cmFuc3BhcmVudCAyMnB4LCAjMmYyZjJmIDIycHgsICMyZjJmMmYgMTAwJSksIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMzBweCwgIzNkM2QzZCAzMHB4LCAjM2QzZDNkIDY3JSwgdHJhbnNwYXJlbnQgNjclLCB0cmFuc3BhcmVudCAxMDAlKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1jaG9yZC1jb250ZW50LXJlYWRvdXQge1xuICAgIG1hcmdpbjogYXV0byAwIDAgMDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250ZW50LXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFZUMzIzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4ICNmZmZmZmYsIDAgMCAwcHggI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjM2MzYzNjO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMzYzNjM2M7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDAgOTBweDtcbiAgcGFkZGluZzogMCAxNXB4O1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gIGdyaWQtcm93OiAxO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250ZW50LXRpdGxlIHNwYW4ge1xuICBoZWlnaHQ6IDM2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXBsYXkge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAycHggMCAwIDVweDtcbiAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICBncmlkLXJvdzogMTtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtcGxheSAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXBsYXktYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6ICMyZjJmMmY7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXBsYXkgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1wbGF5LWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmZmZmZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgd2hpdGUgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCh3aGl0ZSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG5cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtbWVzc2FnZSB7XG4gIG1hcmdpbjogMTVweCAwIDAgMDtcbiAgcGFkZGluZzogNXB4IDEwcHggMTBweCAxMHB4O1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIGdyaWQtcm93OiAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0ODQ4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICNhMmEyYTI7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLW1lc3NhZ2Ugc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgY29sb3I6ICNhOGE4MDA7XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLW1lc3NhZ2UudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXRvZ2dsZSB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG4ua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXRvZ2dsZSAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXRvZ2dsZS1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDE0NnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIG1hcmdpbjogM3B4IDAgM3B4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtdG9nZ2xlIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtdG9nZ2xlLWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmZmZmZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgd2hpdGUgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCh3aGl0ZSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG5cbi5rdy1zZXR0aW5nLXNlcXVlbmNlcyB7XG4gIG1hcmdpbjogNXB4IDVweCAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmMmYyZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDM7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctc2VxdWVuY2VzIHtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1zZXF1ZW5jZS1jb250ZW50IHtcbiAgcGFkZGluZzogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50cyB7XG4gIG1hcmdpbjogNXB4IDVweCAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmMmYyZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDM7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudHMge1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICBncmlkLWF1dG8tcm93czogYXV0byBhdXRvIGF1dG8gYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWNvbnRlbnQge1xuICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvIGF1dG8gYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzJmMmYyZiwgIzJmMmYyZiAyOHB4LCB0cmFuc3BhcmVudCAyOHB4LCB0cmFuc3BhcmVudCAzMnB4LCAjMmYyZjJmIDMycHgsICMyZjJmMmYgMTAwJSksIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMjQwcHgsICMzZDNkM2QgMjQwcHgsICMzZDNkM2QgODQlLCB0cmFuc3BhcmVudCA4NCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDM7XG4gIGdyaWQtcm93OiAxO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZS1idXR0b25zIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZS1idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAzMHB4IDRweCA0cHggMzBweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZS1idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweCAzMHB4IDMwcHggNHB4O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXR5cGUta2V5Ym9hcmQsIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZS1zdHJpbmdlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7XG4gIC8qXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgNXB4XG4gICAgKSxcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC45NSkgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC45NSkgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgNXB4XG4gICAgKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICApXG4gIDtcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudChyZ2JhKDEyNywgMTI3LCAxMjcsIDAuNSksIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudChyZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNSksIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgY29sb3I6ICMyMjI7XG4gIHRleHQtc2hhZG93OiAwIDAuNXB4IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICB3aWR0aDogMTEwcHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMCAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC10eXBlLWtleWJvYXJkLmFjdGl2ZSwgLmt3LXNldHRpbmctaW5zdHJ1bWVudC10eXBlLXN0cmluZ2VkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZmZmZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCB3aGl0ZSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDJweCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjE3LCAyMTcsIDIxNywgMC40KSAycHgsIHJnYmEoMjE3LCAyMTcsIDIxNywgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHdoaXRlLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZCwgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDMxMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAwIDEwcHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ4NDg0ODtcbiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgZ3JpZC1yb3c6IDM7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLCAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgIHBhZGRpbmc6IDAgNXB4IDEwcHggNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZCwgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgYm9yZGVyOiB1bnNldDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAyO1xuICAgIGdyaWQtcm93OiAxO1xuICB9XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLm9wZW4sIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQub3BlbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiBpbmhlcml0O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tcHJlc2V0cyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1wcmVzZXRzIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1wcmVzZXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFZUMzIzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4ICNmZmZmZmYsIDAgMCAwcHggI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjM2MzYzNjO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMzYzNjM2M7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM2cHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tcHJlc2V0LXNlbGVjdCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiBhdXRvO1xuICB6LWluZGV4OiAzO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbXMge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLXRvZ2dsZSB7XG4gIHdpZHRoOiAyOTZweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtYXJnaW46IDAgYXV0byAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMjBweCAwIDUwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjMjcyNzI3LCAjM2MzYzNjKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA1O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS10b2dnbGUge1xuICAgIHdpZHRoOiAyOTZweDtcbiAgICBtYXJnaW46IDEwcHggYXV0byAxMHB4IGF1dG87XG4gIH1cbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tdG9nZ2xlIC5jaGV2cm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS10b2dnbGUgLmNoZXZyb24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmZmZmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsIHdoaXRlIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQod2hpdGUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLXRvZ2dsZSAudGV4dCB7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjODg4ODg4O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkcyB7XG4gIHdpZHRoOiAyOThweDtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWFyZ2luLXRvcDogLTE4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGRzLm9wZW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkcyB7XG4gICAgbWFyZ2luLXRvcDogLTI4cHg7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1oZWFkZXIge1xuICB3aWR0aDogMjk4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMyZjJmMmYsICMzYzNjM2MgNzAlLCAjNDg0ODQ4KTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzY2NiwgIzQ4NDg0OCkgMSAxMDAlO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtaGVhZGVyIHtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICM2NjYsIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJTtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWhlYWRlci10aXRsZSB7XG4gIG1pbi13aWR0aDogMjk4cHg7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24ge1xuICB3aWR0aDogMjk2cHg7XG4gIG1hcmdpbjogMnB4IDFweCAxcHggMXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwOTA5MDk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24tdGl0bGUge1xuICB3aWR0aDogMjk2cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG4gIGNvbG9yOiAjODg4ODg4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMjIyLCAjMmMyYzJjKTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1rZXlzLXdyYXAge1xuICB3aWR0aDogMjk2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1rZXlzLWhlYWRlciB7XG4gIHdpZHRoOiAyOTJweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWtleXMtaGVhZGVyLWhlYWRpbmcge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogI2UyZTJlMjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQta2V5cy1oZWFkZXItaGVhZGluZzpudGgtY2hpbGQoMSkge1xuICB3aWR0aDogMTIwcHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWtleXMtaGVhZGVyLWhlYWRpbmc6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDEwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWtleXMtaGVhZGVyLWhlYWRpbmc6bnRoLWNoaWxkKDIpOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiA1MXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjODg4ODg4LCAjNjY2LCAjNTU1NTU1LCAjNjY2LCAjODg4ODg4KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IC0yNnB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1rZXlzLWhlYWRlci1oZWFkaW5nOm50aC1jaGlsZCgzKSB7XG4gIHdpZHRoOiAxMDBweDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1rZXlzLWhlYWRlci10aXRsZSB7XG4gIG1pbi13aWR0aDogMjk2cHg7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24ge1xuICB3aWR0aDogMjk2cHg7XG4gIG1hcmdpbjogMnB4IDFweCAxcHggMXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwOTA5MDk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24tdGl0bGUge1xuICB3aWR0aDogMjkycHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG4gIGNvbG9yOiAjODg4ODg4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMjIyLCAjMmMyYzJjKTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1hdHRyaWJ1dGVzIHtcbiAgLyp3aWR0aDogMjk2cHg7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAxcHggMCAwIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtZWRpdW1HcmF5O1xuICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDUlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gIC8vYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gIC8vYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAqL1xuICAvKlxuICB3aWR0aDogMjkycHg7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAxcHggMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLy9ib3JkZXItdG9wOiAxcHggc29saWQgJG1lZGl1bUdyYXk7XG4gIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrZXJHcmF5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGRhcmtlc3RHcmF5O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA3JSk7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDclKTtcbiAgLy9ib3JkZXItcmFkaXVzOiA1cHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gIH1cbiAgKi9cbiAgd2lkdGg6IDI5MnB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbjogMXB4IDJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmMmYyZjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjM2MzYzNjO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMzQzNDM0O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMzNDM0MzQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWF0dHJpYnV0ZSB7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1hdHRyaWJ1dGUgaW5wdXQge1xuICBmb250LWZhbWlseTogVlQzMjM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggI2ZmZmZmZiwgMCAwIDBweCAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzNjM2MzYztcbiAgd2lkdGg6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1hdHRyaWJ1dGU6bnRoLWNoaWxkKDEpIHtcbiAgd2lkdGg6IDEyMHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWF0dHJpYnV0ZTpudGgtY2hpbGQoMikge1xuICB3aWR0aDogMTAwcHg7XG4gIHBhZGRpbmc6IDAgMTBweCAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjM2MzYztcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1hdHRyaWJ1dGU6bnRoLWNoaWxkKDMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjM2MzYztcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLXN0YXJ0LW5vdGUtbmFtZSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzNjM2M7XG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tYXR0cmlidXRlIGlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWF0dHJpYnV0ZSBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWF0dHJpYnV0ZSBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cblxuLypcbiAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtZm9vdGVyIHtcbiAgICAgICAgd2lkdGg6IDMwOHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrR3JheTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdEdyYXk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6ICRkYXJrZXJHcmF5O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCggdG8gYm90dG9tLCAkZGFya2VyR3JheSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IC8vNHB4IDRweCAwIDA7XG4gICAgICB9XG4qL1xuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvciB7XG4gIHdpZHRoOiAyOTJweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtYXJnaW46IDJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC8qYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDAlLCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMTAwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBkYXJrZW4oJGN5YW4sIDI1JSkgMCUsIGRhcmtlbigkY3lhbiwgMjUlKSA1MCUsIGRhcmtlbigkcmVkLCAyNSUpIDUwJSwgZGFya2VuKCRyZWQsIDI1JSkgMTAwJSlcbiAgOyovXG4gIGJvcmRlcjogMXB4IHNvbGlkICMzYzNjM2M7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzM2MzYzNik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvci10ZXh0IHtcbiAgd2lkdGg6IDc1cHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBjb2xvcjogI2UyZTJlMjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtY29sb3ItdGV4dDpmaXJzdC1jaGlsZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvci1jaGVja2JveCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWNvbG9yLWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWNvbG9yLWxhYmVsOjphZnRlciB7XG4gIGxlZnQ6IDIzcHg7XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDIzcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KCNjOWM5YzksICM2NjYsICNjOWM5YzksICM2NjYsICNjOWM5YzkpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvci1jaGVja2JveDpjaGVja2VkICsgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvci1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtY29sb3ItbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjYyNjtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzk5OTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMjdweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzY2Njtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtY29sb3ItbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDIzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KCNjOWM5YzksICM2NjYsICNjOWM5YzksICM2NjYsICNjOWM5YzkpO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IGluaGVyaXQ7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1wcmVzZXRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXByZXNldHMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXByZXNldC1zZWxlY3Qge1xuICBmb250LWZhbWlseTogVlQzMjM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggI2ZmZmZmZiwgMCAwIDBweCAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzNjM2MzYztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1wcmVzZXQtc2VsZWN0IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b21zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tcyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tdG9nZ2xlIHtcbiAgd2lkdGg6IDI5NnB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDAgYXV0bztcbiAgcGFkZGluZzogMCAyMHB4IDAgNTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMyNzI3MjcsICMzYzNjM2MpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLXRvZ2dsZSB7XG4gICAgd2lkdGg6IDI5NnB4O1xuICAgIG1hcmdpbjogMTBweCBhdXRvIDEwcHggYXV0bztcbiAgfVxufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS10b2dnbGUgLmNoZXZyb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xuICAvKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCRsaWdodEdyYXksIDAuOTUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgKVxuICA7XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgMnB4LCByZ2JhKDEwMSwgMTAxLCAxMDEsIDAuNSkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMjcsIDEyNywgMTI3LCAwLjUpLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQocmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpLCB0cmFuc3BhcmVudCA5NSUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjIyO1xuICB0ZXh0LXNoYWRvdzogMCAwLjVweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLXRvZ2dsZSAuY2hldnJvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmZmZmZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgd2hpdGUgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgMnB4LCByZ2JhKDIxNywgMjE3LCAyMTcsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCh3aGl0ZSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tdG9nZ2xlIC50ZXh0IHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICM4ODg4ODg7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGRzIHtcbiAgd2lkdGg6IDI5OHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZHMub3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGRzIHtcbiAgICBtYXJnaW4tdG9wOiAtMjhweDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWhlYWRlciB7XG4gIHdpZHRoOiAyOThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzJmMmYyZiwgIzNjM2MzYyA3MCUsICM0ODQ4NDgpO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjNjY2LCAjNDg0ODQ4KSAxIDEwMCU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1oZWFkZXIge1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzY2NiwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlO1xuICB9XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtaGVhZGVyLXRpdGxlIHtcbiAgbWluLXdpZHRoOiAyOThweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc2VjdGlvbiB7XG4gIHdpZHRoOiAyOTZweDtcbiAgbWFyZ2luOiAycHggMXB4IDFweCAxcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjM2MzYzNjO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzA5MDkwOTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjJmMmY7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc2VjdGlvbi10aXRsZSB7XG4gIHdpZHRoOiAyOTJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzIyMjtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzIyMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMyMjIsICMyYzJjMmMpO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eSB7XG4gIHdpZHRoOiAyOTJweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtYXJnaW46IDJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC8qYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDAlLCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMTAwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBkYXJrZW4oJGN5YW4sIDI1JSkgMCUsIGRhcmtlbigkY3lhbiwgMjUlKSA1MCUsIGRhcmtlbigkcmVkLCAyNSUpIDUwJSwgZGFya2VuKCRyZWQsIDI1JSkgMTAwJSlcbiAgOyovXG4gIGJvcmRlcjogMXB4IHNvbGlkICMzYzNjM2M7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzM2MzYzNik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1jaGlyYWxpdHktdGV4dCB7XG4gIHdpZHRoOiA1NXB4O1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6ICNlMmUyZTI7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS10ZXh0OmZpcnN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS1jaGVja2JveCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS1jaGVja2JveDpjaGVja2VkICsgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1jaGlyYWxpdHktbGFiZWw6OmFmdGVyIHtcbiAgLypcbiAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZCk7XG4gIGxlZnQ6IDI4cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgKi9cbiAgbGVmdDogMjNweDtcbiAgd2lkdGg6IDIzcHg7XG4gIGhlaWdodDogMjNweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoI2M5YzljOSwgIzY2NiwgI2M5YzljOSwgIzY2NiwgI2M5YzljOSk7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtY2hpcmFsaXR5LWxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM5OTk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDI3cHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTE1MTU7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM2NjY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS1sYWJlbDphZnRlciB7XG4gIC8qXG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAvL2JhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjNweDtcbiAgaGVpZ2h0OiAyM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudCgjYzljOWM5LCAjNjY2LCAjYzljOWM5LCAjNjY2LCAjYzljOWM5KTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1mcmV0dGVkIHtcbiAgd2lkdGg6IDI5MnB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLypiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudChyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMCUsIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC44KSAxMDAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGRhcmtlbigkY3lhbiwgMjUlKSAwJSwgZGFya2VuKCRjeWFuLCAyNSUpIDUwJSwgZGFya2VuKCRyZWQsIDI1JSkgNTAlLCBkYXJrZW4oJHJlZCwgMjUlKSAxMDAlKVxuICA7Ki9cbiAgYm9yZGVyOiAxcHggc29saWQgIzNjM2MzYztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMzYzNjM2KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZyZXR0ZWQtdGV4dCB7XG4gIHdpZHRoOiA1NXB4O1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6ICNlMmUyZTI7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZyZXR0ZWQtdGV4dDpmaXJzdC1jaGlsZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1mcmV0dGVkLWNoZWNrYm94IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtZnJldHRlZC1jaGVja2JveDpjaGVja2VkICsgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1mcmV0dGVkLWxhYmVsOjphZnRlciB7XG4gIC8qXG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICBsZWZ0OiAyOHB4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICAvL2JhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICovXG4gIGxlZnQ6IDIzcHg7XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDIzcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KCNjOWM5YzksICM2NjYsICNjOWM5YzksICM2NjYsICNjOWM5YzkpO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZyZXR0ZWQtbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjYyNjtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzk5OTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMjdweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzY2Njtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtZnJldHRlZC1sYWJlbDphZnRlciB7XG4gIC8qXG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAvL2JhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjNweDtcbiAgaGVpZ2h0OiAyM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudCgjYzljOWM5LCAjNjY2LCAjYzljOWM5LCAjNjY2LCAjYzljOWM5KTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1zdHJpbmdzLXdyYXAge1xuICB3aWR0aDogMjk2cHg7XG4gIHBhZGRpbmc6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3MtaGVhZGVyIHtcbiAgd2lkdGg6IDI5MnB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1zdHJpbmdzLWhlYWRlci10aXRsZSB7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIC8vZmxleC1ncm93OiA1O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn0qL1xuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1zdHJpbmdzLWhlYWRpbmcge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogI2UyZTJlMjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncy1oZWFkaW5nOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiA0NnB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1zdHJpbmdzLWhlYWRpbmc6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGp1c3RpZnktY29udGVudDogbGVmdDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncy1oZWFkaW5nOm50aC1jaGlsZCgzKSB7XG4gIHdpZHRoOiA1OHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1zdHJpbmdzLWhlYWRpbmc6bnRoLWNoaWxkKDQpIHtcbiAgd2lkdGg6IDYycHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3MtaGVhZGluZzpudGgtY2hpbGQoNSkge1xuICB3aWR0aDogNjBweDtcbiAgLypcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMjAlKTtcbiAgICAvL2JhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGRhcmtlc3RHcmF5IDAlLCAkZGFya2VyR3JheSA1MCUsICRkYXJrZXN0R3JheSAxMDAlKTsgLy9yZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkZ3JheSwgJGRhcmtlckdyYXksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAyMCUpLCAkZGFya2VyR3JheSwgJGdyYXkpO1xuICAgIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjaztcbiAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMjAlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC0zcHg7XG4gIH1cbiAgKi9cbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncy1oZWFkaW5nOm50aC1jaGlsZCg2KSB7XG4gIHdpZHRoOiA0OHB4O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3Mge1xuICB3aWR0aDogMjkycHg7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1zdHJpbmcge1xuICBoZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbjogMXB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjJmMmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzM0MzQzNDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMzQzNDM0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZzpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tc3RyaW5nLXN1YnRyYWN0IHtcbiAgd2lkdGg6IDQ2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZy1zdWJ0cmFjdCBidXR0b24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwIDAgNXB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1zdHJpbmctbnVtYmVyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogbGVmdDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1zdHJpbmctbnVtYmVyIGg1IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tc3RyaW5nLWF0dHJpYnV0ZSB7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZy1hdHRyaWJ1dGUgaW5wdXQge1xuICBmb250LWZhbWlseTogVlQzMjM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggI2ZmZmZmZiwgMCAwIDBweCAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzYzNjM2M7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzNjM2MzYztcbiAgd2lkdGg6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1zdHJpbmctYXR0cmlidXRlOm50aC1jaGlsZCg0KSB7XG4gIHdpZHRoOiA2MnB4O1xuICBwYWRkaW5nOiAwIDhweCAwIDRweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1zdHJpbmctYXR0cmlidXRlOm50aC1jaGlsZCg1KSB7XG4gIHdpZHRoOiA2MHB4O1xuICBwYWRkaW5nOiAwIDAgMCA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzNjM2M7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tc3RyaW5nLWF0dHJpYnV0ZTpudGgtY2hpbGQoNikge1xuICB3aWR0aDogNDhweDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZy1uYW1lIHtcbiAgd2lkdGg6IDUwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2MzYzNjO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3MtYWRkLXdyYXAge1xuICB3aWR0aDogMjkycHg7XG4gIGhlaWdodDogNDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XG4gIG1hcmdpbjogMXB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjJmMmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMjIyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNjM2MzYztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzM0MzQzNDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMzQzNDM0O1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3MtYWRkIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1zdHJpbmdzLWFkZCBidXR0b24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwIDAgMCAxcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNjY2O1xufVxuXG4vKiAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtZm9vdGVyIHtcbiAgICAgICAgd2lkdGg6IDMwOHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrR3JheTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdEdyYXk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6ICRkYXJrZXJHcmF5O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCggdG8gYm90dG9tLCAkZGFya2VyR3JheSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IC8vNHB4IDRweCAwIDA7XG4gICAgICB9XG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtZm9vdGVyLWFkZCB7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgY29sb3I6ICRkYXJrZXJHcmF5O1xuICAgICAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4qL1xuLyoqXG4gICogS0VZLVdISVogR1JJRCBTVFlMRVNcbiAgKi9cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC13cmFwIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICBncmlkLXJvdzogMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtd3JhcC5udWRnZWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwOHB4O1xuICB9XG59XG5cbi5yb3RhdGlvbi13cmFwcGVyLW91dGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5yb3RhdGlvbi13cmFwcGVyLWlubmVyIHtcbiAgcGFkZGluZzogNTAlIDA7XG4gIGhlaWdodDogMDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCAxMHB4O1xuICAvKlxuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoMCwgLTEwMCUpO1xuICAgICAgbWFyZ2luLXRvcDogLTUwJTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB1bnNldDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlKDApO1xuICAgICAgfVxuICAgICAgKi9cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWNvbnRhaW5lci10b3AtYmFyIHtcbiAgaGVpZ2h0OiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0ODQ4O1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzIyMjtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1jb250YWluZXItdG9wLWJhci5kaXNwbGF5ZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkIHtcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUge1xuXG4gICYuYWN0aXZlIHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uO1xuICB9XG5cbiAgJi5hY3RpdmUucmVkIHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICBAaW5jbHVkZSBsaWdodC1vbigkcmVkKTtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWQsIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUucmVkb3JhbmdlIHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICBAaW5jbHVkZSBsaWdodC1vbigkcmVkT3JhbmdlKTtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWRPcmFuZ2UsIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUub3JhbmdlIHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICBAaW5jbHVkZSBsaWdodC1vbigkb3JhbmdlKTtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRvcmFuZ2UsIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUuZ29sZCB7XG4gICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgQGluY2x1ZGUgbGlnaHQtb24oJGdvbGQpO1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUueWVsbG93IHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93KTtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3csIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUueWVsbG93Z3JlZW4ge1xuICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3dHcmVlbik7XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93R3JlZW4sIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUuZ3JlZW4ge1xuICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRncmVlbik7XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUuY3lhbiB7XG4gICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgQGluY2x1ZGUgbGlnaHQtb24oJGN5YW4pO1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGN5YW4sIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUuYmx1ZSB7XG4gICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgQGluY2x1ZGUgbGlnaHQtb24oJGJsdWUpO1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJsdWUsIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUuaW5kaWdvIHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICBAaW5jbHVkZSBsaWdodC1vbigkaW5kaWdvKTtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUudmlvbGV0IHtcbiAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICBAaW5jbHVkZSBsaWdodC1vbigkdmlvbGV0KTtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR2aW9sZXQsIDAuOCk7XG4gIH1cbiAgJi5hY3RpdmUubWFnZW50YSB7XG4gICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgQGluY2x1ZGUgbGlnaHQtb24oJG1hZ2VudGEpO1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG1hZ2VudGEsIDAuOCk7XG4gIH1cblxuICAvLyYuaGlkZGVuIHtcbiAgICAvL2Rpc3BsYXk6IG5vbmU7XG4gICAgLy92aXNpYmlsaXR5OiBoaWRkZW47XG4gIC8vfVxufVxuKi9cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHJnYmEoMjI2LCAyMjYsIDIyNiwgMC4yKTtcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCByZ2JhKDIyNiwgMjI2LCAyMjYsIDAuMik7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjNDg0ODQ4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmludmVydGVkIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMik7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC4zKTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMTUzLCAxNTMsIDE1MywgMC4yKTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2sgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogMTc1JTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTc1JTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDUlO1xuICBsZWZ0OiAtMzUlO1xuICBjb2xvcjogI2FhYTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2sgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwgc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5wcmVzc2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgxNTMsIDE1MywgMTUzLCAwLjIpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuMyk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMik7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5yZWQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjAwMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmYzMzMzIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgMCwgMCwgMC40KSAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGQ0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5hY3RpdmUucmVkb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmODAwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjk5MzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAxNTMsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDE1MywgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDkwLCAwLCAwLjQpIDJweCwgcmdiYSgxNzksIDkwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmYTY0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5hY3RpdmUub3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2E4YTgwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNkYmRiMDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjE5LCAyMTksIDAsIDAuNCkgMnB4LCByZ2JhKDIxOSwgMjE5LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoOTIsIDkyLCAwLCAwLjQpIDJweCwgcmdiYSg5MiwgOTIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZjVmNTAwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzYxYzIwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM3YmY1MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgMnB4LCByZ2JhKDEyMywgMjQ1LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM4OGZmMGYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBib3gtc2hhZG93OiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlLnllbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjAwIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMCwgMC40KSAycHgsIHJnYmEoMCwgMjMwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMTAyLCAwLCAwLjQpIDJweCwgcmdiYSgwLCAxMDIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudChsaW1lLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS55ZWxsb3dncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzNWE7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjczIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMTE1LCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDExNSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjMDBmZjgwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDk5OTk7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBjY2NjIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDJweCwgcmdiYSgwLCAyMDQsIDIwNCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDc3LCA3NywgMC40KSAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZTZlNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5hY3RpdmUuY3lhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDgwZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMzM5OWZmIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDUxLCAxNTMsIDI1NSwgMC40KSAycHgsIHJnYmEoNTEsIDE1MywgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgOTAsIDE3OSwgMC40KSAycHgsIHJnYmEoMCwgOTAsIDE3OSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM0ZGE2ZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBib3gtc2hhZG93OiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlLmJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMzMzM2ZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzY2NjZmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMCwgMjMwLCAwLjQpIDJweCwgcmdiYSgwLCAwLCAyMzAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjODA4MGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjODAwMGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzk5MzNmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNTMsIDUxLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjYTY0ZGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS52aW9sZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjY2MwMGNjO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgZnVjaHNpYSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDAsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAwLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMjgsIDAsIDEyOCwgMC40KSAycHgsIHJnYmEoMTI4LCAwLCAxMjgsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmYxYWZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5tYWdlbnRhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDA4MDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzOTkgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgMTUzLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCAxNTMsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGRhNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5hY3RpdmUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlLnJlZCAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5hY3RpdmUucmVkLmhpZGRlbiBzcGFuIHtcbiAgY29sb3I6ICNhYWE7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay5hY3RpdmUucmVkLmludmVydGVkIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5oaWRkZW4ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5oaWRkZW4gc3BhbiB7XG4gIGNvbG9yOiAjYWFhO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlLmhpZGRlbi5pbnZlcnRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLmFjdGl2ZS5oaWRkZW4uaW52ZXJ0ZWQgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2suYWN0aXZlLnByZXNzZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvIHtcbiAgd2lkdGg6IDMwMCU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMzAwJSAtIDRweCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stYXJwZWdnaW8ucmVkIH4gLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwgc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgI2FhYSwgLTFweCAxcHggMCAjYWFhLCAxcHggLTFweCAwICNhYWEsIDFweCAxcHggMCAjYWFhO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvLnJlZCB7XG4gIGJvcmRlci1jb2xvcjogI2ZmMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2sgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay1hcnBlZ2dpby5yZWRvcmFuZ2Uge1xuICBib3JkZXItY29sb3I6ICNmZjgwMDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stYXJwZWdnaW8ub3JhbmdlIHtcbiAgYm9yZGVyLWNvbG9yOiAjYThhODAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvLmdvbGQge1xuICBib3JkZXItY29sb3I6ICM2MWMyMDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stYXJwZWdnaW8ueWVsbG93IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBiMzAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvLnllbGxvd2dyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBiMzVhO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvLmdyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5OTk5O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvLmN5YW4ge1xuICBib3JkZXItY29sb3I6ICMwMDgwZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stYXJwZWdnaW8uYmx1ZSB7XG4gIGJvcmRlci1jb2xvcjogIzMzMzNmZjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2sgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay1hcnBlZ2dpby5pbmRpZ28ge1xuICBib3JkZXItY29sb3I6ICM4MDAwZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stYXJwZWdnaW8udmlvbGV0IHtcbiAgYm9yZGVyLWNvbG9yOiAjY2MwMGNjO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWFycGVnZ2lvLm1hZ2VudGEge1xuICBib3JkZXItY29sb3I6ICNmZjAwODA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stYXJwZWdnaW8uaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWNob3JkIHtcbiAgd2lkdGg6IDMwMCU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMzAwJSAtIDRweCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiAzO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrLWNob3JkIHNwYW4ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSwgLTFweCAtMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLCAxcHggLTFweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSwgLTFweCAxcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWJsYWNrIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYmxhY2stY2hvcmQucmVkIHNwYW4ge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0ODQ4NDg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0ODQ4NDg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDg0ODQ4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0ODQ4NDg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMi41JTtcbiAgbGVmdDogMDtcbiAgY29sb3I6ICNhYWE7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuaW52ZXJ0ZWQgc3BhbiB7XG4gIGNvbG9yOiAjYWFhO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5wcmVzc2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5yZWQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjAwMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmYzMzMzIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgMCwgMCwgMC40KSAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGQ0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUucmVkb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmODAwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjk5MzMgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCAxNTMsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDE1MywgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDkwLCAwLCAwLjQpIDJweCwgcmdiYSgxNzksIDkwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmYTY0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUub3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2E4YTgwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNkYmRiMDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjE5LCAyMTksIDAsIDAuNCkgMnB4LCByZ2JhKDIxOSwgMjE5LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoOTIsIDkyLCAwLCAwLjQpIDJweCwgcmdiYSg5MiwgOTIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZjVmNTAwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzYxYzIwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM3YmY1MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgMnB4LCByZ2JhKDEyMywgMjQ1LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM4OGZmMGYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBib3gtc2hhZG93OiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlLnllbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjAwIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMCwgMC40KSAycHgsIHJnYmEoMCwgMjMwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMTAyLCAwLCAwLjQpIDJweCwgcmdiYSgwLCAxMDIsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudChsaW1lLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS55ZWxsb3dncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMGIzNWE7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBlNjczIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIzMCwgMTE1LCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDExNSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgNTEsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjMDBmZjgwLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDk5OTk7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBjY2NjIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDJweCwgcmdiYSgwLCAyMDQsIDIwNCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDc3LCA3NywgMC40KSAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZTZlNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUuY3lhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDgwZmY7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMzM5OWZmIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDUxLCAxNTMsIDI1NSwgMC40KSAycHgsIHJnYmEoNTEsIDE1MywgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgOTAsIDE3OSwgMC40KSAycHgsIHJnYmEoMCwgOTAsIDE3OSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM0ZGE2ZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xuICBib3gtc2hhZG93OiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlLmJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMzMzM2ZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzY2NjZmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDJweCwgcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMCwgMjMwLCAwLjQpIDJweCwgcmdiYSgwLCAwLCAyMzAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjODA4MGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjODAwMGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzk5MzNmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNTMsIDUxLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjYTY0ZGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS52aW9sZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjY2MwMGNjO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgZnVjaHNpYSA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDAsIDI1NSwgMC40KSAycHgsIHJnYmEoMjU1LCAwLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMjgsIDAsIDEyOCwgMC40KSAycHgsIHJnYmEoMTI4LCAwLCAxMjgsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmYxYWZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYm94LXNoYWRvdzogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5tYWdlbnRhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmMDA4MDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICNmZjMzOTkgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMjU1LCA1MSwgMTUzLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCAxNTMsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDJweCwgcmdiYSgxNzksIDAsIDkwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGRhNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG4gIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlLmludmVydGVkIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHNwYW4ge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlLnJlZCAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUucmVkLmhpZGRlbiBzcGFuIHtcbiAgY29sb3I6ICNhYWE7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUucmVkLmludmVydGVkIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHNwYW4ge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUuYWN0aXZlLmhpZGRlbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUuaGlkZGVuIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHtcbiAgY29sb3I6ICNhYWE7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5oaWRkZW4uaW52ZXJ0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS5hY3RpdmUuaGlkZGVuLmludmVydGVkIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHNwYW4ge1xuICBjb2xvcjogI2FhYTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLmFjdGl2ZS5wcmVzc2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS1hcnBlZ2dpbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLSA0cHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMi41JTtcbiAgbGVmdDogMDtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8ucmVkIH4gLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwgc3BhbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgI2FhYSwgLTFweCAxcHggMCAjYWFhLCAxcHggLTFweCAwICNhYWEsIDFweCAxcHggMCAjYWFhO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWFycGVnZ2lvLnJlZCB7XG4gIGJvcmRlci1jb2xvcjogI2ZmMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS1hcnBlZ2dpby5yZWRvcmFuZ2Uge1xuICBib3JkZXItY29sb3I6ICNmZjgwMDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8ub3JhbmdlIHtcbiAgYm9yZGVyLWNvbG9yOiAjYThhODAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWFycGVnZ2lvLmdvbGQge1xuICBib3JkZXItY29sb3I6ICM2MWMyMDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8ueWVsbG93IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBiMzAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWFycGVnZ2lvLnllbGxvd2dyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBiMzVhO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWFycGVnZ2lvLmdyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5OTk5O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWFycGVnZ2lvLmN5YW4ge1xuICBib3JkZXItY29sb3I6ICMwMDgwZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8uYmx1ZSB7XG4gIGJvcmRlci1jb2xvcjogIzMzMzNmZjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZS1hcnBlZ2dpby5pbmRpZ28ge1xuICBib3JkZXItY29sb3I6ICM4MDAwZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8udmlvbGV0IHtcbiAgYm9yZGVyLWNvbG9yOiAjY2MwMGNjO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWFycGVnZ2lvLm1hZ2VudGEge1xuICBib3JkZXItY29sb3I6ICNmZjAwODA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8uaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWNob3JkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAtIDRweCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAyLjUlO1xuICBsZWZ0OiAwO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtY2hvcmQgc3BhbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksIC0xcHggLTFweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSwgMXB4IC0xcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksIC0xcHggMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWNob3JkLnJlZCBzcGFuIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiB1bnNldDtcbn1cblxuLypcbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktYyB7XG5cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1jLXNoYXJwIHtcbiAgLy9tYXJnaW46IDAgLTVweCAwIC0xMXB4O1xuICAvL21hcmdpbjogMCAtMC40MzcwNjI3JSAwIC0wLjk2MTUzNzk0JTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1kIHtcblxufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWQtc2hhcnAge1xuICAvL21hcmdpbjogMCAtMTFweCAwIC01cHg7XG4gIC8vbWFyZ2luOiAwIC0wLjk2MTUzNzk0JSAwIC0wLjQzNzA2MjclO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWUge1xuXG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZiB7XG5cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1mLXNoYXJwIHtcbiAgLy9tYXJnaW46IDAgLTNweCAwIC0xM3B4O1xuICAvL21hcmdpbjogMCAtMC4yNjIyMzc2MiUgMCAtMS4xMzYzNjMwMiU7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZyB7XG5cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1nLXNoYXJwIHtcbiAgLy9tYXJnaW46IDAgLThweCAwIC04cHg7XG4gIC8vbWFyZ2luOiAwIC0wLjY5OTMwMDMyJSAwIC0wLjY5OTMwMDMyJTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1hIHtcblxufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWEtc2hhcnAge1xuICAvL21hcmdpbjogMCAtMTNweCAwIC0zcHg7XG4gIC8vbWFyZ2luOiAwIC0xLjEzNjM2MzAyJSAwIC0wLjI2MjIzNzYyJTtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1iIHtcblxufVxuKi9cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZy5sZWZ0eSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTExMDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMztcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZnJldCB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMzJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNlMmUyZTIgNSUsICMyMjIgNSUsICNlMmUyZTIgMzUlLCAjZTJlMmUyIDY1JSwgIzIyMiA5NSUsICNlMmUyZTIgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZnJldC5mcmV0bGVzcyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZnJldC5sZWZ0eSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1zdHJpbmcge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMjIyLCAjODg4ODg4LCAjMjIyKTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtc3RyaW5nLmxlZnR5IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLXN0cmluZy13b3VuZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTc4ZGVnLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMC41KSAxcHgsIHJnYmEoMjAwLCAyMDAsIDIwMCwgMC41KSAycHgsIHJnYmEoMjAwLCAyMDAsIDIwMCwgMC41KSAzcHgpLCBsaW5lYXItZ3JhZGllbnQoIzAwMDAwMCwgI2UyZTJlMiwgIzAwMDAwMCk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjhweDtcbiAgYXNwZWN0LXJhdGlvOiAxLzE7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDQ7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNhYWE7XG4gIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjMDAwMDAwLCAtMXB4IDFweCAwICMwMDAwMDAsIDFweCAtMXB4IDAgIzAwMDAwMCwgMXB4IDFweCAwICMwMDAwMDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmxlZnR5IHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZSwgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbC5hY3RpdmVUZW1wb3JhcmlseSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5oaWRkZW4sIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtbGFiZWwuYWN0aXZlVGVtcG9yYXJpbHkuaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbC5wcmVzc2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtbGFiZWwuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5yZWQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtbGFiZWwuYWN0aXZlLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjAwMDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmYzMzMzIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgNTEsIDUxLCAwLjQpIDJweCwgcmdiYSgyNTUsIDUxLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgMCwgMCwgMC40KSAycHgsIHJnYmEoMTc5LCAwLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2ZmNGQ0ZCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5yZWRvcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjZmY4MDAwO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgI2ZmOTkzMyA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyNTUsIDE1MywgNTEsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMTUzLCA1MSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDE3OSwgOTAsIDAsIDAuNCkgMnB4LCByZ2JhKDE3OSwgOTAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjZmZhNjRkLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtbGFiZWwuYWN0aXZlLm9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNhOGE4MDA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZGJkYjAwIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDIxOSwgMjE5LCAwLCAwLjQpIDJweCwgcmdiYSgyMTksIDIxOSwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkyLCA5MiwgMCwgMC40KSAycHgsIHJnYmEoOTIsIDkyLCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoI2Y1ZjUwMCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzYxYzIwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM3YmY1MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTIzLCAyNDUsIDAsIDAuNCkgMnB4LCByZ2JhKDEyMywgMjQ1LCAwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAycHgsIHJnYmEoNTksIDExNywgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCM4OGZmMGYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbC5hY3RpdmUueWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwYjMwMDtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGU2MDAgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMCwgMjMwLCAwLCAwLjQpIDJweCwgcmdiYSgwLCAyMzAsIDAsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAxMDIsIDAsIDAuNCkgMnB4LCByZ2JhKDAsIDEwMiwgMCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KGxpbWUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbC5hY3RpdmUueWVsbG93Z3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMDBiMzVhO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzAwZTY3MyA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAyMzAsIDExNSwgMC40KSAycHgsIHJnYmEoMCwgMjMwLCAxMTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCAxMDIsIDUxLCAwLjQpIDJweCwgcmdiYSgwLCAxMDIsIDUxLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZmY4MCwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICMwMDk5OTk7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjMDBjY2NjIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDIwNCwgMjA0LCAwLjQpIDJweCwgcmdiYSgwLCAyMDQsIDIwNCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDc3LCA3NywgMC40KSAycHgsIHJnYmEoMCwgNzcsIDc3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzAwZTZlNiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzAwODBmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICMzMzk5ZmYgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoNTEsIDE1MywgMjU1LCAwLjQpIDJweCwgcmdiYSg1MSwgMTUzLCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgwLCA5MCwgMTc5LCAwLjQpIDJweCwgcmdiYSgwLCA5MCwgMTc5LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzRkYTZmZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzMzMzNmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsICM2NjY2ZmYgOTAlKSwgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAyLCAxMDIsIDI1NSwgMC40KSAycHgsIHJnYmEoMTAyLCAxMDIsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDAsIDAsIDIzMCwgMC40KSAycHgsIHJnYmEoMCwgMCwgMjMwLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQoIzgwODBmZiwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KCNmZmZmZmYsIHRyYW5zcGFyZW50IDk1JSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmFjdGl2ZS5pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjODAwMGZmO1xuICAvKlxuICAgIGJhY2tncm91bmQtaW1hZ2U6XG5cbiAgICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgM3B4XG4gICAgICApLFxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSAxMDAlXG4gICAgICApXG4gICAgOyAvLyAhaW1wb3J0YW50XG4gICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzk5MzNmZiA5MCUpLCByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxNTMsIDUxLCAyNTUsIDAuNCkgMnB4LCByZ2JhKDE1MywgNTEsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgMnB4LCByZ2JhKDkwLCAwLCAxNzksIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJhZGlhbC1ncmFkaWVudCgjYTY0ZGZmLCB0cmFuc3BhcmVudCA5MCUpLCByYWRpYWwtZ3JhZGllbnQoI2ZmZmZmZiwgdHJhbnNwYXJlbnQgOTUlKTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtbGFiZWwuYWN0aXZlLnZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNjYzAwY2M7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCBmdWNoc2lhIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMCwgMjU1LCAwLjQpIDJweCwgcmdiYSgyNTUsIDAsIDI1NSwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDEyOCwgMCwgMTI4LCAwLjQpIDJweCwgcmdiYSgxMjgsIDAsIDEyOCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZjFhZmYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbC5hY3RpdmUubWFnZW50YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICNmZjAwODA7XG4gIC8qXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcblxuICAgICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDM1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAwLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDMwJSksIDAuNSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDJweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICAgICksXG4gICAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpIDYwJSxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICAgIClcbiAgICA7IC8vICFpbXBvcnRhbnRcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50LCAjZmYzMzk5IDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgNTEsIDE1MywgMC40KSAycHgsIHJnYmEoMjU1LCA1MSwgMTUzLCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTc5LCAwLCA5MCwgMC40KSAycHgsIHJnYmEoMTc5LCAwLCA5MCwgMC40KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KCNmZjRkYTYsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbC5hY3RpdmUucHJlc3NlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg4ODg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBib3JkZXItdG9wOiB1bnNldDtcbiAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1mcmV0IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4gLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZnJldC5mcmV0bGVzcyB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1zdHJpbmcge1xuICB3aWR0aDogMTZweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuIHNwYW4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4gc3Bhbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmxlZnR5IHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3Blbi5hY3RpdmUgc3Bhbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3Blbi5hY3RpdmUgc3Bhbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmxlZnR5IHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3Blbi1vZmZzZXQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuLW9mZnNldCAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1mcmV0IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJSAwIDAgNTAlO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0IC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQuZnJldGxlc3Mge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0IC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQubGVmdHkge1xuICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuLW9mZnNldCAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0IC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsLmxlZnR5IHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0cHg7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogNTtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1hcnBlZ2dpby5yZWQgfiBzcGFuIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvLnJlZCB7XG4gIGJvcmRlci1jb2xvcjogI2ZmMDAwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtYXJwZWdnaW8ucmVkb3JhbmdlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmY4MDAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1hcnBlZ2dpby5vcmFuZ2Uge1xuICBib3JkZXItY29sb3I6ICNhOGE4MDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvLmdvbGQge1xuICBib3JkZXItY29sb3I6ICM2MWMyMDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvLnllbGxvdyB7XG4gIGJvcmRlci1jb2xvcjogIzAwYjMwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtYXJwZWdnaW8ueWVsbG93Z3JlZW4ge1xuICBib3JkZXItY29sb3I6ICMwMGIzNWE7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvLmdyZWVuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5OTk5O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1hcnBlZ2dpby5jeWFuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA4MGZmO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1hcnBlZ2dpby5ibHVlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzMzM2ZmO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1hcnBlZ2dpby5pbmRpZ28ge1xuICBib3JkZXItY29sb3I6ICM4MDAwZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvLnZpb2xldCB7XG4gIGJvcmRlci1jb2xvcjogI2NjMDBjYztcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtYXJwZWdnaW8ubWFnZW50YSB7XG4gIGJvcmRlci1jb2xvcjogI2ZmMDA4MDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtYXJwZWdnaW8uaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1hcnBlZ2dpby5sZWZ0eSB7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4gLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtYXJwZWdnaW8ubGVmdHkge1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtY2hvcmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1jaG9yZCBzcGFuIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLCAtMXB4IC0xcHggMTBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksIDFweCAtMXB4IDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLCAtMXB4IDFweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtY2hvcmQucmVkIHNwYW4ge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1jaG9yZC5iYXItZG93biB7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDAgMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtY2hvcmQuYmFyLWRvd24gc3BhbiB7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1jaG9yZC5iYXItdXAge1xuICBoZWlnaHQ6IDI4cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAxMnB4IDEycHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWNob3JkLmJhci11cCBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWNob3JkLmJhci1ib3RoIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICB0b3A6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWNob3JkLmJhci1ib3RoIHNwYW4ge1xuICBsaW5lLWhlaWdodDogMzJweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtY2hvcmQubGVmdHkge1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1jaG9yZCB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWNob3JkIHNwYW4ge1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1jaG9yZC5tdXRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4gLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtY2hvcmQubXV0ZWQgc3BhbiB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1jaG9yZC5sZWZ0eSB7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1lbXB0eSB7XG4gIGhlaWdodDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1lbXB0eS5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWVtcHR5LW1pZGRsZTpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZyAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuLW9mZnNldC1maXJzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wIGxlZnQsICMxYTExMDAgNDglLCAjMzkyNjEzIDQ4JSwgIzM5MjYxMyA1MiUsIHRyYW5zcGFyZW50IDUyJSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0LWZpcnN0IC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQubGVmdHkge1xuICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmcgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3Blbi1vZmZzZXQtbGFzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIGxlZnQsICMxYTExMDAgNDglLCAjMzkyNjEzIDQ4JSwgIzM5MjYxMyA1MiUsIHRyYW5zcGFyZW50IDUyJSk7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0LWxhc3QgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZnJldC5sZWZ0eSB7XG4gIGJvcmRlci1yYWRpdXM6IDAgNTAlIDUwJSAwO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZzpmaXJzdC1jaGlsZCAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1lbXB0eSB7XG4gIGJvcmRlci10b3A6IHVuc2V0O1xuICBib3JkZXItYm90dG9tOiB1bnNldDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmc6bGFzdC1jaGlsZCAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1lbXB0eSB7XG4gIGJvcmRlci10b3A6IHVuc2V0O1xuICBib3JkZXItYm90dG9tOiB1bnNldDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZy1mcmV0LWxhYmVscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nLWZyZXQtbGFiZWxzLmxlZnR5IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nLWZyZXQtbGFiZWwge1xuICBoZWlnaHQ6IDI2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmctZnJldC1sYWJlbCBzcGFuIHtcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgbWFyZ2luOiAwIDhweCAwIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDYuNXB4O1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLXN0cmluZy1mcmV0LWxhYmVsLmxlZnR5IHNwYW4ge1xuICBtYXJnaW46IDAgMCAwIDhweDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmctZnJldC1sYWJlbC5kb3Qtc2luZ2xlIHNwYW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmctZnJldC1sYWJlbC5kb3QtZG91YmxlIHNwYW4ge1xuICB3aWR0aDogMjZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC12b2x1bWUge1xuICB3aWR0aDogMjgwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gIC8qXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgXHR0byByaWdodCxcbiAgXHRsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSAwJSxcbiAgXHRsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSA0MCUsXG4gIFx0dHJhbnNwYXJlbnRpemUoZGFya2VuKCRyZWQsIDEwJSksIDAuNCkgMTAwJVxuICApO1xuICAqL1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgZ3JpZC1yb3c6IDQ7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDBweCAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXZvbHVtZSB7XG4gICAgZ3JpZC1yb3c6IDM7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC12b2x1bWUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDtcbiAgLypcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgMnB4LFxuICAgICAgZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMjAlKSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjk1KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgO1xuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDJweCwgcmdiYSgxMDEsIDEwMSwgMTAxLCAwLjUpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAycHgsIHJnYmEoMTAxLCAxMDEsIDEwMSwgMC41KSAzcHgsIHRyYW5zcGFyZW50IDNweCwgdHJhbnNwYXJlbnQgNXB4KSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTI3LCAxMjcsIDEyNywgMC41KSwgdHJhbnNwYXJlbnQgOTAlKSwgcmFkaWFsLWdyYWRpZW50KHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KSwgdHJhbnNwYXJlbnQgOTUlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogIzIyMjtcbiAgdGV4dC1zaGFkb3c6IDAgMC41cHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIG1hcmdpbjogNXB4IDAgNXB4IDVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg4ODg7XG59XG4ua3ctc2V0dGluZy1pbnN0cnVtZW50LXZvbHVtZS1idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmZmZmZjtcbiAgLypcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDAsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDFweCxcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAycHgsXG4gICAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAxNSUpLCAwLjkpIDNweFxuICAgICAgKSxcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgICAgKVxuICAgIDsgLy8gIWltcG9ydGFudFxuICAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQsIHdoaXRlIDkwJSksIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgMnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgM3B4LCB0cmFuc3BhcmVudCAzcHgsIHRyYW5zcGFyZW50IDVweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDJweCwgcmdiYSgyMTcsIDIxNywgMjE3LCAwLjQpIDNweCwgdHJhbnNwYXJlbnQgM3B4LCB0cmFuc3BhcmVudCA1cHgpLCByYWRpYWwtZ3JhZGllbnQod2hpdGUsIHRyYW5zcGFyZW50IDkwJSksIHJhZGlhbC1ncmFkaWVudCgjZmZmZmZmLCB0cmFuc3BhcmVudCA5NSUpO1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC12b2x1bWUtYnV0dG9uLmFjdGl2ZS5wdWxzZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBib3gtc2hhZG93OiB1bnNldDtcbn1cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC12b2x1bWUtc2xpZGVyIHtcbiAgcGFkZGluZzogMCAwIDAgNXB4O1xuICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtdm9sdW1lLXNsaWRlci1pbnB1dCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNztcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIC8qIE1vdXNlLW92ZXIgZWZmZWN0cyAqL1xuICAvKiBUaGUgc2xpZGVyIGhhbmRsZSAodXNlIC13ZWJraXQtIChDaHJvbWUsIE9wZXJhLCBTYWZhcmksIEVkZ2UpIGFuZCAtbW96LSAoRmlyZWZveCkgdG8gb3ZlcnJpZGUgZGVmYXVsdCBsb29rKSAqL1xufVxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC12b2x1bWUtc2xpZGVyLWlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIC8qLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgIEBpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG4gICB3aWR0aDogMjBweDtcbiAgIGhlaWdodDogMjBweDtcbiAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgIC8vYmFja2dyb3VuZDogJGJsdWU7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG4gICovXG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudCgjYzljOWM5LCAjNjY2LCAjYzljOWM5LCAjNjY2LCAjYzljOWM5KTtcbn1cbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtdm9sdW1lLXNsaWRlci1pbnB1dDo6LW1vei1yYW5nZS10aHVtYiB7XG4gIC8qQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICAgd2lkdGg6IDIwcHg7XG4gICBoZWlnaHQ6IDIwcHg7XG4gICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAvL2JhY2tncm91bmQ6ICRibHVlO1xuICAgY3Vyc29yOiBwb2ludGVyO1xuICAqL1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoI2M5YzljOSwgIzY2NiwgI2M5YzljOSwgIzY2NiwgI2M5YzljOSk7XG59IiwiLyoqXG4gICogUEFHRS1TUEVDSUZJQyBTVFlMRVNIRUVUOiBIb21lXG4gICpcbiAgKiBJbXBvcnQgY29tbW9uIHN0eWxlcyBhbmQgaG91c2UgcGFnZS1zcGVjaWZpYyBzdHlsZXMgZm9yIEhvbWUgcGFnZS5cbiAgKi9cblxuQGltcG9ydCAnX2NvbW1vbic7IC8vIGNvbW1vbiBzdHlsZXNcblxuQGltcG9ydCAncGFydGlhbHMva2V5LXdoaXovX2tleS13aGl6JzsgLy8gY29tbW9uIHN0eWxlc1xuIiwiLyoqXG4gICogQ09NTU9OIFNUWUxFU1xuICAqXG4gICogRGVmaW5lcyB0aGUgc3R5bGVzIHRvIGltcG9ydCB0aGF0IGFyZSByZXF1aXJlZCBieSB2aXJ0dWFsbHkgYWxsIHBhZ2VzLlxuICAqL1xuXG5cbi8vIGltcG9ydCBsaWJyYXJpZXM6XG5AaW1wb3J0ICdsaWJyYXJpZXMvX2luY2x1ZGUtbWVkaWEuc2Nzcyc7IC8vIFwiSW5jbHVkZS1NZWRpYVwiIG1lZGlhIHF1ZXJ5IGxpYnJhcnkgKHByb3ZpZGVzIGJyZWFrcG9pbnQgZnVuY3Rpb25hbGl0eSBmb3IgcmVzcG9uc2l2ZSBkZXNpZ24pXG5AaW1wb3J0ICdsaWJyYXJpZXMvX25vcm1hbGl6ZS5zY3NzJzsgICAgIC8vIFwiTm9ybWFsaXplXCIgY3NzIHJlc2V0IGxpYnJhcnlcblxuLy8gZ2xvYmFsIHN0eWxlcyBhbmQgZGVwZW5kZW5jaWVzOlxuQGltcG9ydCAncGFydGlhbHMvX2JyZWFrcG9pbnRzLm1vZHVsZXMnOyAgLy8gYnJlYWtwb2ludCBkZWZpbml0aW9ucyBmb3IgbWVkaWEgcXVlcnkgdXNlXG5AaW1wb3J0ICdwYXJ0aWFscy9fdmFyaWFibGVzJzsgICAgICAgICAgICAvLyBnZW5lcmFsIHZhcmlhYmxlIGRlZmluaXRpb25zIChjb2xvcnMsIGRpbWVuc2lvbnMsIGV0Yy4pXG5AaW1wb3J0ICdwYXJ0aWFscy9fY29sb3JzLm1vZHVsZXMnOyAgICAgICAvLyBjb2xvciBkZWZpbml0aW9ucyBmb3Iga2V5LXdoaXpcblxuQGltcG9ydCAncGFydGlhbHMvX2ZvbnRzJzsgICAgICAgICAgICAgICAgLy8gQGZvbnQtZmFjZSBkZWZpbml0aW9uc1xuQGltcG9ydCAncGFydGlhbHMvX21peGlucyc7ICAgICAgICAgICAgICAgLy8gbWl4aW4gYW5kIGFzc29jaWF0ZWQgY2xhc3MgZGVmaW5pdGlvbnNcbkBpbXBvcnQgJ3BhcnRpYWxzL19lbGVtZW50cyc7ICAgICAgICAgICAgIC8vIGdsb2JhbCBlbGVtZW50IHNlbGVjdG9yIHN0eWxlc1xuQGltcG9ydCAncGFydGlhbHMvX2hlYWRlcic7ICAgICAgICAgICAgICAgLy8gaGVhZGVyIHN0eWxlc1xuQGltcG9ydCAncGFydGlhbHMvX3NlYXJjaGZvcm0nOyAgICAgICAgICAgLy8gc2VhcmNoIGZvcm0gc3R5bGVzXG5AaW1wb3J0ICdwYXJ0aWFscy9fY29udGVudCc7ICAgICAgICAgICAgICAvLyBjb250ZW50IHN0eWxlc1xuQGltcG9ydCAncGFydGlhbHMvX2Zvb3Rlcic7ICAgICAgICAgICAgICAgLy8gZm9vdGVyIHN0eWxlc1xuQGltcG9ydCAncGFydGlhbHMvX21pc2MnOyAgICAgICAgICAgICAgICAgLy8gbWlzYy4gc3R5bGVzICh0eXBpY2FsbHkgY2xhc3NlcyB0aGF0IGFyZSB1c2FibGUgaW4gY29udGVudCwgYnV0IG5vdCBpbmhlcmVudCB0byB0aGUgc2l0ZSBzdHJ1Y3R1cmUpXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyoqXG4gICogU0NTUyBCUkVBS1BPSU5UU1xuICAqXG4gICogRGVmaW5lIGJyZWFrcG9pbnRzIGZvciBtZWRpYSBxdWVyeSB1c2UgYW5kIGV4cG9ydCB0aGVtIGZvciB1c2Ugd2l0aCBKUy5cbiAgKi9cblxuXG4vLyBkZWZpbmUgYnJlYWtwb2ludHMgaGVyZSAoaW4gcGl4ZWxzKTpcbiRicmVha3BvaW50LXBob25lLXNtYWxsOiAgICAzMjA7XG4kYnJlYWtwb2ludC1waG9uZS1sYXJnZTogICAgNDgwO1xuJGJyZWFrcG9pbnQtdGFibGV0OiAgICAgICAgIDc2ODtcbiRicmVha3BvaW50LWxhcHRvcDogICAgICAgICA5OTI7XG4kYnJlYWtwb2ludC1kZXNrdG9wOiAgICAgICAxMjAwO1xuJGJyZWFrcG9pbnQtZGVza3RvcC1sYXJnZTogMTQwMDtcbiRicmVha3BvaW50LWhkOiAgICAgICAgICAgIDE5MjA7XG5cbi8vIGZvcm1hdCBicmVha3BvaW50IGRlZmluaXRpb25zIGZvciB1c2Ugd2l0aCBpbmNsdWRlLW1lZGlhLnNjc3MgbGlicmFyeTpcbi8qXG5leGFtcGxlIHVzYWdlOlxuQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLXNtYWxsXCIpIHsuLi59XG4qL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZS1zbWFsbCc6ICAgJGJyZWFrcG9pbnQtcGhvbmUtc21hbGwgKiAxcHgsXG4gICdwaG9uZS1sYXJnZSc6ICAgJGJyZWFrcG9pbnQtcGhvbmUtbGFyZ2UgKiAxcHgsXG4gICd0YWJsZXQnOiAgICAgICAgJGJyZWFrcG9pbnQtdGFibGV0ICogMXB4LFxuICAnbGFwdG9wJzogICAgICAgICRicmVha3BvaW50LWxhcHRvcCAqIDFweCxcbiAgJ2Rlc2t0b3AnOiAgICAgICAkYnJlYWtwb2ludC1kZXNrdG9wICogMXB4LFxuICAnZGVza3RvcC1sYXJnZSc6ICRicmVha3BvaW50LWRlc2t0b3AtbGFyZ2UgKiAxcHgsXG4gICdoZCc6ICAgICAgICAgICAgJGJyZWFrcG9pbnQtaGQgKiAxcHhcbik7XG5cbi8vIGV4cG9ydCBicmVha3BvaW50IGRlZmluaXRpb25zIGZvciBKUyB1c2U6XG46ZXhwb3J0IHtcbiAgYnJlYWtwb2ludFBob25lU21hbGw6ICRicmVha3BvaW50LXBob25lLXNtYWxsO1xuICBicmVha3BvaW50UGhvbmVMYXJnZTogJGJyZWFrcG9pbnQtcGhvbmUtbGFyZ2U7XG4gIGJyZWFrcG9pbnRUYWJsZXQ6ICRicmVha3BvaW50LXRhYmxldDtcbiAgYnJlYWtwb2ludExhcHRvcDogJGJyZWFrcG9pbnQtbGFwdG9wO1xuICBicmVha3BvaW50RGVza3RvcDogJGJyZWFrcG9pbnQtZGVza3RvcDtcbiAgYnJlYWtwb2ludERlc2t0b3BMYXJnZTogJGJyZWFrcG9pbnQtZGVza3RvcC1sYXJnZTtcbiAgYnJlYWtwb2ludEhkOiAkYnJlYWtwb2ludC1oZDtcbn1cbiIsIi8qKlxuICAqIFNDU1MgVkFSSUFCTEVTXG4gICovXG5cblxuLyoqXG4gICogRGltZW5zaW9uczpcbiAgKi9cblxuJHNpdGVXaWR0aDogMTQwMHB4OyAvLyBtYXggd2lkdGggb2Ygc2l0ZSdzIGNvbnRlbnQgY29udGFpbmVyc1xuXG4vLyBoZWFkZXIgaGVpZ2h0czpcbiRoZWFkZXJIZWlnaHRNb2JpbGU6IDkwcHg7IC8vIGhlaWdodCBvZiBoZWFkZXIgb24gbW9iaWxlIHNpemVzXG4kaGVhZGVySGVpZ2h0RGVza3RvcDogNDVweDsgLy8gaGVpZ2h0IG9mIGhlYWRlciBvbiBkZXNrdG9wIHNpemVzXG4kdG9wQmFySGVpZ2h0OiA0NXB4OyAvLyBoZWlnaHQgb2YgdG9wIG5hdiwgbWFpbiBuYXYgc3ViIG1lbnUgaXRlbXMgYW5kIG1haW4gbmF2IG1vYmlsZSBtZW51IGl0ZW1zXG4kbWFpbk5hdkhlaWdodDogNDVweDsgLy8gaGVpZ2h0IG9mIGZpcnN0LWxldmVsIG1haW4gbWVudSBpdGVtcyAoZGVza3RvcClcblxuLy8gc3RhbmRhcmRpemVkIHNpZGUgcGFkZGluZzpcbiRjb250YWluZXJQYWRkaW5nTW9iaWxlOiAyMHB4O1xuJGNvbnRhaW5lclBhZGRpbmdQaG9uZUxhcmdlOiAyNXB4O1xuJGNvbnRhaW5lclBhZGRpbmdUYWJsZXQ6IDMwcHg7XG4kY29udGFpbmVyUGFkZGluZ0xhcHRvcDogNjBweDtcbiRjb250YWluZXJQYWRkaW5nRGVza3RvcDogODBweDtcblxuLy8gc3RhbmRhcmRpemVkIHRvcCBhbmQgYm90dG9tIHBhZGRpbmc6XG4kc3BhY2VyUGFkZGluZ01vYmlsZTogMjBweDtcbiRzcGFjZXJQYWRkaW5nUGhvbmVMYXJnZTogMjVweDtcbiRzcGFjZXJQYWRkaW5nVGFibGV0OiA0MHB4O1xuJHNwYWNlclBhZGRpbmdMYXB0b3A6IDUwcHg7XG4kc3BhY2VyUGFkZGluZ0Rlc2t0b3A6IDYwcHg7XG5cblxuLyoqXG4gICogQ29sb3JzOlxuICAqL1xuXG4vLyBncmF5c2NhbGUgZGVmaW5pdGlvbnM6XG4kd2hpdGU6ICAjZmZmZmZmO1xuJGdyYXk6ICAgIzg4ODg4ODtcbiRibGFjazogICMwMDAwMDA7XG4kb2ZmV2hpdGU6ICNmZWZlZmU7XG4kbGlnaHRlc3RHcmF5OiAjZjlmOWY5O1xuJGxpZ2h0ZXJHcmF5OiAjZjJmMmYyO1xuJGxpZ2h0R3JheTogI2UyZTJlMjtcbiRtZWRpdW1HcmF5OiAjZTBlMGUwO1xuJGRhcmtHcmF5OiAjOTk5O1xuJGRhcmtlckdyYXk6ICM2NjY7XG4kZGFya2VzdEdyYXk6ICMyMjI7XG5cbi8vIHRyYW5zcGFyZW50IGRlZmluaXRpb25zOlxuJHRyYW5zR3JheTogcmdiYSg3NSwgNzUsIDc1LCAwLjUpO1xuJGxpZ2h0T2ZmVHJhbnNHcmF5OiByZ2JhKDIwMCwgMjAwLCAyMDAsIDAuMSk7XG5cbi8vIGdsb2JhbCBhc3NpZ25tZW50czpcbiRib2R5Q29sb3I6ICMxMTE7IC8vJGJsYWNrOyAgICAgLy8gYm9keSBiYWNrZ3JvdW5kIGNvbG9yXG4vLyRjb250ZW50Q29sb3I6ICR3aGl0ZTsgIC8vIHBhZ2UgY29udGVudCBiYWNrZ3JvdW5kIGNvbG9yXG4kZm9udENvbG9yOiAkd2hpdGU7ICAvLyBkZWZhdWx0IGZvbnQgY29sb3JcbiRsaW5rQ29sb3I6ICRkYXJrR3JheTsgICAgICAvLyBkZWZhdWx0IGxpbmsgY29sb3JcbiRidXR0b25Db2xvcjogJGRhcmtHcmF5O1xuXG4kYnJhbmRDb2xvclByaW1hcnk6ICRkYXJrZXN0R3JheTsgLy8gcHJpbWFyeSBjb2xvciBvZiBicmFuZFxuJGJyYW5kQ29sb3JDb250cmFzdDogJGxpZ2h0ZXN0R3JheTsgLy8gY29sb3IgdGhhdCBjb250cmFzdHMgd2VsbCB3aXRoIGJyYW5kIGNvbG9yIChvZnRlbiB1c2VkIGZvciB0ZXh0IG9uIHRvcCBvZiBicmFuZCBjb2xvcilcbiIsIi8qKlxuICAqIFNDU1MgQ09MT1JTXG4gICpcbiAgKiBEZWZpbmUgY29sb3JzIGFuZCBleHBvcnQgdGhlbSBmb3IgdXNlIHdpdGggSlMuXG4gICovXG5cblxuLy8gaHVlIGRlZmluaXRpb25zOlxuJHJlZDogICAgICAgICAjZmYwMDAwOyAvLyBSZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSRURcbiRyZWRPcmFuZ2U6ICAgI2ZmODAwMDsgLy8gT3JhbmdlICAgICAgICAgICAgICAgICAgICAgICAgLy8gUkVELU9SQU5HRVxuJG9yYW5nZTogICAgICBkYXJrZW4oI2ZmZmYwMCwgMTclKTsgLy8gWWVsbG93ICAgICAgICAgICAgICAgICAgICAgICAgLy8gT1JBTkdFXG4kZ29sZDogICAgICAgIGRhcmtlbigjODBmZjAwLCAxMiUpOyAvLyBDaGFydHJldXNlICAgICAgICAgICAgICAgICAgICAvLyBZRUxMT1ctT1JBTkdFXG4keWVsbG93OiAgICAgIGRhcmtlbigjMDBmZjAwLCAxNSUpOyAvLyBHcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBZRUxMT1dcbiR5ZWxsb3dHcmVlbjogZGFya2VuKCMwMGZmODAsIDE1JSk7IC8vIFNwcmluZyBHcmVlbiAgICAgICAgICAgICAgICAgIC8vIFlFTExPVy1HUkVFTlxuJGdyZWVuOiAgICAgICBkYXJrZW4oIzAwZmZmZiwgMjAlKTsgLy9kYXJrZW4oIzAwZmZmZiwgNSUpOyAvLyBDeWFuICAgLy8gR1JFRU5cbiRjeWFuOiAgICAgICAgIzAwODBmZjsgLy8gQXp1cmUgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQkxVRS1HUkVFTlxuJGJsdWU6ICAgICAgICBsaWdodGVuKCMwMDAwZmYsIDEwJSk7IC8vbGlnaHRlbigjMDAwMGZmLCA4JSk7IC8vIEJsdWUgIC8vIEJMVUVcbiRpbmRpZ286ICAgICAgIzgwMDBmZjsgLy8gVmlvbGV0ICAgICAgICAgICAgICAgICAgICAgICAgLy8gQkxVRS1WSU9MRVRcbiR2aW9sZXQ6ICAgICAgZGFya2VuKCNmZjAwZmYsIDEwJSk7IC8vIE1hZ2VudGEgICAgICAgICAgICAgICAgICAgICAgIC8vIFZJT0xFVFxuJG1hZ2VudGE6ICAgICAjZmYwMDgwOyAvLyBSb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSRUQtVklPTEVUXG4kYmxhY2s6ICAgICAgICMwMDAwMDA7XG4kd2hpdGU6ICAgICAgICNmZmZmZmY7XG5cbi8vIGV4cG9ydCBjb2xvcnMgZm9yIEpTIHVzZTpcbjpleHBvcnQge1xuICBjb2xvclJlZDogICAgICAgICAkcmVkO1xuICBjb2xvclJlZE9yYW5nZTogICAkcmVkT3JhbmdlO1xuICBjb2xvck9yYW5nZTogICAgICAkb3JhbmdlO1xuICBjb2xvckdvbGQ6ICAgICAgICAkZ29sZDtcbiAgY29sb3JZZWxsb3c6ICAgICAgJHllbGxvdztcbiAgY29sb3JZZWxsb3dHcmVlbjogJHllbGxvd0dyZWVuO1xuICBjb2xvckdyZWVuOiAgICAgICAkZ3JlZW47XG4gIGNvbG9yQ3lhbjogICAgICAgICRjeWFuO1xuICBjb2xvckJsdWU6ICAgICAgICAkYmx1ZTtcbiAgY29sb3JJbmRpZ286ICAgICAgJGluZGlnbztcbiAgY29sb3JWaW9sZXQ6ICAgICAgJHZpb2xldDtcbiAgY29sb3JNYWdlbnRhOiAgICAgJG1hZ2VudGE7XG4gIGNvbG9yQmxhY2s6ICAgICAgICRibGFjaztcbiAgY29sb3JXaGl0ZTogICAgICAgJHdoaXRlO1xufVxuXG4vLyBkZWZpbmUgY2xhc3NlcyB3aXRoIGNvbG9yczpcbi5ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjazsgLy8gIWltcG9ydGFudDtcblxuICAmLmNvbG9yLXRleHQtb25seSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7IC8vICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxufVxuXG4ud2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7IC8vICFpbXBvcnRhbnQ7XG5cbiAgJi5jb2xvci10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OyAvLyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7IC8vICFpbXBvcnRhbnQ7XG5cbiAgJi5jb2xvci10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OyAvLyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG59XG5cbi5yZWRvcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkT3JhbmdlOyAvLyAhaW1wb3J0YW50O1xuXG4gICYuY29sb3ItdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsgLy8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogJHJlZE9yYW5nZTtcbiAgfVxufVxuXG4ub3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTsgLy8gIWltcG9ydGFudDtcblxuICAmLmNvbG9yLXRleHQtb25seSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7IC8vICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRvcmFuZ2U7XG4gIH1cbn1cblxuLmdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDsgLy8gIWltcG9ydGFudDtcblxuICAmLmNvbG9yLXRleHQtb25seSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7IC8vICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRnb2xkO1xuICB9XG59XG5cbi55ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93OyAvLyAhaW1wb3J0YW50O1xuXG4gICYuY29sb3ItdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsgLy8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogJHllbGxvdztcbiAgfVxufVxuXG4ueWVsbG93Z3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93R3JlZW47IC8vICFpbXBvcnRhbnQ7XG5cbiAgJi5jb2xvci10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OyAvLyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkeWVsbG93R3JlZW47XG4gIH1cbn1cblxuLmdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuOyAvLyAhaW1wb3J0YW50O1xuXG4gICYuY29sb3ItdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsgLy8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGdyZWVuO1xuICB9XG59XG5cbi5jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGN5YW47IC8vICFpbXBvcnRhbnQ7XG5cbiAgJi5jb2xvci10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OyAvLyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY3lhbjtcbiAgfVxufVxuXG4uYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlOyAvLyAhaW1wb3J0YW50O1xuXG4gICYuY29sb3ItdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsgLy8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGJsdWU7XG4gIH1cbn1cblxuLmluZGlnbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbmRpZ287IC8vICFpbXBvcnRhbnQ7XG5cbiAgJi5jb2xvci10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OyAvLyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkaW5kaWdvO1xuICB9XG59XG5cbi52aW9sZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmlvbGV0OyAvLyAhaW1wb3J0YW50O1xuXG4gICYuY29sb3ItdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsgLy8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogJHZpb2xldDtcbiAgfVxufVxuXG4ubWFnZW50YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWdlbnRhOyAvLyAhaW1wb3J0YW50O1xuXG4gICYuY29sb3ItdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsgLy8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogJG1hZ2VudGE7XG4gIH1cbn1cbiIsIi8qKlxuICAqIEZPTlQgU1RZTEVTXG4gICpcbiAgKiBEZWZpbmUgQGZvbnQtZmFjZSBzdHlsZXMuXG4gICovXG5cblxuLy8gTW9udHNlcnJhdC1SZWd1bGFyLnR0ZjpcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogTW9udHNlcnJhdDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvTW9udHNlcnJhdC1SZWd1bGFyLnR0Zik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLy8gTW9udHNlcnJhdC1Cb2xkLnR0ZlxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBNb250c2VycmF0O1xuICBzcmM6IHVybCguLi9mb250cy9Nb250c2VycmF0LUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyBQcmVzc1N0YXJ0MlAtUmVndWxhci50dGZcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogUHJlc3NTdGFydDJQO1xuICBzcmM6IHVybCguLi9mb250cy9QcmVzc1N0YXJ0MlAtUmVndWxhci50dGYpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8vIFZUMzIzLVJlZ3VsYXIudHRmXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFZUMzIzO1xuICBzcmM6IHVybCguLi9mb250cy9WVDMyMy1SZWd1bGFyLnR0Zik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbiIsIi8qKlxyXG4gICogU0NTUyBNSVhJTlNcclxuICAqXHJcbiAgKiBTdGFuZGFyZGl6ZWQgc3R5bGUgY2h1bmtzLCBwcm92aWRlZCBhcyBib3RoIFNDU1MgbWl4aW5zIGFuZCBIVE1MIGNsYXNzZXMuXHJcbiAgKi9cclxuXHJcblxyXG5AbWl4aW4gd3JhcCB7IC8vIG1hcmdpbi1sZXNzIHdyYXBwZXJcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuICAud3JhcCB7XHJcbiAgICBAaW5jbHVkZSB3cmFwO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBpbm5lci13cmFwIHsgLy8gd2lkdGgtbGltaXRlZCwgaG9yaXpvbnRhbGx5IGNlbnRlcmluZyB3cmFwcGVyXHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAkc2l0ZVdpZHRoO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcbiAgLmlubmVyLXdyYXAge1xyXG4gICAgQGluY2x1ZGUgaW5uZXItd3JhcDtcclxuICB9XHJcblxyXG5AbWl4aW4gbWFyLXRvcCB7IC8vIHN0YW5kYXJkaXplZCwgcmVzcG9uc2l2ZSwgdG9wLW1hcmdpbmVkIGNvbnRhaW5lclxyXG4gIG1hcmdpbi10b3A6ICRjb250YWluZXJQYWRkaW5nTW9iaWxlO1xyXG4gIHRyYW5zaXRpb246IG1hcmdpbiAzMDBtcztcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLWxhcmdlXCIpIHtcclxuICAgIG1hcmdpbi10b3A6ICRjb250YWluZXJQYWRkaW5nUGhvbmVMYXJnZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xyXG4gICAgbWFyZ2luLXRvcDogJGNvbnRhaW5lclBhZGRpbmdUYWJsZXQ7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcclxuICAgIG1hcmdpbi10b3A6ICRjb250YWluZXJQYWRkaW5nTGFwdG9wO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xyXG4gICAgbWFyZ2luLXRvcDogJGNvbnRhaW5lclBhZGRpbmdEZXNrdG9wO1xyXG4gIH1cclxufVxyXG4gIC5tYXItdG9wIHtcclxuICAgIEBpbmNsdWRlIG1hci10b3A7XHJcbiAgfVxyXG5cclxuQG1peGluIG1hci1ib3R0b20geyAvLyBzdGFuZGFyZGl6ZWQsIHJlc3BvbnNpdmUsIGJvdHRvbS1tYXJnaW5lZCBjb250YWluZXJcclxuICBtYXJnaW4tYm90dG9tOiAkY29udGFpbmVyUGFkZGluZ01vYmlsZTtcclxuICB0cmFuc2l0aW9uOiBtYXJnaW4gMzAwbXM7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZS1sYXJnZVwiKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRjb250YWluZXJQYWRkaW5nVGFibGV0O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkY29udGFpbmVyUGFkZGluZ0xhcHRvcDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRjb250YWluZXJQYWRkaW5nRGVza3RvcDtcclxuICB9XHJcbn1cclxuICAubWFyLWJvdHRvbSB7XHJcbiAgICBAaW5jbHVkZSBtYXItYm90dG9tO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBtYXItaG9yaXpvbnRhbCB7IC8vIHN0YW5kYXJkaXplZCwgcmVzcG9uc2l2ZSwgdmVydGljYWxseS1tYXJnaW5lZCAoYm90aCB0b3AgYW5kIGJvdHRvbSkgY29udGFpbmVyXHJcbiAgQGluY2x1ZGUgbWFyLXRvcDtcclxuICBAaW5jbHVkZSBtYXItYm90dG9tO1xyXG59XHJcbiAgLm1hci1ob3Jpem9udGFsIHtcclxuICAgIEBpbmNsdWRlIG1hci1ob3Jpem9udGFsO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBtYXItcmlnaHQgeyAvLyBzdGFuZGFyZGl6ZWQsIHJlc3BvbnNpdmUsIHJpZ2h0LW1hcmdpbmVkIGNvbnRhaW5lclxyXG4gIG1hcmdpbi1yaWdodDogJGNvbnRhaW5lclBhZGRpbmdNb2JpbGU7XHJcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDMwMG1zO1xyXG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gJGNvbnRhaW5lclBhZGRpbmdNb2JpbGUpO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmUtbGFyZ2VcIikge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRjb250YWluZXJQYWRkaW5nUGhvbmVMYXJnZSk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgIG1hcmdpbi1yaWdodDogJGNvbnRhaW5lclBhZGRpbmdUYWJsZXQ7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRjb250YWluZXJQYWRkaW5nVGFibGV0KTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ0xhcHRvcDtcclxuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gJGNvbnRhaW5lclBhZGRpbmdMYXB0b3ApO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ0Rlc2t0b3A7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRjb250YWluZXJQYWRkaW5nRGVza3RvcCk7XHJcbiAgfVxyXG59XHJcbiAgLm1hci1yaWdodCB7XHJcbiAgICBAaW5jbHVkZSBtYXItcmlnaHQ7XHJcbiAgfVxyXG5cclxuQG1peGluIG1hci1sZWZ0IHsgLy8gc3RhbmRhcmRpemVkLCByZXNwb25zaXZlLCBsZWZ0LW1hcmdpbmVkIGNvbnRhaW5lclxyXG4gIG1hcmdpbi1sZWZ0OiAkY29udGFpbmVyUGFkZGluZ01vYmlsZTtcclxuICB0cmFuc2l0aW9uOiBtYXJnaW4gMzAwbXM7XHJcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAkY29udGFpbmVyUGFkZGluZ01vYmlsZSk7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZS1sYXJnZVwiKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGNvbnRhaW5lclBhZGRpbmdQaG9uZUxhcmdlO1xyXG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2UpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGNvbnRhaW5lclBhZGRpbmdUYWJsZXQ7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRjb250YWluZXJQYWRkaW5nVGFibGV0KTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRjb250YWluZXJQYWRkaW5nTGFwdG9wO1xyXG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAkY29udGFpbmVyUGFkZGluZ0xhcHRvcCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGNvbnRhaW5lclBhZGRpbmdEZXNrdG9wO1xyXG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAkY29udGFpbmVyUGFkZGluZ0Rlc2t0b3ApO1xyXG4gIH1cclxufVxyXG4gIC5tYXItbGVmdCB7XHJcbiAgICBAaW5jbHVkZSBtYXItbGVmdDtcclxuICB9XHJcblxyXG5AbWl4aW4gbWFyLWhvcml6b250YWwgeyAvLyBzdGFuZGFyZGl6ZWQsIHJlc3BvbnNpdmUsIGhvcml6b250YWxseSBwYWRkZWQgKGJvdGggbGVmdCBhbmQgcmlnaHQpIGNvbnRhaW5lclxyXG4gIG1hcmdpbi1sZWZ0OiAkY29udGFpbmVyUGFkZGluZ01vYmlsZTtcclxuICBtYXJnaW4tcmlnaHQ6ICRjb250YWluZXJQYWRkaW5nTW9iaWxlO1xyXG4gIHRyYW5zaXRpb246IG1hcmdpbiAzMDBtcztcclxuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgyICogJGNvbnRhaW5lclBhZGRpbmdNb2JpbGUpKTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLWxhcmdlXCIpIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgICBtYXJnaW4tcmlnaHQ6ICRjb250YWluZXJQYWRkaW5nUGhvbmVMYXJnZTtcclxuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDIgKiAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2UpKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRjb250YWluZXJQYWRkaW5nVGFibGV0O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ1RhYmxldDtcclxuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDIgKiAkY29udGFpbmVyUGFkZGluZ1RhYmxldCkpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGNvbnRhaW5lclBhZGRpbmdMYXB0b3A7XHJcbiAgICBtYXJnaW4tcmlnaHQ6ICRjb250YWluZXJQYWRkaW5nTGFwdG9wO1xyXG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoMiAqICRjb250YWluZXJQYWRkaW5nTGFwdG9wKSk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGNvbnRhaW5lclBhZGRpbmdEZXNrdG9wO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ0Rlc2t0b3A7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgyICogJGNvbnRhaW5lclBhZGRpbmdEZXNrdG9wKSk7XHJcbiAgfVxyXG59XHJcbiAgLm1hci1ob3Jpem9udGFsIHtcclxuICAgIEBpbmNsdWRlIG1hci1ob3Jpem9udGFsO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBwYWQtdG9wIHsgLy8gc3RhbmRhcmRpemVkLCByZXNwb25zaXZlIHNwYWNlciBmb3IgZWxlbWVudCB0b3BcclxuICBwYWRkaW5nLXRvcDogJHNwYWNlclBhZGRpbmdNb2JpbGU7XHJcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLWxhcmdlXCIpIHtcclxuICAgIHBhZGRpbmctdG9wOiAkc3BhY2VyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgIHBhZGRpbmctdG9wOiAkc3BhY2VyUGFkZGluZ1RhYmxldDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xyXG4gICAgcGFkZGluZy10b3A6ICRzcGFjZXJQYWRkaW5nTGFwdG9wO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xyXG4gICAgcGFkZGluZy10b3A6ICRzcGFjZXJQYWRkaW5nRGVza3RvcDtcclxuICB9XHJcbn1cclxuICAucGFkLXRvcCB7XHJcbiAgICBAaW5jbHVkZSBwYWQtdG9wO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBwYWQtYm90dG9tIHsgLy8gc3RhbmRhcmRpemVkLCByZXNwb25zaXZlIHNwYWNlciBmb3IgZWxlbWVudCBib3R0b21cclxuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlclBhZGRpbmdNb2JpbGU7XHJcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAzMDBtcztcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLWxhcmdlXCIpIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyUGFkZGluZ1RhYmxldDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjZXJQYWRkaW5nTGFwdG9wO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjZXJQYWRkaW5nRGVza3RvcDtcclxuICB9XHJcbn1cclxuICAucGFkLWJvdHRvbSB7XHJcbiAgICBAaW5jbHVkZSBwYWQtYm90dG9tO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBwYWQtbGVmdCB7IC8vIHN0YW5kYXJkaXplZCwgcmVzcG9uc2l2ZSwgbGVmdC1wYWRkZWQgY29udGFpbmVyXHJcbiAgcGFkZGluZy1sZWZ0OiAkY29udGFpbmVyUGFkZGluZ01vYmlsZTtcclxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDMwMG1zO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmUtbGFyZ2VcIikge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgIHBhZGRpbmctbGVmdDogJGNvbnRhaW5lclBhZGRpbmdUYWJsZXQ7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcclxuICAgIHBhZGRpbmctbGVmdDogJGNvbnRhaW5lclBhZGRpbmdMYXB0b3A7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb250YWluZXJQYWRkaW5nRGVza3RvcDtcclxuICB9XHJcbn1cclxuICAucGFkLWxlZnQge1xyXG4gICAgQGluY2x1ZGUgcGFkLWxlZnQ7XHJcbiAgfVxyXG5cclxuQG1peGluIHBhZC1yaWdodCB7IC8vIHN0YW5kYXJkaXplZCwgcmVzcG9uc2l2ZSwgcmlnaHQtcGFkZGVkIGNvbnRhaW5lclxyXG4gIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXJQYWRkaW5nTW9iaWxlO1xyXG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMzAwbXM7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZS1sYXJnZVwiKSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ1Bob25lTGFyZ2U7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXJQYWRkaW5nVGFibGV0O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY29udGFpbmVyUGFkZGluZ0xhcHRvcDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXJQYWRkaW5nRGVza3RvcDtcclxuICB9XHJcbn1cclxuICAucGFkLXJpZ2h0IHtcclxuICAgIEBpbmNsdWRlIHBhZC1yaWdodDtcclxuICB9XHJcblxyXG5AbWl4aW4gcGFkLXZlcnRpY2FsIHtcclxuICBAaW5jbHVkZSBwYWQtdG9wO1xyXG4gIEBpbmNsdWRlIHBhZC1ib3R0b207XHJcbn1cclxuICAucGFkLXZlcnRpY2FsIHsgLy8gc3RhbmRhcmRpemVkLCByZXNwb25zaXZlIHZlcnRpY2FsIChib3RoIHRvIGFuZCBib3R0b20pIHNwYWNlciBmb3IgZWxlbWVudFxyXG4gICAgQGluY2x1ZGUgcGFkLXZlcnRpY2FsO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBwYWQtaG9yaXpvbnRhbCB7XHJcbiAgQGluY2x1ZGUgcGFkLXJpZ2h0O1xyXG4gIEBpbmNsdWRlIHBhZC1sZWZ0O1xyXG59XHJcbiAgLnBhZC1ob3Jpem9udGFsIHsgLy8gc3RhbmRhcmRpemVkLCByZXNwb25zaXZlLCBob3Jpem9udGFsbHkgcGFkZGVkIChib3RoIGxlZnQgYW5kIHJpZ2h0KSBjb250YWluZXJcclxuICAgIEBpbmNsdWRlIHBhZC1ob3Jpem9udGFsO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBidXR0b24geyAvLyBzdGFuZGFyZGl6ZWQgYnV0dG9uXHJcbiAgbWFyZ2luOiAzcmVtIDA7XHJcbiAgcGFkZGluZzogMTBweCAxNXB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25Db2xvcjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAkYnJhbmRDb2xvckNvbnRyYXN0O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgYm9yZGVyOiAycHggc29saWQgJGJyYW5kQ29sb3JDb250cmFzdDtcclxufVxyXG4gIC5idXR0b24ge1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uO1xyXG4gIH1cclxuXHJcbkBtaXhpbiBsY2Qge1xyXG4gIGZvbnQtZmFtaWx5OiBWVDMyMztcclxuICAvL2Rpc3BsYXk6IGZsZXg7XHJcbiAgLy9hbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIC8vanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgLy9saW5lLWhlaWdodDogNDBweDtcclxuICAvL2ZvbnQtc2l6ZTogMnJlbTtcclxuICAvL2ZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIC8vY29sb3I6ICRkYXJrZXN0R3JheTtcclxuICAvL2NvbG9yOiAkZ3JheTtcclxuICBjb2xvcjogJHdoaXRlOyAvLyR3aGl0ZTtcclxuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggJHdoaXRlLCAwIDAgMHB4ICR3aGl0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdEdyYXk7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcclxuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcclxuICBib3JkZXItYm90dG9tOiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XHJcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcclxufVxyXG5cclxuLmxjZCB7XHJcbiAgQGluY2x1ZGUgbGNkO1xyXG59XHJcblxyXG5AbWl4aW4gc2NyZWVuLXJlYWRlci10ZXh0IHsgIC8vIHZpc2libGUgdG8gc2NyZWVuIHJlYWRlcnMgb25seVxyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMXB4O1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAtMXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuICAuc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICAgIEBpbmNsdWRlIHNjcmVlbi1yZWFkZXItdGV4dDtcclxuICB9XHJcblxyXG5AbWl4aW4gbm8tc2Nyb2xsIHsgLy8gcmVtb3ZlIHNjcm9sbGFiaWxpdHkgZm9yIGVsZW1lbnRcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcbiAgLm5vLXNjcm9sbCB7XHJcbiAgICBAaW5jbHVkZSBuby1zY3JvbGw7XHJcbiAgfVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG4gICdwaG9uZSc6IDMyMHB4LFxyXG4gICd0YWJsZXQnOiA3NjhweCxcclxuICAnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcclxuICAncHJpbnQnOiAncHJpbnQnLFxyXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcbiAgJ3B4JzogMSxcclxuICAnZW0nOiAwLjAxLFxyXG4gICdyZW0nOiAwLjEsXHJcbiAgJyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG4gICAgQGVycm9yICRtZXNzYWdlO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gJG1lc3NhZ2U7XHJcbiAgICAkXzogbm9vcCgpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG4gICAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG4gICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xyXG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xyXG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcclxuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xyXG5cclxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcclxuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZGltZW5zaW9uO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XHJcblxyXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcclxuICB9IEBlbHNlIHtcclxuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xyXG5cclxuICBAaWYgbm90ICRpbnRlcnZhbCB7XHJcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xyXG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XHJcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcclxuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XHJcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxyXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuICB9XHJcblxyXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuICAgIEByZXR1cm4gKCk7XHJcbiAgfVxyXG5cclxuICAkcmVzdWx0OiAoKTtcclxuXHJcbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG4gIH1cclxuXHJcbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcbiAgJHJlc3VsdDogMDtcclxuICAkZGlnaXRzOiAwO1xyXG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG4gICAgICAkZGlnaXRzOiAxO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG4gIEBjb250ZW50O1xyXG5cclxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcbiAgICBAY29udGVudDtcclxuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXG4gICogSFRNTCBFTEVNRU5UIFNUWUxFU1xuICAqXG4gICogU3R5bGUgZGVmaW5pdGlvbnMgZm9yIGdsb2JhbCBlbGVtZW50IHNlbGVjdG9ycy5cbiAgKi9cblxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gY29uc2lzdGVudCBib3gtc2l6aW5nIGZvciBhbGwgZWxlbWVudHNcbn1cblxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTsgLy8gZm9yIHN0aWNreSBmb290ZXJcbiAgbGluZS1oZWlnaHQ6IDEuNzsgLy8gc2V0IGRlZmF1bHQgbGluZSBoZWlnaHRcbiAgZm9udC1zaXplOiA2Mi41JTsgLy8gNjIuNSUgb2YgMTZweCBicm93c2VyIGZvbnQgc2l6ZSBpcyAxMHB4XG59XG5cbmJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDAlOyAvLyBmb3Igc3RpY2t5IGZvb3RlclxuICBtYXJnaW46IDA7IC8vIG1ha2Ugc3VyZSBib2R5IGVsZW1lbnQgaXMgZWRnZS10by1lZGdlXG4gIGRpc3BsYXk6IGdyaWQ7IC8vIGZvciBzdGlja3kgZm9vdGVyXG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bzsgLy8gZm9yIHN0aWNreSBmb290ZXJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHlDb2xvcjtcbiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjZyZW07IC8vIHJlc2V0IG92ZXJhbGwgXCJyb290XCIgZm9udC1zaXplIGZvciAxNnB4IHN0YW5kYXJkIChyZWxhdGl2ZSB0byA2Mi41JSBhY3R1YWwgcm9vdCBzaXplIGRlY2xhcmVkIGFib3ZlKVxuICBjb2xvcjogJGZvbnRDb2xvcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuOXJlbTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS44cmVtO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS43cmVtO1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS45cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjZyZW07XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDEuNXJlbSAwO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogJGxpbmtDb2xvcjtcblxuICAmOmxpbmsge1xuXG4gIH1cblxuICAmOmhvdmVyIHtcblxuICB9XG5cbiAgJjphY3RpdmUge1xuXG4gIH1cblxuICAmOnZpc2l0ZWQge1xuXG4gIH1cbn1cblxuOmZvY3VzIHtcbiAgLy9vdXRsaW5lOiAzcHggc29saWQgb3JhbmdlO1xufVxuXG51bCwgb2wge1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG59XG5cbmltZyB7XG5cbn1cblxuLyogYmVnaW4gYnV0dG9uIHN0eWxlcyAqL1xuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIC8vcGFkZGluZzogMXJlbSAycmVtO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgLy9iYWNrZ3JvdW5kOiAjMDA2OWVkO1xuICAvL2NvbG9yOiAjZmZmZmZmO1xuICAvL2ZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvL2ZvbnQtc2l6ZTogMXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgLy90cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDI1MG1zIGVhc2UtaW4tb3V0LFxuICAvLyAgICAgICAgICAgIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuYnV0dG9uOmhvdmVyLFxuYnV0dG9uOmZvY3VzIHtcbiAgICAvL2JhY2tncm91bmQ6ICMwMDUzYmE7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gICAgLy9vdXRsaW5lOiAxcHggc29saWQgI2ZmZjtcbiAgICAvL291dGxpbmUtb2Zmc2V0OiAtNHB4O1xufVxuXG5idXR0b246YWN0aXZlIHtcbiAgICAvL3RyYW5zZm9ybTogc2NhbGUoMC45OSk7XG59XG4vKiBlbmQgYnV0dG9uIHN0eWxlcyAqL1xuXG5ibG9ja3F1b3RlIHtcbiAgLy9iYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICRibGFjaztcbiAgbWFyZ2luOiAxLjVlbSAxMHB4O1xuICBwYWRkaW5nOiAwLjVlbSAzMHB4O1xuICBxdW90ZXM6IFwiXFwyMDFDXCI7IC8vXCJcXDIwMURcIlwiXFwyMDE4XCJcIlxcMjAxOVwiO1xuICAvLyAvZm9udC1zaXplOiAxLjJyZW07XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gICAgZm9udC1zaXplOiA0ZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMC40ZW07XG4gIH1cblxuICBwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHA6Zmlyc3Qtb2YtdHlwZSwgcDpudGgtb2YtdHlwZSgyKSB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gIH1cbn1cbiIsIi8qKlxuICAqIEhFQURFUiBTVFlMRVNcbiAgKi9cblxuLmhlYWRlci13cmFwIHsgLy8gZWRnZS10by1lZGdlIHdyYXAgZm9yIGV2ZXJ5dGhpbmcgaW4gdGhlIGhlYWRlci4gMXN0IGdyaWQgaXRlbSBpbiA8Ym9keT4gZ3JpZCBjb250YWluZXIuXG4gIEBpbmNsdWRlIHdyYXA7XG4gIGdyaWQtcm93LXN0YXJ0OiAxOyAvLyBmb3Igc3RpY2t5IGZvb3RlclxuICBncmlkLXJvdy1lbmQ6IDI7IC8vIGZvciBzdGlja3kgZm9vdGVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTk5OyAvLyBwb3NpdGlvbiBpbiBmcm9udCBvZiBldmVyeXRoaW5nIGVsc2VcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcywgYm9yZGVyIDIwMG1zLCBib3gtc2hhZG93IDIwMG1zO1xuICAvL2JhY2tncm91bmQtY29sb3I6ICRibGFjazsvLyRicmFuZENvbG9yUHJpbWFyeTtcblxuICAmLmJnLXZpc2libGUge1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kQ29sb3JQcmltYXJ5O1xuICB9XG59XG4gIC5oZWFkZXItb3ZlcmxheSB7IC8vIHRyYW5zbHVjZW50LCBcImRpbW1lclwiIGxheWVyIG92ZXIgaGVhZGVyIGJhY2tncm91bmQtaW1hZ2UuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAyO1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kQ29sb3JQcmltYXJ5O1xuICAgIG9wYWNpdHk6IDAuNztcblxuICAgICYuYmctdmlzaWJsZSB7XG4gICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRicmFuZENvbG9yUHJpbWFyeTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLnRvcC1iYXItYmcgeyAvLyBlZGdlLXRvLWVkZ2UgYmFja2dyb3VuZCBsYXllciBmb3IgdGhlIHRvcC1uYXYgYmFyLlxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHRvcEJhckhlaWdodDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogNjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXM7XG4gICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCB0cmFuc3BhcmVudCk7XG5cbiAgICAmLmJnLXZpc2libGUge1xuICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmRDb2xvclByaW1hcnk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyIHsgLy8gV2lkdGgtbGltaXRlZCBjb250YWluZXIgZm9yIHRoZSBoZWFkZXIuIFRoaXMgaXMgdGhlIDxoZWFkZXI+IGVsZW1lbnQgaXRzZWxmLlxuICAgIEBpbmNsdWRlIGlubmVyLXdyYXA7XG4gICAgaGVpZ2h0OiAkaGVhZGVySGVpZ2h0TW9iaWxlO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyAvLzFmciAxMDBweDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICRoZWFkZXJIZWlnaHRNb2JpbGUgYXV0bztcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zO1xuXG4gICAgJi5iZy12aXNpYmxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZENvbG9yUHJpbWFyeTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgIGhlaWdodDogY2FsYygkaGVhZGVySGVpZ2h0RGVza3RvcCArICR0b3BCYXJIZWlnaHQpO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IC8vMWZyIDEwMHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxMjBweCA3MHB4O1xuICAgIH1cbiAgfVxuICAgIC5oZWFkZXItYnJhbmQgeyAvLyBjb250YWluZXIgZm9yIGxvZ28sIHRleHQgbG9nbywgdGFnbGluZS4gQ292ZXJzIGVudGlyZSBoZWFkZXIgYXJlYSAoYmVoaW5kIG5hdnMpXG4gICAgICBAaW5jbHVkZSBwYWQtaG9yaXpvbnRhbDtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgLy8gbmVnYXRlIHJpZ2h0IHBhZGRpbmcgZnJvbSAnY29udGFpbmVyJyBtaXhpbiBeXl5cbiAgICAgIGhlaWdodDogJGhlYWRlckhlaWdodE1vYmlsZTtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA1O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCRoZWFkZXJIZWlnaHREZXNrdG9wIC0gJG1haW5OYXZIZWlnaHQpO1xuICAgICAgICBtYXJnaW4tdG9wOiAkdG9wQmFySGVpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFpbk5hdkhlaWdodDtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGhlaWdodDogJGhlYWRlckhlaWdodE1vYmlsZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICBoZWlnaHQ6IGNhbGMoJGhlYWRlckhlaWdodERlc2t0b3AgLSAkbWFpbk5hdkhlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAubG9nby1pbWFnZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKCRoZWFkZXJIZWlnaHRNb2JpbGUgLSA1MHB4KTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvZ28tdGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgY29sb3I6ICRicmFuZENvbG9yQ29udHJhc3Q7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLWxhcmdlXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubG9nby10ZXh0LXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgICAgICAgICBzcGFuLnJlZ2lzdGVyZWQge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmUtbGFyZ2VcIikge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcblxuICAgICAgICAgICAgICBzcGFuLnJlZ2lzdGVyZWQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmxvZ28tdGV4dC10YWdsaW5lIHtcbiAgICAgICAgICAgIC8vbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG8gMCBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuODtcbiAgICAgICAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmRDb2xvckNvbnRyYXN0O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmUtbGFyZ2VcIikge1xuICAgICAgICAgICAgICAvL2Rpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLW5hdiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6ICRoZWFkZXJIZWlnaHRNb2JpbGU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgJi5iZy12aXNpYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kQ29sb3JQcmltYXJ5O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKCRoZWFkZXJIZWlnaHREZXNrdG9wICsgJHRvcEJhckhlaWdodCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuICAgIH1cbiAgICAgIC5oZWFkZXItbmF2LW1haW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIHotaW5kZXg6IDY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgIEBpbmNsdWRlIHBhZC1ob3Jpem9udGFsO1xuICAgICAgICAgIC8vcGFkZGluZy1sZWZ0OiAwOyAvLyBuZWdhdGUgbGVmdCBwYWRkaW5nIGZyb20gJ2NvbnRhaW5lcicgbWl4aW4gXl5eXG4gICAgICAgICAgaGVpZ2h0OiAkbWFpbk5hdkhlaWdodDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgLy9jb2x1bW4tZ2FwOiBhdXRvO1xuICAgICAgICAgIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmF5O1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGhlaWdodDogJG1haW5OYXZIZWlnaHQ7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgY29sdW1uLWdhcDogMTBweDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHVuc2V0O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItdG9wOiB1bnNldDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmRDb2xvclByaW1hcnk7XG5cbiAgICAgICAgICAgICY6aG92ZXIgPiB1bCB7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRtYWluTmF2SGVpZ2h0O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGRpc3BsYXkgMzAwbXM7XG5cbiAgICAgICAgICAgICAgJjpob3ZlciA+IHVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkLWxlZnQ7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBoZWlnaHQ6ICR0b3BCYXJIZWlnaHQ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5O1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmRDb2xvckNvbnRyYXN0O1xuXG4gICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJGJyYW5kQ29sb3JDb250cmFzdCwgMjAlKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJG1haW5OYXZIZWlnaHQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5uYXYtY2hldnJvbiB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0NXB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmRDb2xvckNvbnRyYXN0O1xuXG4gICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJGJyYW5kQ29sb3JDb250cmFzdCwgMjAlKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwgeyAvLyBzdWItbmF2XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDMyMHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6ICRtYWluTmF2SGVpZ2h0O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kQ29sb3JQcmltYXJ5O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgbGkgeyAvLyBzdWItbmF2XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogJHRvcEJhckhlaWdodDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkdG9wQmFySGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0cmFuc0dyYXk7XG5cbiAgICAgICAgICAgICAgICAgICY6aG92ZXIgPiB1bCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSB7IC8vIHN1Yi1uYXZcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogM2VtO1xuICAgICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBwYWQtaG9yaXpvbnRhbDtcbiAgICAgICAgICAgICAgICAgIC8vd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAvL2hlaWdodDogNDVweDtcbiAgICAgICAgICAgICAgICAgIC8vbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAvL3BhZGRpbmc6IDAgMCAwIDMwcHg7XG4gICAgICAgICAgICAgICAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAvL2FsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAvL2NvbG9yOiBncmF5O1xuXG4gICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLy90ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHRvcEJhckhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgLy9tYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCB7IC8vIHN1Yi1zdWItbmF2XG5cbiAgICAgICAgICAgICAgICAgIGxpIHsgLy8gc3ViLXN1Yi1uYXZcblxuICAgICAgICAgICAgICAgICAgICBhIHsgLy8gc3ViLXN1Yi1uYXZcbiAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQuNWVtO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdWwgeyAvLyBzdWItc3ViLXN1Yi1uYXZcblxuICAgICAgICAgICAgICAgICAgICAgIGxpIHsgLy8gc3ViLXN1Yi1zdWItbmF2XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGEgeyAvLyBzdWItc3ViLXN1Yi1uYXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXItbmF2LXRvcCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHotaW5kZXg6IDY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICBAaW5jbHVkZSBwYWQtaG9yaXpvbnRhbDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6ICR0b3BCYXJIZWlnaHQ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICB6LWluZGV4OiA2O1xuICAgICAgICB9XG5cbiAgICAgICAgdWwgeyAvLyB0b3AgbmF2XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IDMwcHg7XG4gICAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG5cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdG9wQmFySGVpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgLy8gcGFkZGluZyBhZ2FpbnN0IGhlYWRlciBidXR0b25zIChzZWFyY2ggZ2xhc3MpXG4gICAgICAgICAgICAvL2ZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGkgeyAvLyB0b3AgbmF2XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWQtaG9yaXpvbnRhbDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiA0NXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEgeyAvLyB0b3AgbmF2XG4gICAgICAgICAgICAgIGhlaWdodDogJHRvcEJhckhlaWdodDtcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kQ29sb3JDb250cmFzdDtcblxuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKCRicmFuZENvbG9yQ29udHJhc3QsIDIwJSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zbGlkZS1saW5lIHtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZENvbG9yQ29udHJhc3Q7XG4gICAgICB9XG5cbiAgICAuaGVhZGVyLWJ1dHRvbnMge1xuICAgICAgQGluY2x1ZGUgcGFkLXJpZ2h0O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6ICRoZWFkZXJIZWlnaHRNb2JpbGU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgei1pbmRleDogNjtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgIGhlaWdodDogJHRvcEJhckhlaWdodDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAgIC5nbGFzcyB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0b3A6IGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgaGVpZ2h0OiAkdG9wQmFySGVpZ2h0O1xuICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBpIHtcbiAgICAgICAgICBjb2xvcjogJGJyYW5kQ29sb3JDb250cmFzdDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkYnJhbmRDb2xvckNvbnRyYXN0LCAyMCUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgLy9jb2xvcjogJG1lZGl1bUdyYXk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5idXJnZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PTM0MHB4XCIpIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBpIHtcbiAgICAgICAgICBjb2xvcjogJGJyYW5kQ29sb3JDb250cmFzdDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkYnJhbmRDb2xvckNvbnRyYXN0LCAyMCUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgLmhlYWRlci1zZWFyY2gtd3JhcCB7IC8vIGhlYWRlci1zcGVjaWZpYyBzZWFyY2ggd3JhcFxuICAgICAgQGluY2x1ZGUgd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6ICRoZWFkZXJIZWlnaHRNb2JpbGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kQ29sb3JQcmltYXJ5O1xuICAgICAgei1pbmRleDogNjtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgIHRvcDogJHRvcEJhckhlaWdodDtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCRoZWFkZXJIZWlnaHREZXNrdG9wIC0gJG1haW5OYXZIZWlnaHQpO1xuICAgICAgfVxuXG4gICAgICAuc2l0ZS1zZWFyY2ggeyAvLyBoZWFkZXIgc3BlY2lmaWMgLS0gc2VlIHNlYXJjaC5zY3NzIGZvciBnbG9iYWwgc2VhcmNoIHN0eWxlc1xuICAgICAgICBAaW5jbHVkZSBwYWQtaG9yaXpvbnRhbDtcbiAgICAgIH1cbiAgICB9XG4iLCIvKipcbiAgKiBTSVRFIFNFQVJDSCBGT1JNIFNUWUxFU1xuICAqL1xuXG4uc2l0ZS1zZWFyY2gge1xuICBAaW5jbHVkZSBpbm5lci13cmFwO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDQwcHggMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNTBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xufVxuXG4gIC5zZWFyY2gtcXVlcnkge1xuICAgIGhlaWdodDogNTBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgIGxhYmVsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgY29sb3I6ICRicmFuZENvbG9yQ29udHJhc3Q7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRicmFuZENvbG9yQ29udHJhc3Q7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgY29sb3I6ICRicmFuZENvbG9yQ29udHJhc3Q7XG4gICAgfVxuICB9XG5cbiAgLnNlYXJjaC1zdWJtaXQge1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICBncmlkLXJvdzogMTtcbiAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICBjb2xvcjogJGJyYW5kQ29sb3JQcmltYXJ5O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZENvbG9yQ29udHJhc3Q7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRicmFuZENvbG9yQ29udHJhc3QsIDIwJSk7XG4gICAgfVxuICB9XG4iLCIvKipcbiAgKiBDT05URU5UIFNUWUxFU1xuICAqL1xuXG5cbi5tYWluLXdyYXAge1xuICBAaW5jbHVkZSB3cmFwO1xuICBncmlkLXJvdy1zdGFydDogMjsgLy8gZm9yIHN0aWNreSBmb290ZXJcbiAgZ3JpZC1yb3ctZW5kOiAzOyAvLyBmb3Igc3RpY2t5IGZvb3RlclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvL2JhY2tncm91bmQtY29sb3I6ICRibGFjazsvLyRkYXJrZXN0R3JheTtcbn1cbiAgLm1haW4ge1xuICAgIGhlaWdodDogMTAwJTsgLy8gZm9yIHN0aWNreSBmb290ZXI6IGZpbGwgYW55IGVtcHR5IHNwYWNlIGRvd24gdG8gZm9vdGVyXG4gICAgLy9vdmVyZmxvdzogaGlkZGVuOyAvLyBleHRlbmRzIGhlaWdodCB0byBhY2NvbW9kYXRlIGNvbnRlbnQncyBtYXJnaW5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogaW5oZXJpdDtcbiAgfVxuICAgIC5wYWdlLWhlYWRlci13cmFwIHtcbiAgICAgIEBpbmNsdWRlIHdyYXA7XG4gICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItd3JhcDtcbiAgICAgICAgQGluY2x1ZGUgcGFkLXRvcDtcbiAgICAgICAgQGluY2x1ZGUgcGFkLWhvcml6b250YWw7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgIC8vbWFyZ2luOiAwO1xuICAgICAgICAgIC8vcGFkZGluZzogMTBweCAwIDAgMDtcbiAgICAgICAgICAvL2Rpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIC8vZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgLy9saW5lLWhlaWdodDogMS4zO1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAvL2ZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgIC8vbWFyZ2luOiAwO1xuICAgICAgICAgIC8vZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgLy9mb250LXNpemU6IDFyZW07XG4gICAgICAgICAgLy9mb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgLnBhZ2UtY29udGVudC13cmFwIHtcbiAgICAgIEBpbmNsdWRlIHdyYXA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiBpbmhlcml0O1xuICAgIH1cbiAgICAgIC5wYWdlLWNvbnRlbnQgeyAvLyBwYWdlIGNvbnRlbnQgYWZ0ZXIgcGFnZSBoZWFkZXIgKHRpdGxlLCBpbnRybyB0ZXh0LCBldGMuKSDigJPCoGNvbnRhaW5zIHRoZSBtYWluIHBhZ2UgY29udGVudCBhbmQgc2lkZWJhclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IGluaGVyaXQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wYWdlLWNvbnRlbnQuc2lkZSB7IC8vIC5wYWdlLWNvbnRlbnQgc3R5bGVzIGZvciBzaWRlYmFyIGxheW91dFxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDMyMHB4O1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICAgLnBhZ2UtbWFpbiB7IC8vIG1haW4gcGFnZSBjb250ZW50IOKAkyBzaXRzIGFsb25nc2lkZSBzaWRlYmFyIGlmIHRoZXJlIGlzIG9uZVxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7XG4gICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IGluaGVyaXQ7XG5cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgLnBhZ2Utc2VjdGlvbi13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHdyYXA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiBpbmhlcml0O1xuICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wYWdlLXNlY3Rpb24geyAvLyB2ZXJ0aWNhbGx5IHNlcGFyYXRlcyBwaWVjZXMgb2YgbWFpbiBjb250ZW50IGFuZCBwYWRzIGFnYWluc3QgdGhlIHNpZGViYXJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgaW5uZXItd3JhcDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkLWhvcml6b250YWw7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBhZC1ib3R0b207XG5cbiAgICAgICAgICAgICAgLypAaW5jbHVkZSBwYWQtdG9wO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRibGFjaywgMTAlKTsvL2xpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgLy8gbWFyZ2luOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgLy9wYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgICAgfSovXG5cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlIC5wYWdlLW1haW4geyAvLyAucGFnZS1tYWluIHN0eWxlcyBmb3Igc2lkZWJhciBsYXlvdXRcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGFnZS1zaWRlYmFyIHtcbiAgICAgICAgICBAaW5jbHVkZSBwYWQtYm90dG9tO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgICAgICAgIGdyaWQtcm93OiAxO1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuIiwiLyoqXG4gICogRk9PVEVSIFNUWUxFU1xuICAqL1xuXG5cbi5mb290ZXItd3JhcCB7XG4gIGdyaWQtcm93LXN0YXJ0OiAzOyAvLyBmb3Igc3RpY2t5IGZvb3RlclxuICBncmlkLXJvdy1lbmQ6IDQ7IC8vIGZvciBzdGlja3kgZm9vdGVyXG4gIC8vYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrOy8vJGJyYW5kQ29sb3JQcmltYXJ5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG59XG4gIC5mb290ZXIge1xuICAgIC8vQGluY2x1ZGUgcGFkLXRvcDtcbiAgICBAaW5jbHVkZSBwYWQtYm90dG9tO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBleHRlbmRzIGhlaWdodCB0byBhY2NvbW9kYXRlIGNvbnRlbnQncyBtYXJnaW5cbiAgICBjb2xvcjogJGJyYW5kQ29sb3JDb250cmFzdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogaW5oZXJpdDtcbiAgfVxuICAgIC5mb290ZXItbmF2IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgQGluY2x1ZGUgcGFkLWhvcml6b250YWw7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAvL21hcmdpbi1sZWZ0OiAtNXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kQ29sb3JDb250cmFzdDtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgIHJpZ2h0OiAtMnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuXG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgY29sb3I6ICRncmF5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jb3B5cmlnaHQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGNvbG9yOiAkZ3JheTtcbiAgICB9XG4iLCIvKipcbiAgKiBNSVNDRUxMQU5FT1VTIFNUWUxFU1xuICAqL1xuXG4uZW1iZWQtY29udGFpbmVyLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbWFyZ2luOiAyMHB4IGF1dG87XG59XG4gIC5lbWJlZC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAgIC5lbWJlZC1jb250YWluZXIgaWZyYW1lLFxuICAgIC5lbWJlZC1jb250YWluZXIgb2JqZWN0LFxuICAgIC5lbWJlZC1jb250YWluZXIgZW1iZWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiIsIi8qKlxuICAqIEtFWS1XSElaIEFQUCBTVFlMRVNcbiAgKi9cblxuQGltcG9ydCAnX21peGlucyc7XG5AaW1wb3J0ICdfZ2xvYmFsJztcbkBpbXBvcnQgJ19zZXR0aW5ncyc7XG5AaW1wb3J0ICdfa2V5JztcbkBpbXBvcnQgJ19pbnRlcnZhbCc7XG5AaW1wb3J0ICdfcGF0dGVybic7XG5AaW1wb3J0ICdfc2hhcGUnO1xuQGltcG9ydCAnX3NjYWxlJztcbkBpbXBvcnQgJ19hcnBlZ2dpbyc7XG5AaW1wb3J0ICdfY2hvcmQnO1xuQGltcG9ydCAnX3NlcXVlbmNlJztcbkBpbXBvcnQgJ19pbnN0cnVtZW50JztcbkBpbXBvcnQgJ19rZXlib2FyZCc7XG5AaW1wb3J0ICdfc3RyaW5nZWQnO1xuQGltcG9ydCAnX2dyaWQnO1xuQGltcG9ydCAnX3NvdW5kJzsiLCIvKiBGb3IgS2V5LVdoaXo6ICovXG5cbkBtaXhpbiBhY3RpdmUge1xuICAvL2JhY2tncm91bmQtY29sb3I6ICRyZWQgIWltcG9ydGFudDtcbiAgLy9jb2xvcjogJHdoaXRlOyAvLyFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuLmFjdGl2ZSB7XG4gIEBpbmNsdWRlIGFjdGl2ZTtcbn1cblxuQG1peGluIGxpZ2h0LW9mZiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7IC8vdHJhbnNwYXJlbnRpemUoJGRhcmtlckdyYXksIDAuOSk7Ly9kYXJrZW4oJGdyYXksIDM1JSk7XG4gIC8qXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50IDAsXG4gICAgICB0cmFuc3BhcmVudCAycHgsXG4gICAgICBkYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAyMCUpIDJweCxcbiAgICAgIGRhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDIwJSkgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgNXB4XG4gICAgKSxcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC45NSkgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC45NSkgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgICAgdHJhbnNwYXJlbnQgNXB4XG4gICAgKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNykgNjAlLFxuICAgICAgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpIDEwMCVcbiAgICApXG4gIDtcbiAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAvKnJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgbGlnaHRlbigjMjIyLCAxMCUpXG4gICAgKSwqL1xuICAgIHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQoXG4gICAgICB0cmFuc3BhcmVudCAwLFxuICAgICAgdHJhbnNwYXJlbnQgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoIzY1NjU2NSwgMC41KSAycHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgjNjU2NTY1LCAwLjUpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksIC8vcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDJweCxcbiAgICAvL3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAzcHgsXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKCM2NTY1NjUsIDAuNSkgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoIzY1NjU2NSwgMC41KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oIzY1NjU2NSwgMTAlKSwgMC41KSxcbiAgICAgIHRyYW5zcGFyZW50IDkwJVxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnRpemUoJGRhcmtlckdyYXksIDAuNSksXG4gICAgICB0cmFuc3BhcmVudCA5NSVcbiAgICApXG4gIDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjb2xvcjogJGRhcmtlc3RHcmF5OyAvL2RhcmtlbigkZ3JheSwgMzUlKTtcbiAgLy9ib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpOy8vZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMTAlKTtcbiAgLy9ib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuOCk7Ly9kYXJrZW4oJGxpZ2h0T2ZmVHJhbnNHcmF5LCAzMCUpO1xuICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuOTUpOy8vZGFya2VuKCRsaWdodE9mZlRyYW5zR3JheSwgMzUlKTtcbiAgLy9ib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC44KTsvL2RhcmtlbigkbGlnaHRPZmZUcmFuc0dyYXksIDMwJSk7XG4gIHRleHQtc2hhZG93OiAwIDAuNXB4IDFweCBsaWdodGVuKCRsaWdodE9mZlRyYW5zR3JheSwgMzAlKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG5cbi5saWdodC1vZmYge1xuICBAaW5jbHVkZSBsaWdodC1vZmY7XG59XG5cbkBtaXhpbiBsaWdodC1vbigkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgLy9kYXJrZW4oJGNvbG9yLCAyMCUpOyAvLyAhaW1wb3J0YW50XG4gIC8vYm9yZGVyOiB1bnNldDsgLy8gIWltcG9ydGFudFxuICAvL291dGxpbmU6IHVuc2V0OyAvLyAhaW1wb3J0YW50XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDAgMnB4ICRjb2xvcjsvLywgMCAwIDNweCAkY29sb3I7IC8vICFpbXBvcnRhbnQgLy8wIDAgNXB4ICRjb2xvciwgMCAwIDEwcHggJGNvbG9yLCAwIDAgMzBweCAkY29sb3IsIDAgMCA4MHB4ICRjb2xvcjtcbiAgLy90ZXh0LXNoYWRvdzogMCAwIDBweCAkd2hpdGUsIDAgMCAxMHB4ICR3aGl0ZTsgLy8gIWltcG9ydGFudCAvLzAgMCA1cHggJHdoaXRlLCAwIDAgMTBweCAkd2hpdGUsIDAgMCAzMHB4ICR3aGl0ZSwgMCAwIDUwcHggJHdoaXRlLCAwIDAgODBweCAkd2hpdGU7XG4vKlxuICBiYWNrZ3JvdW5kLWltYWdlOlxuXG4gICAgcmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzUlKSwgMC45KSAxcHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzNSUpLCAwLjkpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICApLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMXB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMzAlKSwgMC41KSAxcHgsXG4gICAgICB0cmFuc3BhcmVudGl6ZShkYXJrZW4oJGNvbG9yLCAzMCUpLCAwLjUpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuOSkgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC45KSAzcHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSxcbiAgICAgIHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC43KSA2MCUsXG4gICAgICB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNikgMTAwJVxuICAgIClcbiAgOyAvLyAhaW1wb3J0YW50XG4qL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgbGlnaHRlbigkY29sb3IsIDEwJSkgOTAlXG4gICAgKSxcbiAgICByZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGNvbG9yLCAxMCUpLCAwLjYpIDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGNvbG9yLCAxMCUpLCAwLjYpIDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICAgIHRyYW5zcGFyZW50IDVweFxuICAgICksIC8vcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDJweCxcbiAgICAvL3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAzcHgsXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDkwZGVnLFxuICAgICAgdHJhbnNwYXJlbnQgMCxcbiAgICAgIHRyYW5zcGFyZW50IDJweCxcbiAgICAgIHRyYW5zcGFyZW50aXplKGRhcmtlbigkY29sb3IsIDE1JSksIDAuNikgMnB4LFxuICAgICAgdHJhbnNwYXJlbnRpemUoZGFya2VuKCRjb2xvciwgMTUlKSwgMC42KSAzcHgsXG4gICAgICB0cmFuc3BhcmVudCAzcHgsXG4gICAgICB0cmFuc3BhcmVudCA1cHhcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIGxpZ2h0ZW4oJGNvbG9yLCAxNSUpLFxuICAgICAgdHJhbnNwYXJlbnQgOTAlXG4gICAgKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICAkd2hpdGUsXG4gICAgICB0cmFuc3BhcmVudCA5NSVcbiAgICApLFxuICA7XG59XG5cbi5saWdodC1vbiB7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG4gIGNvbG9yOiAkZGFya2VyR3JheTsgLy8gIWltcG9ydGFudFxuICAvL2JhY2tncm91bmQtY29sb3I6ICRibGFjayAhaW1wb3J0YW50O1xufVxuLmxpZ2h0LW9uLnJlZCB7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICBjb2xvcjogJHdoaXRlOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24ucmVkb3JhbmdlIHtcbiAgLy9AaW5jbHVkZSBsaWdodC1vbihkYXJrZW4oJHJlZE9yYW5nZSwgMTAlKSk7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24ub3JhbmdlIHtcbiAgLy9AaW5jbHVkZSBsaWdodC1vbihkYXJrZW4oJG9yYW5nZSwgMTglKSk7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRvcmFuZ2UpO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24uZ29sZCB7XG4gIC8vQGluY2x1ZGUgbGlnaHQtb24oZGFya2VuKCRnb2xkLCAxOCUpKTtcbiAgQGluY2x1ZGUgbGlnaHQtb24oJGdvbGQpO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24ueWVsbG93IHtcbiAgLy9AaW5jbHVkZSBsaWdodC1vbihkYXJrZW4oJHllbGxvdywgMjAlKSk7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3cpO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24ueWVsbG93Z3JlZW4ge1xuICAvL0BpbmNsdWRlIGxpZ2h0LW9uKGRhcmtlbigkeWVsbG93R3JlZW4sIDIwJSkpO1xuICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93R3JlZW4pO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24uZ3JlZW4ge1xuICAvL0BpbmNsdWRlIGxpZ2h0LW9uKGRhcmtlbigkZ3JlZW4sMjAlKSk7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRncmVlbik7XG4gIGNvbG9yOiAkYmxhY2s7IC8vICFpbXBvcnRhbnRcbn1cbi5saWdodC1vbi5jeWFuIHtcbiAgQGluY2x1ZGUgbGlnaHQtb24oJGN5YW4pO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24uYmx1ZSB7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRibHVlKTtcbiAgY29sb3I6ICRibGFjazsgLy8gIWltcG9ydGFudFxufVxuLmxpZ2h0LW9uLmluZGlnbyB7XG4gIEBpbmNsdWRlIGxpZ2h0LW9uKCRpbmRpZ28pO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24udmlvbGV0IHtcbiAgQGluY2x1ZGUgbGlnaHQtb24oJHZpb2xldCk7XG4gIGNvbG9yOiAkYmxhY2s7IC8vICFpbXBvcnRhbnRcbn1cbi5saWdodC1vbi5tYWdlbnRhIHtcbiAgQGluY2x1ZGUgbGlnaHQtb24oJG1hZ2VudGEpO1xuICBjb2xvcjogJGJsYWNrOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24uYmxhY2sge1xuICBAaW5jbHVkZSBsaWdodC1vbigkYmxhY2spO1xuICBjb2xvcjogJHdoaXRlOyAvLyAhaW1wb3J0YW50XG59XG4ubGlnaHQtb24ud2hpdGUge1xuICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICBjb2xvcjogJGRhcmtlckdyYXk7IC8vICFpbXBvcnRhbnRcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGt3LXNldHRpbmctcGFuZWwge1xuICBtYXJnaW46IDVweCA1cHggMCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrZXN0R3JheTsvL2xpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cblxuLmt3LXNldHRpbmctcGFuZWwge1xuICBAaW5jbHVkZSBrdy1zZXR0aW5nLXBhbmVsO1xufVxuXG5AbWl4aW4gbm8taGlnaGxpZ2h0IHtcbiAgLy8td2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5uby1oaWdobGlnaHQge1xuICBAaW5jbHVkZSBuby1oaWdobGlnaHQ7XG59XG4iLCIucGFnZS1oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucGFnZS1zZWN0aW9uIHtcbiAgLy9tYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwOyAvLyAwIDAgNXB4IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRibGFjaywgMTAlKTsvL2xpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAvL2JvcmRlci1yYWRpdXM6IDA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgLy9wYWRkaW5nOiA1cHg7XG4gICAgLy9ib3JkZXItcmFkaXVzOiAxMHB4O1xuICB9XG59XG5cbi5rdy1zZWN0aW9uLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrZXN0R3JheTsgLy8ycHggZ3Jvb3ZlIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gIG1hcmdpbjogMDsvLzAgMCA1cHggMDtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZCwgMTAlKTtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkYXJrZXN0R3JheSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDQlKSk7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICRncmF5Oy8vJGxpZ2h0R3JheTtcbiAgLy9ncmlkLWNvbHVtbjogMSAvIHNwYW4gYWxsO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG5cbi5rdy1zZWN0aW9uLXRvZ2dsZSB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIC8vbWFyZ2luOiAwO1xuICAvL3BhZGRpbmc6IDFweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY2hldnJvbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC8vcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgIH1cbiAgfVxufVxuXG5zZWxlY3Qge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4iLCIua3ctc2V0dGluZ3Mtd3JhcCB7XG4gIG1hcmdpbjogMDtcbiAgLy9tYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwIDAgNXB4IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmxhY2ssIDEwJSk7Ly9saWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgfVxufVxuXG4ua3ctc2V0dGluZ3Mge1xuICBwYWRkaW5nOiAzcHggMDtcbi8vcGFkZGluZzogMCAwIDEwcHggMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3RHcmF5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHggMTBweCAwIDA7XG5cbiAgLy9wYWRkaW5nOiAyMHB4IDA7XG4gIC8vZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gIC8vZGlzcGxheTogZ3JpZDtcbiAgLy9ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAvL2dyaWQtdGVtcGxhdGUtcm93czogYXV0bztcblxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgLy9ncmlkLWF1dG8tcm93czogYXV0byBhdXRvIGF1dG87XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgLy9ncmlkLWF1dG8tcm93czogYXV0byBhdXRvO1xuICB9XG59XG5cblxuICAvKi5rdy1zZXR0aW5ncyB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gIH0qL1xuIiwiLmt3LXNldHRpbmcta2V5cyB7XG4gIEBpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICBncmlkLXJvdzogMTtcbn1cbiAgLmt3LXNldHRpbmcta2V5LWJ1dHRvbnMge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZS1sYXJnZVwiKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgLy9ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgLy9ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnI7XG4gICAgICBncmlkLWNvbHVtbi1nYXA6IDVweDtcbiAgICB9XG4gIH1cbiAgICAua3ctc2V0dGluZy1rZXktYnV0dG9uIHtcbiAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgLy93aWR0aDogMTcuMzMzMzQlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBtYXJnaW46IDhweCBhdXRvOyAvLzNweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcblxuICAgICAgJi5yZWQge1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIG1hcmdpbjogNXB4IGF1dG87XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbjtcblxuICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZCk7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHJlZDtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWQsIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLnJlZG9yYW5nZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZE9yYW5nZSk7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRyZWRPcmFuZ2U7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkT3JhbmdlLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRvcmFuZ2UpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG9yYW5nZSwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYuZ29sZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGdvbGQpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRnb2xkLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi55ZWxsb3cge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3cpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvdywgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYueWVsbG93Z3JlZW4ge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3dHcmVlbik7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3dHcmVlbiwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYuZ3JlZW4ge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRncmVlbik7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRncmVlbjtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRncmVlbiwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYuY3lhbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGN5YW4pO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkY3lhbjtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRjeWFuLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5ibHVlIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkYmx1ZSk7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJsdWUsIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLmluZGlnbyB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGluZGlnbyk7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRpbmRpZ287XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkaW5kaWdvLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi52aW9sZXQge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR2aW9sZXQpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkdmlvbGV0O1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHZpb2xldCwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYubWFnZW50YSB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJG1hZ2VudGEpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkbWFnZW50YTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWdlbnRhLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgIC8vd2lkdGg6IDguNjY2NjclO1xuICAgICAgICAvL21hcmdpbjogMTBweCBhdXRvOyAvLzNweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcblxuICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgLy9oZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgLy9tYXJnaW46IDVweCBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuIiwiLmt3LXNldHRpbmctaW50ZXJ2YWxzIHtcbiAgQGluY2x1ZGUga3ctc2V0dGluZy1wYW5lbDtcbiAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gIGdyaWQtcm93OiA0O1xuICBtYXJnaW46IDEwcHggNXB4IDAgNXB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgIGdyaWQtcm93OiAzO1xuICAgIC8vbWFyZ2luOiAxMHB4IDIuNXB4IDAgNXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cbiAgLmt3LXNldHRpbmctaW50ZXJ2YWwtY29udGVudCB7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDVweDtcbiAgICB9XG4gIH1cbiAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1jaXJjbGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgIG1hcmdpbjogMzNweCBhdXRvIDQwcHggYXV0bztcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwgeyAvLyBTY2FsZSBcImRvdHNcIlxuICAgICAgICBAaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMjVweDtcbiAgICAgICAgbGVmdDogMTI1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIC8vZm9udC1zaXplOiAxLjdyZW07XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlLnJlZCB7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkcmVkKTtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkcmVkO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZCwgMC44KTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZS5yZWRvcmFuZ2Uge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRyZWRPcmFuZ2U7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkT3JhbmdlLCAwLjgpO1xuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZlLm9yYW5nZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJG9yYW5nZSk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRvcmFuZ2UsIDAuOCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUuZ29sZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGdvbGQpO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRnb2xkO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuOCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUueWVsbG93IHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93KTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvdywgMC44KTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZS55ZWxsb3dncmVlbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHllbGxvd0dyZWVuKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkeWVsbG93R3JlZW47XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93R3JlZW4sIDAuOCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUuZ3JlZW4ge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRncmVlbik7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGdyZWVuO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdyZWVuLCAwLjgpO1xuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZlLmN5YW4ge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkY3lhbjtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRjeWFuLCAwLjgpO1xuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZlLmJsdWUge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRibHVlKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjgpO1xuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZlLmluZGlnbyB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGluZGlnbyk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGluZGlnbztcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuOCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUudmlvbGV0IHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkdmlvbGV0KTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkdmlvbGV0O1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHZpb2xldCwgMC44KTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZS5tYWdlbnRhIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkbWFnZW50YSk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJG1hZ2VudGE7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFnZW50YSwgMC44KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAvL2NvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZS5yZWQgKyBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8geyAvLyBBcnBlZ2dpbyAnc3F1YXJlcydcbiAgICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgIGxlZnQ6IDNweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiB1bnNldDsgLy81MCU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7IC8vJHdoaXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkd2hpdGU7XG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYucmVkLmFjdGl2ZSB+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWQsIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYucmVkb3JhbmdlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJlZE9yYW5nZTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZE9yYW5nZSwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkb3JhbmdlLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmdvbGQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYueWVsbG93IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHllbGxvdztcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvdywgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi55ZWxsb3dncmVlbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvd0dyZWVuLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuY3lhbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkY3lhbiwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5ibHVlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmluZGlnbyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbmRpZ287XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYudmlvbGV0IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHZpb2xldDtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHZpb2xldCwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5tYWdlbnRhIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hZ2VudGE7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWdlbnRhLCAwLjgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgIC8vY29sb3I6ICRibGFjaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmFjdGl2ZS5yZWQgKyBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtY2hvcmQge1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuXG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgICAvL2NvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAtMXB4IC0xcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIDFweCAtMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAtMXB4IDFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICAvL2NvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAvL3RleHQtc2hhZG93OiAxcHggMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAtMXB4IC0xcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIDFweCAtMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAtMXB4IDFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmFjdGl2ZS5yZWQgKyBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5yZWQubGlnaHQtb24ge1xuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtYXJwZWdnaW8uYWN0aXZlIHtcblxuICAgICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgJi5yZWQgKyBzcGFuIHtcbiAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWNob3JkLmFjdGl2ZSB7XG5cbiAgICAgICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgLy90ZXh0LXNoYWRvdzogMXB4IDFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSwgLTFweCAtMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAxcHggLTFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSwgLTFweCAxcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4gICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgJi5yZWQgKyBzcGFuIHtcbiAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yIHtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEzM3B4O1xuICAgICAgICBsZWZ0OiAxMzNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdEdyYXk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBjb2xvcjogJGdyYXk7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgJi5oaWRlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZyB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxNDBweDtcbiAgICAgICAgbGVmdDogMTQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrZXN0R3JheTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIGNvbG9yOiAkZ3JheTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAmLmhpZGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIC8qLmt3LXNldHRpbmctaW50ZXJ2YWwtc3BpcmFsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMzAwcHg7XG4gICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfSovXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbCB7IC8vIFNjYWxlc1xuICAgICAgICBAaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxNDFweDtcbiAgICAgICAgbGVmdDogMTM1cHg7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlckdyYXk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgLy90ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgLy9ib3JkZXItdG9wOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAvL2JvcmRlci1yaWdodDogMzBweCBzb2xpZCByZWQ7XG4gICAgICAgIC8vYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgLy9ib3JkZXItbGVmdDogMHB4IHNvbGlkIG9yYW5nZTtcbiAgICAgICAgY29sb3I6ICRkYXJrZXN0R3JheTtcblxuICAgICAgICAmLmhpZGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5yZWQge1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZCk7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5yZWRvcmFuZ2Uge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkcmVkT3JhbmdlO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZE9yYW5nZSwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYub3JhbmdlIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkb3JhbmdlKTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRvcmFuZ2UsIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLmdvbGQge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRnb2xkKTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGdvbGQ7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ29sZCwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYueWVsbG93IHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93KTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHllbGxvdztcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3csIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLnllbGxvd2dyZWVuIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93R3JlZW4pO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkeWVsbG93R3JlZW47XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93R3JlZW4sIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkZ3JlZW4pO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLmN5YW4ge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGN5YW47XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkY3lhbiwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYuYmx1ZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGJsdWUpO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjApO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5pbmRpZ28ge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRpbmRpZ28pO1xuICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkaW5kaWdvO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGluZGlnbywgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgICYudmlvbGV0IHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkdmlvbGV0KTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHZpb2xldDtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR2aW9sZXQsIDAuMCk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAmLm1hZ2VudGEge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJG1hZ2VudGE7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFnZW50YSwgMC4wKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtYXJwZWdnaW8ge1xuICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgLy90b3A6IDJweDsvLzE0MXB4O1xuICAgICAgICAgIC8vbGVmdDogMnB4Oy8vMTM1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7IC8vJHdoaXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHVuc2V0OyAvLzRweDtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuXG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgJiB+IHNwYW4ge1xuICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlZCB+IHNwYW4ge1xuICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYucmVkLmFjdGl2ZSB+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWQsIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYucmVkb3JhbmdlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJlZE9yYW5nZTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZE9yYW5nZSwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkb3JhbmdlLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmdvbGQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYueWVsbG93IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHllbGxvdztcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvdywgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi55ZWxsb3dncmVlbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvd0dyZWVuLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuY3lhbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkY3lhbiwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5ibHVlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmluZGlnbyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbmRpZ287XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYudmlvbGV0IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHZpb2xldDtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHZpb2xldCwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5tYWdlbnRhIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hZ2VudGE7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWdlbnRhLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWNob3JkIHtcbiAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMnB4Oy8vMTQxcHg7XG4gICAgICAgICAgbGVmdDogMnB4Oy8vMTM1cHg7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR3aGl0ZTtcblxuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICYgfiBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIC0xcHggLTFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSwgMXB4IC0xcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIC0xcHggMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlZCB7XG5cbiAgICAgICAgICAgICAgJiB+IHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLWV4dGVuZGVkIHtcbiAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgdG9wOiAxNDVweDtcbiAgICAgICAgICBsZWZ0OiAxMzdweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgLy9jb2xvcjogJGdyYXk7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAvL2p1c3RpZnktY29udGVudDogcmlnaHQ7XG4gICAgICAgICAgLy9hbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpbyB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIC8vcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxOyAvLzFweDsvLzE0MXB4O1xuICAgICAgICAgICAgbGVmdDogMTsgLy8xcHg7Ly8xMzVweDtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgLy9ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMXB4Oy8vMTQxcHg7XG4gICAgICAgICAgICBsZWZ0OiAxcHg7Ly8xMzVweDtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1leHRlbmRlZC1leHRlbmRlZCB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIHRvcDogMTM4cHg7XG4gICAgICAgICAgICBsZWZ0OiAxMzhweDtcbiAgICAgICAgICAgIC8vY29sb3I6ICRncmF5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjY1ZW07XG4gICAgICAgICAgICAvL2p1c3RpZnktY29udGVudDogcmlnaHQ7XG4gICAgICAgICAgICAvL2FsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtYXJwZWdnaW8ge1xuICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOiAxcHg7Ly8xNDFweDtcbiAgICAgICAgICAgICAgbGVmdDogMnB4Oy8vMTM1cHg7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOiAxcHg7Ly8xNDFweDtcbiAgICAgICAgICAgICAgbGVmdDogMnB4Oy8vMTM1cHg7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLXVwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDgwcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkZ3JheTtcblxuICAgICAgICAmLmhpZGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYge1xuICAgICAgICAgIGhlaWdodDogMTg1cHg7IC8vOTBweFxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICB0b3A6IC0xMTVweDsgLy81cHhcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICAgICAgICAgIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cbiAgICAgICAgICBzcGFuIHtcblxuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7IC8vcm90YXRlKC00OGRlZyk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkeWVsbG93R3JlZW47XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xOWRlZyk7IC8vcm90YXRlKC0zMWRlZyk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkeWVsbG93R3JlZW47XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE2ZGVnKTsgLy9yb3RhdGUoLTI0ZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzZGVnKTsgLy9yb3RhdGUoLTE3ZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKTsgLy9yb3RhdGUoLTEwZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoNikge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IC8vcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgLy9jb2xvcjogJGdyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCg3KSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7IC8vcm90YXRlKDEwZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDgpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzZGVnKTsgLy9yb3RhdGUoMTdkZWcpO1xuICAgICAgICAgICAgLy9jb2xvcjogJGN5YW47XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDkpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE2ZGVnKTsgLy9yb3RhdGUoMjRkZWcpO1xuICAgICAgICAgICAgLy9jb2xvcjogJGN5YW47XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDEwKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxOWRlZyk7IC8vcm90YXRlKDMxZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgxMSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpOyAvL3JvdGF0ZSg0OGRlZyk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkY3lhbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtdGhzLWxvd2VyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDgwcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkZ3JheTtcblxuICAgICAgICAmLmhpZGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYge1xuICAgICAgICAgIGhlaWdodDogMTg1cHg7IC8vOTBweFxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICB0b3A6IC0xMTVweDsgLy81cHhcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICAgICAgICAgIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjEwZGVnKTsgLy9yb3RhdGUoLTQ4ZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTk5ZGVnKTsgLy9yb3RhdGUoLTMxZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTk2ZGVnKTsgLy9yb3RhdGUoLTI0ZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTkzZGVnKTsgLy9yb3RhdGUoLTE3ZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCg1KSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTkwZGVnKTsgLy9yb3RhdGUoLTEwZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDYpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IC8vcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgLy9jb2xvcjogJGdyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCg3KSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxOTBkZWcpOyAvL3JvdGF0ZSgxMGRlZyk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkeWVsbG93R3JlZW47XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDgpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE5M2RlZyk7IC8vcm90YXRlKDE3ZGVnKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoOSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTk2ZGVnKTsgLy9yb3RhdGUoMjRkZWcpO1xuICAgICAgICAgICAgLy9jb2xvcjogJHllbGxvd0dyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgxMCkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTk5ZGVnKTsgLy9yb3RhdGUoMzFkZWcpO1xuICAgICAgICAgICAgLy9jb2xvcjogJHllbGxvd0dyZWVuO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDExKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpOyAvL3JvdGF0ZSg0OGRlZyk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkeWVsbG93R3JlZW47XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLTEge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC0yNzBkZWcpO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC0yIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzAwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtMzAwZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtMyB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMzMGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTMzMGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLTQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMjVweCk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLTUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTMwZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtNiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtNjBkZWcpO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC03IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC05MGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLTgge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC0xMjBkZWcpO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC05IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTUwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtMTUwZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtMTAge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSgxMjVweCkgcm90YXRlKC0xODBkZWcpO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC0xMSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZykgdHJhbnNsYXRlKDEyNXB4KSByb3RhdGUoLTIxMGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLTEyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjQwZGVnKSB0cmFuc2xhdGUoMTI1cHgpIHJvdGF0ZSgtMjQwZGVnKTtcbiAgICAgIH1cblxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0xIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoODBweCkgcm90YXRlKC0yNzBkZWcpOy8vIHJvdGF0ZSgtMTgwZGVnKTsvL3JvdGF0ZSgtMjcwZGVnKTtcbiAgICAgICAgLy9jb2xvcjogbGlnaHRlbigkaW5kaWdvLCAyMCUpO1xuICAgICAgICAvL2NvbG9yOiAkaW5kaWdvO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0yIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzAwZGVnKSB0cmFuc2xhdGUoODBweCkgcm90YXRlKC0zMDBkZWcpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHllbGxvdywgMTUlKTtcbiAgICAgICAgLy9jb2xvcjogJHllbGxvdztcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItMyB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMzMGRlZykgdHJhbnNsYXRlKDgwcHgpIHJvdGF0ZSgtMzMwZGVnKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCRtYWdlbnRhLCAxNSUpO1xuICAgICAgICAvL2NvbG9yOiAkbWFnZW50YTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItNCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgpOy8vO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJGdyZWVuLCAxNSUpO1xuICAgICAgICAvL2NvbG9yOiAkZ3JlZW47XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDgycHgpIHJvdGF0ZSgtMzBkZWcpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHJlZE9yYW5nZSwgMTUlKTtcbiAgICAgICAgLy9jb2xvcjogJHJlZE9yYW5nZTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItNiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKSB0cmFuc2xhdGUoODJweCkgcm90YXRlKC02MGRlZyk7XG4gICAgICAgIC8vY29sb3I6IGxpZ2h0ZW4oJGJsdWUsIDE1JSk7XG4gICAgICAgIC8vY29sb3I6ICRibHVlO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci03IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTkwZGVnKTsgLy9yb3RhdGUoLTE4MGRlZyk7Ly8gcm90YXRlKC05MGRlZyk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkZ29sZCwgMTUlKTtcbiAgICAgICAgLy9jb2xvcjogJGdvbGQ7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTgge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTEyMGRlZyk7IC8vcm90YXRlKC0xODBkZWcpOy8vIHJvdGF0ZSgtMTIwZGVnKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR2aW9sZXQsIDE1JSk7XG4gICAgICAgIC8vY29sb3I6ICR2aW9sZXQ7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLW1pbm9yLTkge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNTBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTE1MGRlZyk7IC8vcm90YXRlKC0xODBkZWcpOy8vIHJvdGF0ZSgtMTUwZGVnKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR5ZWxsb3dHcmVlbiwgMTUlKTtcbiAgICAgICAgLy9jb2xvcjogJHllbGxvd0dyZWVuO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1taW5vci0xMCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDgycHgpIHJvdGF0ZSgtMTgwZGVnKTsgLy9yb3RhdGUoLTE4MGRlZyk7Ly8gcm90YXRlKC0xODBkZWcpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHJlZCwgMTUlKTtcbiAgICAgICAgLy9jb2xvcjogJHJlZDtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItMTEge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTIxMGRlZyk7IC8vcm90YXRlKC0xODBkZWcpOy8vIHJvdGF0ZSgtMjEwZGVnKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCRjeWFuLCAxNSUpO1xuICAgICAgICAvL2NvbG9yOiAkY3lhbjtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbWlub3ItMTIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSg4MnB4KSByb3RhdGUoLTI0MGRlZyk7IC8vIHJvdGF0ZSgtMTgwZGVnKTsvLyByb3RhdGUoLTI0MGRlZyk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkb3JhbmdlLCAxNSUpO1xuICAgICAgICAvL2NvbG9yOiAkb3JhbmdlO1xuICAgICAgfVxuXG4gICAgICAvKi5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZ3Mge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgIH0qL1xuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctMSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC0yNzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLTIge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwMGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtMzAwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy0zIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMzBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTMzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctNCB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy01IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLTYge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC02MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctNyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy04IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTEyMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctOSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTUwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC0xNTBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLTEwIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSg0NXB4KSByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1rZXlzaWctMTEge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZykgdHJhbnNsYXRlKDQ1cHgpIHJvdGF0ZSgtMjEwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWtleXNpZy0xMiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjQwZGVnKSB0cmFuc2xhdGUoNDVweCkgcm90YXRlKC0yNDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1hIHtcbiAgICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpIHRyYW5zbGF0ZSg0M3B4KSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDRweCk7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDQ5JSwgJGdyYXkgNDklLCAkZ3JheSA1MSUsIHRyYW5zcGFyZW50IDUxJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IC0ycHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1iIHtcbiAgICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSg0MHB4KSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDQ5JSwgJGdyYXkgNDklLCAkZ3JheSA1MSUsIHRyYW5zcGFyZW50IDUxJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG5cbiAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IC0ycHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwta2V5c2lnLWRvdWJsZS1jIHtcbiAgICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoNDNweCkgcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtNHB4KTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgNDklLCAkZ3JheSA0OSUsICRncmF5IDUxJSwgdHJhbnNwYXJlbnQgNTElLCB0cmFuc3BhcmVudCAxMDAlKTtcblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTJweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDUuNDBlbSk7Ly8gcm90YXRlKC0yNzBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgMzAlKTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwMGRlZykgdHJhbnNsYXRlKDUuMjVlbSk7Ly8gcm90YXRlKC0zMDBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDElKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgMzIlKTtcblxuICAgICAgICBzcGFuIHtcblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTMge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMzBkZWcpIHRyYW5zbGF0ZSg1LjEwZW0pOy8vIHJvdGF0ZSgtMzMwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAyJSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDM0JSk7XG5cbiAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC00IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNC45NWVtKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAzJSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDM2JSk7XG5cbiAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC01IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpIHRyYW5zbGF0ZSg0LjgwZW0pOy8vIHJvdGF0ZSgtMzBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDQlKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgMzglKTtcblxuICAgICAgICBzcGFuIHtcblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTYge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZykgdHJhbnNsYXRlKDQuNjVlbSk7Ly8gcm90YXRlKC02MGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgNSUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA0MCUpO1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtNyB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoNC41MGVtKTsvLyByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCA2JSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDQyJSk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC04IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoNC4zNWVtKSByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgNyUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA0NCUpO1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtOSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDQuMjBlbSkgcm90YXRlKC0xODBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDglKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgNDYlKTtcblxuICAgICAgICBzcGFuIHtcblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTEwIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGUoNC4wNWVtKSByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgOSUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA0OCUpO1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTEge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpIHRyYW5zbGF0ZSgzLjkwZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAxMCUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA1MCUpO1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSgzLjc1ZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAxMSUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA1MiUpO1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyogZXh0ZW5kZWQgaW50ZXJ2YWxzOiAqL1xuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTMge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSg0LjU1ZW0pOy8vIHJvdGF0ZSgtMjcwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAxMiUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA1NCUpO1xuICAgICAgICB0b3A6IDE0M3B4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICAgICAgICAgIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdG9wOiAycHggIWltcG9ydGFudDsvLzE0MXB4O1xuICAgICAgICAgIGxlZnQ6IDFweCAhaW1wb3J0YW50Oy8vMTM1cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTE0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzAwZGVnKSB0cmFuc2xhdGUoNC4zNWVtKTsvLyByb3RhdGUoLTMwMGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMTMlKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgNTYlKTtcbiAgICAgICAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xNSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMzMGRlZykgdHJhbnNsYXRlKDQuMjBlbSk7Ly8gcm90YXRlKC0zMzBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDE0JSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDU4JSk7XG4gICAgICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTYge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzLjkwZW0pO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDE1JSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDYwJSk7XG4gICAgICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMTcge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDMuNzVlbSk7Ly8gcm90YXRlKC0zMGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMTYlKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgNjIlKTtcbiAgICAgICAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0xOCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKSB0cmFuc2xhdGUoMy42MGVtKTsvLyByb3RhdGUoLTYwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAxNyUpO1xuICAgICAgICAvL2NvbG9yOiBkYXJrZW4oJHdoaXRlLCA2NCUpO1xuICAgICAgICBoZWlnaHQ6IDE1cHggIWltcG9ydGFudDtcblxuICAgICAgICBzcGFuIHtcblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTE5IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgzLjQwZW0pOy8vIHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDE4JSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDY2JSk7XG4gICAgICAgIHRvcDogMTQycHggIWltcG9ydGFudDtcblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1jaG9yZCB7XG4gICAgICAgICAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgICAgICAgICBoZWlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgICAgICAgICB0b3A6IDJweCAhaW1wb3J0YW50Oy8vMTQxcHg7XG4gICAgICAgICAgbGVmdDogMXB4ICFpbXBvcnRhbnQ7Ly8xMzVweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLWxhYmVsLTIwIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoMy4yNWVtKSByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMTklKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgNjglKTtcbiAgICAgICAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yMSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDMuMGVtKSByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMjAlKTtcbiAgICAgICAgLy9jb2xvcjogZGFya2VuKCR3aGl0ZSwgNzAlKTtcbiAgICAgICAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC0yMiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDIuODJlbSkgcm90YXRlKC0xODBkZWcpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDIxJSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDcyJSk7XG4gICAgICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMjMge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpIHRyYW5zbGF0ZSgyLjY1ZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7Ly9kYXJrZW4oJGRhcmtlckdyYXksIDIyJSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDc0JSk7XG4gICAgICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMjQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSgyLjUwZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7Ly9kYXJrZW4oJGRhcmtlckdyYXksIDIzJSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDc2JSk7XG4gICAgICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHNwYW4ge1xuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtMjUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSgyLjcwZW0pIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7Ly9kYXJrZW4oJGRhcmtlckdyYXksIDI0JSk7XG4gICAgICAgIC8vY29sb3I6IGRhcmtlbigkd2hpdGUsIDc4JSk7XG4gICAgICAgIHRvcDogMTM3cHggIWltcG9ydGFudDtcbiAgICAgICAgbGVmdDogMTQxcHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtbGFiZWwtY2hvcmQge1xuICAgICAgICAgIHdpZHRoOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1sYWJlbC1hcnBlZ2dpbyB7XG4gICAgICAgICAgd2lkdGg6IDE0cHggIWltcG9ydGFudDtcbiAgICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgICB0b3A6IDBweCAhaW1wb3J0YW50O1xuICAgICAgICAgIGxlZnQ6IDJweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvciB7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMTQ5LjVweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCAkZ3JheSwgdHJhbnNwYXJlbnQsICRncmF5LCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICYuaGlkZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1zZXBhcmF0b3ItMSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvci0yIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1zZXBhcmF0b3ItMyB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtc2VwYXJhdG9yLTQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLXNlcGFyYXRvci01IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTA1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtc2VwYXJhdG9yLTYge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICAgICAgfVxuXG4gICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9ucyB7XG5cbiAgICB9XG4gICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1vcHRpb24tdHlwZSB7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bzsvLzAgYXV0byA1cHggYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC8qXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoMTAwLCAxMDAsIDEwMCwgMC44KSAwJSwgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDEwMCUpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgZGFya2VuKCRtYWdlbnRhLCAyNSUpIDAlLCBsaWdodGVuKCR5ZWxsb3csIDI1JSkgMjUlLCBkYXJrZW4oJGJsdWUsIDI1JSkgNTAlLCAkeWVsbG93R3JlZW4gNTAlLCBkYXJrZW4oJGN5YW4sIDI1JSkgMTAwJSlcbiAgICAgICAgO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjFweDtcbiAgICAgICAgKi9cbiAgICAgIH1cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtdGV4dCB7XG4gICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogJGdyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1vcHRpb24tdHlwZS10ZXh0LWxlZnQge1xuICAgICAgICAgIC8vdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnRlcnZhbC1vcHRpb24tdHlwZS10ZXh0LXJpZ2h0IHtcbiAgICAgICAgICAvL3RleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgLy9jb2xvcjogJGdyZWVuO1xuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtdGV4dC1sb3dlciB7XG4gICAgICAgICAgICAvL2NvbG9yOiAkZ3JlZW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtdGV4dC1sb3dlciB7XG4gICAgICAgICAgY29sb3I6ICRncmF5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtbGFiZWwgeyAvLyBUaGUgY2hhbm5lbCBwYXJ0IG9mIHRoZSBzd2l0Y2hcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMTUlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICAvL2JvcmRlci10b3A6IDJweCBzb2xpZCAkZGFya0dyYXk7XG4gICAgICAgICAgLy9ib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkZGFya0dyYXk7XG4gICAgICAgICAgLy9ib3JkZXItYm90dG9tOiAycHggc29saWQgJGRhcmtHcmF5O1xuICAgICAgICAgIC8vYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkZGFya0dyYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgJjphZnRlciB7IC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKHJnYigyMTAsIDIxMCwgMjEwKSk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLW9wdGlvbi10eXBlLWNoZWNrYm94IHsgLy8gQ2hlY2tib3ggdmFuaXNoZWRcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW50ZXJ2YWwtb3B0aW9uLXR5cGUtY2hlY2tib3g6Y2hlY2tlZCArIC5rdy1zZXR0aW5nLWludGVydmFsLW9wdGlvbi10eXBlLWxhYmVsOjphZnRlciB7ICAvLyBUaGUgY2lyY2xlIHBhcnQgb2YgdGhlIHN3aXRjaCBpbiBcImNoZWNrZWRcIiBzdGF0ZVxuICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKCRncmVlbik7XG4gICAgICAgIGxlZnQ6IDI4cHg7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG4gICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWludGVydmFsLW9wdGlvbi10eXBlLWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1pbnRlcnZhbC1vcHRpb24tdHlwZS1sYWJlbCB7IC8vIENoZWNrYm94IGNoZWNrZWQgdG9nZ2xlIGxhYmVsIGJnIGNvbG9yXG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDIwJSk7XG4gICAgICB9XG5cbiAgICAgICNrd1NldHRpbmdJbnRlcnZhbE9wdGlvblR5cGVUb2dnbGUge1xuXG4gICAgICB9XG4iLCIua3ctc2V0dGluZy1wYXR0ZXJucyB7XG4gIEBpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICBncmlkLXJvdzogMztcbiAgbWFyZ2luOiAxMHB4IDVweCAwIDVweDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxO1xuICAgIGdyaWQtcm93OiAzO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cbn1cbiAgLmt3LXNldHRpbmctcGF0dGVybi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLmNvbGxhcHNlZCB7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcblxuICAgICAgJi5jb2xsYXBzZWQge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxMHB4IDA7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1jb250cm9sLXRvZ2dsZSB7XG4gICAgICAgIHdpZHRoOiAyMjBweDtcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICBtYXJnaW46IGF1dG8gYXV0byAwIGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMDtcblxuICAgICAgICAua3ctc2V0dGluZy1wYXR0ZXJuLWNvbnRyb2wtdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgIHdpZHRoOiAzMnB4OyAvLzQycHg7IC8vNTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7IC8vNDJweDsgLy8yNnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsgLy8xNnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC44KSAhaW1wb3J0YW50O1xuICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1zZWxmOiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDE7XG4gICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogN3B4O1xuICAgICAgICAgICAgcmlnaHQ6IDJweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkYmxhY2ssIDAuOCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHdoaXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4iLCIua3ctc2V0dGluZy1zaGFwZXMge1xuICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgLy9wYWRkaW5nOiAwIDEwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgIGdyaWQtcm93OiBhdXRvO1xuICAgIC8vbWFyZ2luOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7XG4gICAgLy9ncmlkLXJvdzogMTtcbiAgICAvL21hcmdpbjogMDtcbiAgfVxufVxuIiwiLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZXMge1xuICBAaW5jbHVkZSBrdy1zZXR0aW5nLXBhbmVsO1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4LWdyb3c6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAvL21pbi1oZWlnaHQ6IDIyNnB4OyAvL2NhbGMoMTAwJSAtIDMwcHgpO1xuICB9XG59XG4gIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udGVudCB7XG4gICAgLy9oZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgOCUpKTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcblxuICAgICYuY29sbGFwc2VkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG5cbiAgICAgICYuY29sbGFwc2VkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgICAua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2xzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEzMXB4Oy8vMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cbiAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udHJvbC1wcmVzZXRzIHtcbiAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAyNXB4O1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLCAwLjUpLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnRpemUobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgMC41KVxuICAgICAgICAgICksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgdG8gbGVmdCxcbiAgICAgICAgICAgIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLFxuICAgICAgICAgICAgbGlnaHRlbigkZGFya2VzdEdyYXksIDMwJSkgMTVweCxcbiAgICAgICAgICAgIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpIDE1cHgsXG4gICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKVxuICAgICAgICAgIClcbiAgICAgICAgO1xuICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgLy9ib3JkZXItYm90dG9tOiAycHggZ3Jvb3ZlICRkYXJrZXN0R3JheTtcbiAgICAgICAgLy9ib3JkZXI6IDEwcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgLy9vdXRsaW5lOiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IGRhcmtlbigkZGFya2VzdEdyYXksIDUlKTsgLy9kYXJrZW4oJHJlZCwgNSUpO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLXNlbGVjdGVkIHtcbiAgICAgICAgLy8gL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgLy9taW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICB9XG4gICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtc2VsZWN0ZWQtbGlzdCB7IC8vIHVsXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAvL3BhZGRpbmctYm90dG9tOiAyNXB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXG4gICAgICAgICAgbGkgeyAvLyBrdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtc2VsZWN0ZWQtbGlzdC1pdGVtXG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHggNXB4IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHggMCAxMHB4O1xuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAmLmZsYXNoIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJHJlZCwgMCAwIDEwcHggJHJlZCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKi9cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7Ly8yNjBweDtcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgLy9qdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgLy9ib3JkZXItcmFkaXVzOiAyMXB4O1xuICAgICAgICAvL2FsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLy9ib3R0b206IDA7XG4gICAgICB9XG4gICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udHJvbC1tb25vcG9seS10ZXh0IHtcbiAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgY29sb3I6ICRncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LXRleHQtbGVmdCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgLy9jb2xvcjogZGFya2VuKCRyZWRPcmFuZ2UsIDUlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tc2NhbGUtY29udHJvbC1tb25vcG9seS10ZXh0LXJpZ2h0IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIC8vY29sb3I6IGRhcmtlbigkbWFnZW50YSwgNSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWxhYmVsIHsgLy8gVGhlIGNoYW5uZWwgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlIDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgJjphZnRlciB7IC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7IC8vbGlnaHQtb24oJHJlZE9yYW5nZSk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyM3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94IHsgLy8gQ2hlY2tib3ggdmFuaXNoZWRcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtbW9ub3BvbHktbGFiZWw6OmFmdGVyIHsgIC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoIGluIFwiY2hlY2tlZFwiIHN0YXRlXG4gICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpOyAvL2xpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICBsZWZ0OiAyM3B4O1xuICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgIGhlaWdodDogMjNweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudChkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1zY2FsZS1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1wYXR0ZXJuLXNjYWxlLWNvbnRyb2wtbW9ub3BvbHktbGFiZWwgeyAvLyBDaGVja2JveCBjaGVja2VkIHRvZ2dsZSBsYWJlbCBiZyBjb2xvclxuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDIwJSk7XG4gICAgICAgIH1cbiIsIi5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW9zIHtcbiAgQGluY2x1ZGUga3ctc2V0dGluZy1wYW5lbDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZsZXgtZ3JvdzogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIC8vbWluLWhlaWdodDogMjI2cHg7IC8vY2FsYygxMDAlIC0gMzBweCk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG4gIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udGVudCB7XG4gICAgLy9oZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgOCUpKTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcblxuICAgICYuY29sbGFwc2VkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG5cbiAgICAgICYuY29sbGFwc2VkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgICAua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2xzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEzMXB4Oy8vMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cbiAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1wcmVzZXRzIHtcbiAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAyNXB4O1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLCAwLjUpLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnRpemUobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgMC41KVxuICAgICAgICAgICksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgdG8gbGVmdCxcbiAgICAgICAgICAgIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLFxuICAgICAgICAgICAgbGlnaHRlbigkZGFya2VzdEdyYXksIDMwJSkgMTVweCxcbiAgICAgICAgICAgIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpIDE1cHgsXG4gICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKVxuICAgICAgICAgIClcbiAgICAgICAgO1xuICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgLy9ib3JkZXItYm90dG9tOiAycHggZ3Jvb3ZlICRkYXJrZXN0R3JheTtcbiAgICAgICAgLy9ib3JkZXI6IDEwcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgLy9vdXRsaW5lOiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IGRhcmtlbigkZGFya2VzdEdyYXksIDUlKTsgLy9kYXJrZW4oJHJlZCwgNSUpO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLXNlbGVjdGVkIHtcbiAgICAgICAgLy8gL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgLy9taW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICB9XG4gICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tc2VsZWN0ZWQtbGlzdCB7IC8vIHVsXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAvL3BhZGRpbmctYm90dG9tOiAyNXB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgIGxpIHsgLy8ga3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLXNlbGVjdGVkLWxpc3QtaXRlbVxuICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgNXB4IDVweCAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDAgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4IDAgMTBweDtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgJi5mbGFzaCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRyZWQsIDAgMCAxMHB4ICRyZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICovXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1tb25vcG9seSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICAvL2p1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICAvL2FsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLy9ib3R0b206IDA7XG4gICAgICB9XG4gICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1tb25vcG9seS10ZXh0IHtcbiAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgY29sb3I6ICRncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5LXRleHQtbGVmdCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgLy9jb2xvcjogZGFya2VuKCRyZWRPcmFuZ2UsIDUlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLXBhdHRlcm4tYXJwZWdnaW8tY29udHJvbC1tb25vcG9seS10ZXh0LXJpZ2h0IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIC8vY29sb3I6IGRhcmtlbigkbWFnZW50YSwgNSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5LWxhYmVsIHsgLy8gVGhlIGNoYW5uZWwgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlIDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgJjphZnRlciB7IC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7IC8vbGlnaHQtb24oJHJlZE9yYW5nZSk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyM3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94IHsgLy8gQ2hlY2tib3ggdmFuaXNoZWRcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2wtbW9ub3BvbHktbGFiZWw6OmFmdGVyIHsgIC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoIGluIFwiY2hlY2tlZFwiIHN0YXRlXG4gICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpOyAvL2xpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICBsZWZ0OiAyM3B4O1xuICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgIGhlaWdodDogMjNweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudChkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctcGF0dGVybi1hcnBlZ2dpby1jb250cm9sLW1vbm9wb2x5LWNoZWNrYm94OmNoZWNrZWQgKyAua3ctc2V0dGluZy1wYXR0ZXJuLWFycGVnZ2lvLWNvbnRyb2wtbW9ub3BvbHktbGFiZWwgeyAvLyBDaGVja2JveCBjaGVja2VkIHRvZ2dsZSBsYWJlbCBiZyBjb2xvclxuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDIwJSk7XG4gICAgICAgIH1cbiIsIi5rdy1zZXR0aW5nLWNob3JkcyB7XG4gIEBpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICBncmlkLXJvdzogMjtcbiAgbWFyZ2luOiAxMHB4IDVweCAwIDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuICAgIGdyaWQtcm93OiAyO1xuICAgIG1hcmdpbjogMTBweCA1cHggMCA1cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMTtcbiAgICBncmlkLXJvdzogMjtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxufVxuICAua3ctc2V0dGluZy1jaG9yZC1jb250ZW50IHtcbiAgICAvL21pbi1oZWlnaHQ6IDEwMCU7XG4gICAgLy9wYWRkaW5nOiAxMHB4O1xuICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDQ3NXB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmLmNvbGxhcHNlZCB7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuXG4gICAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgICAgIC8vZGlzcGxheTogZmxleDtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gICAgLyogQkVHSU4gS0VZQk9BUkQgKi9cblxuICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2xzLWtleWJvYXJkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICYudmlzaWJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtcHJlc2V0LFxuICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1yb290LFxuICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1pbnZlcnNpb24sXG4gICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXZlcnNpb24sXG4gICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiA5MHB4IDFmcjtcblxuICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXByZXNldC1sYWJlbCxcbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1yb290LWxhYmVsLFxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLWludmVyc2lvbi1sYWJlbCxcbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC12ZXJzaW9uLWxhYmVsLFxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1sYWJlbCB7XG4gICAgICAgICAgd2lkdGg6IDkwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgLy90ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBjb2xvcjogJGdyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLXByZXNldC1zZWxlY3QsXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtcm9vdC1zZWxlY3QsXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaW52ZXJzaW9uLXNlbGVjdCxcbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC12ZXJzaW9uLXNlbGVjdCB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgcGFkZGluZzogMCAxMHB4IDAgMjVweDtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgdHJhbnNwYXJlbnRpemUobGlnaHRlbigkZGFya2VzdEdyYXksIDMwJSksIDAuNSksXG4gICAgICAgICAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSksIDAuNSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgIHRvIGxlZnQsXG4gICAgICAgICAgICAgIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLFxuICAgICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMzAlKSAxNXB4LFxuICAgICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSAxNXB4LFxuICAgICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDtcbiAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDJweCBncm9vdmUgJGRhcmtlc3RHcmF5O1xuICAgICAgICAgIC8vYm9yZGVyOiAxMHB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAvL291dGxpbmU6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgLy9jb2xvcjogZGFya2VuKCRkYXJrZXN0R3JheSwgNSUpOyAvL2RhcmtlbigkcmVkLCA1JSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgIG9wdGlvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaGFuZCB7XG4gICAgICAgICAgd2lkdGg6IDI4MHB4O1xuICAgICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgICAgLy9saW5lYXItZ3JhZGllbnQocmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDAlLCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMTAwJSksXG4gICAgICAgICAgICAvL2xpbmVhci1ncmFkaWVudCh0byByaWdodCwgZGFya2VuKCRjeWFuLCAyNSUpIDAlLCBkYXJrZW4oJGN5YW4sIDI1JSkgNTAlLCBkYXJrZW4oJHJlZCwgMjUlKSA1MCUsIGRhcmtlbigkcmVkLCAyNSUpIDEwMCUpXG4gICAgICAgICAgLy87XG4gICAgICAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgfVxuICAgICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtaGFuZC10ZXh0IHtcbiAgICAgICAgICAgIC8vd2lkdGg6IDU1cHg7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1oYW5kLWNoZWNrYm94IHsgLy8gSGlkZGVuIGNoZWNrYm94XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmOmNoZWNrZWQgKyAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLWhhbmQtbGFiZWw6OmFmdGVyIHsgIC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoIGluIFwiY2hlY2tlZFwiIHN0YXRlXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICAgICAgICAgICAgICBsZWZ0OiAyOHB4O1xuICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1oYW5kLWxhYmVsIHsgLy8gVGhlIGNoYW5uZWwgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXJHcmF5LCAyNSUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRkYXJrR3JheTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHsgLy8gVGhlIGNpcmNsZSBwYXJ0IG9mIHRoZSBzd2l0Y2hcbiAgICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtb2N0YXZlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDkwcHggMWZyIDQ1cHg7XG4gICAgICB9XG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtb2N0YXZlLWxhYmVsIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbHMge1xuICAgICAgICAgIHdpZHRoOiAxMDhweDtcbiAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAvL2FsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7XG4gICAgICAgICAgLy9jdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICB0cmFuc3BhcmVudGl6ZShsaWdodGVuKCRkYXJrZXN0R3JheSwgMzAlKSwgMC41KSxcbiAgICAgICAgICAgICAgdHJhbnNwYXJlbnRpemUobGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSksIDAuNSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICB9XG4gICAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbC1idXR0b24tZGVjcmVtZW50LFxuICAgICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wta2V5Ym9hcmQtb2N0YXZlLWNvbnRyb2wtYnV0dG9uLWluY3JlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudGl6ZShsaWdodGVuKCRkYXJrZXN0R3JheSwgMzAlKSwgMC41KSxcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudGl6ZShsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSwgMC41KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudGl6ZShsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSwgMC41KSxcbiAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLCAwLjUpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAvL2ZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkZGFya2VzdEdyYXksIDUlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLWJ1dHRvbi1kZWNyZW1lbnQge1xuICAgICAgICAgICAgLy9tYXJnaW46IDJweCAwIDJweCAycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLWtleWJvYXJkLW9jdGF2ZS1jb250cm9sLXJlYWRvdXQge1xuICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICAvL21hcmdpbjogMnB4IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zO1xuXG4gICAgICAgICAgICAmLmZsYXNoIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRyZWRPcmFuZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1rZXlib2FyZC1vY3RhdmUtY29udHJvbC1idXR0b24taW5jcmVtZW50IHtcbiAgICAgICAgICAgIC8vbWFyZ2luOiAycHggMnB4IDJweCAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7XG4gICAgICAgICAgfVxuXG5cbiAgICAvKiBCRUdJTiBTVFJJTkdFRCAqL1xuXG4gICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbHMtc3RyaW5nZWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJi52aXNpYmxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1wcmVzZXQsXG4gICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXJvb3QsXG4gICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLWludmVyc2lvbixcbiAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtdmVyc2lvbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiA5MHB4IDFmcjtcblxuICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXByZXNldC1sYWJlbCxcbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1yb290LWxhYmVsLFxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLWludmVyc2lvbi1sYWJlbCxcbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC12ZXJzaW9uLWxhYmVsLFxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLW9jdGF2ZS1sYWJlbCB7XG4gICAgICAgICAgd2lkdGg6IDkwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgLy90ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBjb2xvcjogJGdyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLXByZXNldC1zZWxlY3QsXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtcm9vdC1zZWxlY3QsXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtc3RyaW5nZWQtaW52ZXJzaW9uLXNlbGVjdCxcbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC12ZXJzaW9uLXNlbGVjdCB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgcGFkZGluZzogMCAxMHB4IDAgMjVweDtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgdHJhbnNwYXJlbnRpemUobGlnaHRlbigkZGFya2VzdEdyYXksIDMwJSksIDAuNSksXG4gICAgICAgICAgICAgIHRyYW5zcGFyZW50aXplKGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSksIDAuNSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgIHRvIGxlZnQsXG4gICAgICAgICAgICAgIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAzMCUpLFxuICAgICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMzAlKSAxNXB4LFxuICAgICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSAxNXB4LFxuICAgICAgICAgICAgICBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDtcbiAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDJweCBncm9vdmUgJGRhcmtlc3RHcmF5O1xuICAgICAgICAgIC8vYm9yZGVyOiAxMHB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAvL291dGxpbmU6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgY29sb3I6IGRhcmtlbigkZGFya2VzdEdyYXksIDUlKTsgLy9kYXJrZW4oJHJlZCwgNSUpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1vY3RhdmUge1xuXG4gICAgICAgIH1cbiAgICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLW9jdGF2ZS1sYWJlbCB7XG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXN0cmluZ2VkLW9jdGF2ZS1zbGlkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIC8vdG9wOiA1MCU7XG4gICAgICAgICAgICAvL2xlZnQ6IDUwJTtcbiAgICAgICAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAgICAgICAgIC8vd2lkdGg6IDUwMHB4O1xuICAgICAgICAgICAgLy9oZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQ6ICNmY2ZjZmM7XG4gICAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIC8vYm94LXNoYWRvdzogMHB4IDE1cHggNDBweCAjN0U2RDU3NjY7XG5cblxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE1M3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgLy9wYWRkaW5nOiAwIDEwcHggMCAyNXB4O1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IE9wZW4gU2FucztcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgICAgICAgICAgIC8vd2lkdGg6IDQyMHB4O1xuICAgICAgICAgICAgICAvL2hlaWdodDogMzZweDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgICAgICAgLy9ib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgIC8vb3V0bGluZTogbm9uZTtcblxuICAgICAgICAgICAgICAvLy13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgXHRcdCAgLypcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIFx0XHQgIGhlaWdodDogOHB4O1xuICAgICAgICBcdFx0ICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIFx0XHQgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICAgICAgXHRcdCAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgXHRcdCAgb3BhY2l0eTogMC43O1xuICAgICAgICBcdFx0ICAtd2Via2l0LXRyYW5zaXRpb246IC4ycztcbiAgICAgICAgXHRcdCAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnM7XG4gICAgICAgICAgICAgICovXG5cbiAgICAgICAgXHRcdFx0LyogTW91c2Utb3ZlciBlZmZlY3RzICovXG4gICAgICAgIFx0XHRcdCY6aG92ZXIge1xuICAgICAgICBcdFx0XHQgIC8vb3BhY2l0eTogMTsgLyogRnVsbHkgc2hvd24gb24gbW91c2Utb3ZlciAqL1xuICAgICAgICBcdFx0XHR9XG5cbiAgICAgICAgXHRcdFx0LyogVGhlIHNsaWRlciBoYW5kbGUgKHVzZSAtd2Via2l0LSAoQ2hyb21lLCBPcGVyYSwgU2FmYXJpLCBFZGdlKSBhbmQgLW1vei0gKEZpcmVmb3gpIHRvIG92ZXJyaWRlIGRlZmF1bHQgbG9vaykgKi9cbiAgICAgICAgXHRcdFx0LyomOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIFx0XHRcdCAgLy8td2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIFx0XHRcdCAgLy9hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBcdFx0XHQgIEBpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgXHRcdFx0ICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICAgICAgICBcdFx0XHQgIHdpZHRoOiAyMHB4O1xuICAgICAgICBcdFx0XHQgIGhlaWdodDogMjBweDtcbiAgICAgICAgXHRcdFx0ICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIFx0XHRcdCAgLy9iYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgICAgXHRcdFx0ICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIFx0XHRcdH0qL1xuXG4gICAgICAgIFx0XHRcdC8qJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgIFx0XHRcdFx0QGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICBcdFx0XHRcdEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG4gICAgICAgIFx0XHRcdCAgd2lkdGg6IDIwcHg7XG4gICAgICAgIFx0XHRcdCAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBcdFx0XHQgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgXHRcdFx0ICAvL2JhY2tncm91bmQ6ICRibHVlO1xuICAgICAgICBcdFx0XHQgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgXHRcdFx0fSovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOmZvY3VzIHtcbiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBiYWNrZ3JvdW5kOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICR3aGl0ZSAwLFxuICAgICR3aGl0ZSA5cHgsXG4gICAgJGJsYWNrIDlweCxcbiAgICAkYmxhY2sgMTFweCxcbiAgICAkd2hpdGUgMTFweCxcbiAgICAkd2hpdGUgMjlweCxcbiAgICAkYmxhY2sgMjlweCxcbiAgICAkYmxhY2sgMzFweCxcbiAgICAkd2hpdGUgMzFweCxcbiAgICAkd2hpdGUgNDlweCxcbiAgICAkYmxhY2sgNDlweCxcbiAgICAkYmxhY2sgNTFweCxcbiAgICAkd2hpdGUgNTFweCxcbiAgICAkd2hpdGUgNjlweCxcbiAgICAkYmxhY2sgNjlweCxcbiAgICAkYmxhY2sgNzFweCxcbiAgICAkd2hpdGUgNzFweCxcbiAgICAkd2hpdGUgODlweCxcbiAgICAkYmxhY2sgODlweCxcbiAgICAkYmxhY2sgOTFweCxcbiAgICAkd2hpdGUgOTFweCxcbiAgICAkd2hpdGUgMTA5cHgsXG4gICAgJGJsYWNrIDEwOXB4LFxuICAgICRibGFjayAxMTFweCxcbiAgICAkd2hpdGUgMTExcHgsXG4gICAgJHdoaXRlIDEyOXB4LFxuICAgICRibGFjayAxMjlweCxcbiAgICAkYmxhY2sgMTMxcHgsXG4gICAgJHdoaXRlIDEzMXB4LFxuICAgICR3aGl0ZSAxNTNweCxcbiAgKTtcbn1cblxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogcGluaztcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBwaW5rO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC1zdHJpbmdlZC1vY3RhdmUtcmVhZG91dCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250ZW50LXJlYWRvdXQge1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgLy9wYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDUwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAvL2JvcmRlcjogMXB4IHNvbGlkICRkYXJrZXN0R3JheTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudChsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpIDE4cHgsIHRyYW5zcGFyZW50IDE4cHgsIHRyYW5zcGFyZW50IDIycHgsIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSkgMjJweCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSAxMDAlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDMwcHgsIGRhcmtlbigkZGFya2VyR3JheSwgMTYlKSAzMHB4LCBkYXJrZW4oJGRhcmtlckdyYXksIDE2JSkgNjclLCB0cmFuc3BhcmVudCA2NyUsIHRyYW5zcGFyZW50IDEwMCUpXG4gICAgICAgIDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG8gMCAwIDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udGVudC10aXRsZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbGNkO1xuICAgICAgICAvLyAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAvLyAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZCk7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIC8vbWF4LXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAvL3dpZHRoOiAxMDAlO1xuICAgICAgICAgIC8vZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMCA5MHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMTtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrZXN0R3JheTtcbiAgICAgICAgICAvL2JvcmRlci10b3A6IDJweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICAgICAgLy9ib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZGFya0dyYXk7XG4gICAgICAgICAgLy9ib3JkZXItbGVmdDogMnB4IHNvbGlkICRkYXJrZXJHcmF5O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcblxuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICAvL3BhZGRpbmctdG9wOiAycHg7XG4gICAgICAgICAgICAvL2ZvbnQtZmFtaWx5OiBQcmVzc1N0YXJ0MlA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgLy9jb2xvcjogJGRhcmtlc3RHcmF5O1xuICAgICAgICAgICAgLy9jb2xvcjogJGdyYXk7XG4gICAgICAgICAgICAvL2NvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAvL3RleHQtc2hhZG93OiAwIDAgM3B4ICR3aGl0ZSwgMCAwIDE1cHggJHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtcGxheSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAycHggMCAwIDVweDtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAvL21hcmdpbi10b3A6IGF1dG87IC8vIFB1c2ggdG8gYm90dG9tIG9mIGZsZXgtYm94XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLXBsYXktYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIHdpZHRoOiAzNnB4Oy8vMTQ2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7Ly8yNnB4O1xuICAgICAgICAgICAgLy9tYXJnaW46IDEwcHggMCA4cHggMDtcbiAgICAgICAgICAgIC8vcGFkZGluZzogMCAxNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsvLzE2cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHdoaXRlKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1jaG9yZC1jb250cm9sLW1lc3NhZ2Uge1xuICAgICAgICAgIG1hcmdpbjogMTVweCAwIDAgMDtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCAxMHB4IDEwcHg7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtlc3RHcmF5O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGdyYXksIDEwJSk7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYudmlzaWJsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctY2hvcmQtY29udHJvbC10b2dnbGUge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOyAvLyBQdXNoIHRvIGJvdHRvbSBvZiBmbGV4LWJveFxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWNob3JkLWNvbnRyb2wtdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgIHdpZHRoOiAxNDZweDtcbiAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgbWFyZ2luOiAzcHggMCAzcHggMDtcbiAgICAgICAgICAvL3BhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICAgICAgICAgICAgLy9jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiIsIi5rdy1zZXR0aW5nLXNlcXVlbmNlcyB7XG4gIEBpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuICAua3ctc2V0dGluZy1zZXF1ZW5jZS1jb250ZW50IHtcbiAgICAvL21pbi1oZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy9kaXNwbGF5OiBmbGV4O1xuICB9XG4iLCIua3ctc2V0dGluZy1pbnN0cnVtZW50cyB7XG4gIEBpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICAvL2Rpc3BsYXk6IGdyaWQ7XG4gIC8vZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gYXV0bztcbiAgLy9ncmlkLWF1dG8tcm93czogYXV0bztcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdEdyYXk7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDIwJSk7XG4gIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICRkYXJrZXJHcmF5O1xuICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gIC8vYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7XG4gIC8vbWFyZ2luLWJvdHRvbTogLTEwcHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG5cbiAgfVxufVxuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICBncmlkLWF1dG8tcm93czogYXV0byBhdXRvIGF1dG8gYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvIGF1dG8gYXV0bztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgIGxpbmVhci1ncmFkaWVudChsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpIDI4cHgsIHRyYW5zcGFyZW50IDI4cHgsIHRyYW5zcGFyZW50IDMycHgsIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSkgMzJweCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSAxMDAlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAyNDBweCwgZGFya2VuKCRkYXJrZXJHcmF5LCAxNiUpIDI0MHB4LCBkYXJrZW4oJGRhcmtlckdyYXksIDE2JSkgODQlLCB0cmFuc3BhcmVudCA4NCUsIHRyYW5zcGFyZW50IDEwMCUpXG4gICAgICA7XG4gICAgfVxuICB9XG4gICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC10eXBlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICAgIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrZXJHcmF5O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7XG4gICAgICB9XG4gICAgfVxuICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC10eXBlLWJ1dHRvbnMge1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIC8vbWFyZ2luOiA1cHggMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xuICAgICAgICAvL2JhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGRhcmtlckdyYXksIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC10eXBlLWJ1dHRvbiB7XG5cbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHggNHB4IDRweCAzMHB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggMzBweCAzMHB4IDRweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXR5cGUta2V5Ym9hcmQsIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtdHlwZS1zdHJpbmdlZCB7IC8vIGJ1dHRvbnNcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgd2lkdGg6IDExMHB4O1xuICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQsIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDMxMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAvL3BhZGRpbmc6IDI1cHg7XG4gICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrZXN0R3JheTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgICAgZ3JpZC1yb3c6IDM7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogaW5oZXJpdDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lLXNtYWxsXCIpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgICAgcGFkZGluZzogMCA1cHggMTBweCA1cHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAyO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgIH1cblxuICAgICAgJi5vcGVuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgLy9ibG9jaztcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgfVxuICAgIH1cbiIsIi5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogaW5oZXJpdDtcbn1cbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLXByZXNldHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxuICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1wcmVzZXQtc2VsZWN0IHtcbiAgICAgIEBpbmNsdWRlIGxjZDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgIC8vd2lkdGg6IDI2OHB4O1xuICAgICAgICAvL3dpZHRoOiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIG9wdGlvbiB7XG4gICAgICAgIC8vdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICB9XG4gICAgfVxuXG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b21zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICB6LWluZGV4OiAzO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvL3Bvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvL3otaW5kZXg6IDE7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS10b2dnbGUge1xuICAgICAgd2lkdGg6IDI5NnB4O1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuICAgICAgcGFkZGluZzogMCAyMHB4IDAgNTBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMiUpLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdEdyYXk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNiUpO1xuICAgICAgLy9ib3JkZXItdG9wOiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAvL2JvcmRlci1yaWdodDogMnB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgLy9ib3JkZXItYm90dG9tOiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAvL2JvcmRlci1sZWZ0OiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAvL2hlaWdodDogNjBweDtcbiAgICAgICAgd2lkdGg6IDI5NnB4O1xuICAgICAgICBtYXJnaW46IDEwcHggYXV0byAxMHB4IGF1dG87XG4gICAgICAgIC8vcGFkZGluZzogMCAxNXB4IDVweCAxNXB4O1xuICAgICAgICAvL2FsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogdW5zZXQ7XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB0cmFuc3BhcmVudCAwLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpIDgwJSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkgOTUlLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSAxMDAlKTtcbiAgICAgICAgLy9ib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgLy9ib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAvL2JvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMCkgMCwgZGFya2VuKCRkYXJrZXJHcmF5LCAxMCUpIDgwJSwgJGRhcmtlckdyYXkgMTAwJSkgMSAxMDAlO1xuICAgICAgICAvL2JvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICRkYXJrZXJHcmF5O1xuICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICAvL2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkZGFya2VzdEdyYXksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA0JSkpO1xuICAgICAgfVxuXG4gICAgICAuY2hldnJvbiB7XG4gICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICBpIHtcbiAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAvL3dpZHRoOiAyNHB4O1xuICAgICAgICAgIC8vaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIC8vbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDFweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAudGV4dCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkZ3JheTsvLyRsaWdodEdyYXk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZHMge1xuICAgICAgd2lkdGg6IDI5OHB4O1xuICAgICAgLy9tYXJnaW46IDAgLTE1cHg7XG4gICAgICAvL3BhZGRpbmc6IDAgMTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xOHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogNDtcblxuICAgICAgJi5vcGVuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMjhweDtcbiAgICAgIH1cbiAgICB9XG4gICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWhlYWRlciB7XG4gICAgICAgIHdpZHRoOiAyOThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4OyAvLzgwcHg7XG4gICAgICAgIC8vbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlckdyYXk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKSA3MCUsIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgJGRhcmtlckdyYXksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpKSAxIDEwMCU7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkZGFya2VyR3JheSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1oZWFkZXItdGl0bGUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyOThweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgLy9mbGV4LWdyb3c6IDU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24ge1xuICAgICAgICAvL0BpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gICAgICAgIHdpZHRoOiAyOTZweDtcbiAgICAgICAgbWFyZ2luOiAycHggMXB4IDFweCAxcHg7XG4gICAgICAgIC8vaGVpZ2h0OiA4MHB4O1xuICAgICAgICAvL21hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkgNzAlLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSk7XG4gICAgICAgIC8vYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIC8vYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICRkYXJrZXJHcmF5LCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgICAgIC8vYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG5cbiAgICAgICAgLy9tYXJnaW46IDVweCA1cHggMCA1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgJGRhcmtlc3RHcmF5Oy8vbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIC8vYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24tdGl0bGUge1xuICAgICAgICAgIHdpZHRoOiAyOTZweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpIDcwJSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSkpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrZXN0R3JheTsgLy8ycHggZ3Jvb3ZlIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgLy9tYXJnaW46IDA7Ly8wIDAgNXB4IDA7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGNvbG9yOiAkZ3JheTsvLyRsaWdodEdyYXk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG5cblxuICAgICAgICAgIC8vaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7IC8vMnB4IGdyb292ZSBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIC8vbWFyZ2luOiAwOy8vMCAwIDVweCAwO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDEwJSk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIC8vY29sb3I6ICRncmF5Oy8vJGxpZ2h0R3JheTtcbiAgICAgICAgICAvL2dyaWQtY29sdW1uOiAxIC8gc3BhbiBhbGw7XG4gICAgICAgICAgLy9kaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIC8vYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAvL2p1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1rZXlzLXdyYXAge1xuICAgICAgICB3aWR0aDogMjk2cHg7XG4gICAgICAgIC8vcGFkZGluZzogMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDUlKTtcbiAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTtcbiAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA4JSkpO1xuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWtleXMtaGVhZGVyIHtcbiAgICAgICAgICB3aWR0aDogMjkycHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIC8vbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlckdyYXk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkgNzAlLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSk7XG4gICAgICAgICAgLy9ib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICAvL2JvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICRkYXJrZXJHcmF5LCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgICAgICAgLy9ib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQta2V5cy1oZWFkZXItaGVhZGluZyB7XG4gICAgICAgICAgLy93aWR0aDogNjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAvL3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIGNvbG9yOiAkbGlnaHRHcmF5O1xuXG4gICAgICAgICAgc3BhbiB7XG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgIHdpZHRoOiA1MXB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMjAlKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRkYXJrZXN0R3JheSAwJSwgJGRhcmtlckdyYXkgNTAlLCAkZGFya2VzdEdyYXkgMTAwJSk7IC8vcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRncmF5LCAkZGFya2VyR3JheSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDIwJSksICRkYXJrZXJHcmF5LCAkZ3JheSk7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjaztcbiAgICAgICAgICAgICAgLy9ib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDIwJSk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgIHJpZ2h0OiAtMjZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1rZXlzLWhlYWRlci10aXRsZSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAyOTZweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgLy9mbGV4LWdyb3c6IDU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24ge1xuICAgICAgICAvL0BpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gICAgICAgIHdpZHRoOiAyOTZweDtcbiAgICAgICAgbWFyZ2luOiAycHggMXB4IDFweCAxcHg7XG4gICAgICAgIC8vaGVpZ2h0OiA4MHB4O1xuICAgICAgICAvL21hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkgNzAlLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSk7XG4gICAgICAgIC8vYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIC8vYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICRkYXJrZXJHcmF5LCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgICAgIC8vYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG5cbiAgICAgICAgLy9tYXJnaW46IDVweCA1cHggMCA1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgJGRhcmtlc3RHcmF5Oy8vbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIC8vYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24tdGl0bGUge1xuICAgICAgICAgIHdpZHRoOiAyOTJweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpIDcwJSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSkpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrZXN0R3JheTsgLy8ycHggZ3Jvb3ZlIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgLy9tYXJnaW46IDA7Ly8wIDAgNXB4IDA7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGNvbG9yOiAkZ3JheTsvLyRsaWdodEdyYXk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG5cblxuICAgICAgICAgIC8vaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7IC8vMnB4IGdyb292ZSBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIC8vbWFyZ2luOiAwOy8vMCAwIDVweCAwO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDEwJSk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIC8vY29sb3I6ICRncmF5Oy8vJGxpZ2h0R3JheTtcbiAgICAgICAgICAvL2dyaWQtY29sdW1uOiAxIC8gc3BhbiBhbGw7XG4gICAgICAgICAgLy9kaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIC8vYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAvL2p1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWF0dHJpYnV0ZXMge1xuICAgICAgICAgIC8qd2lkdGg6IDI5NnB4O1xuICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICBtYXJnaW46IDFweCAwIDAgMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgLy9ib3JkZXItdG9wOiAxcHggc29saWQgJG1lZGl1bUdyYXk7XG4gICAgICAgICAgLy9ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDUlKTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICAvL2JvcmRlci1yaWdodDogMXB4IHNvbGlkICRkYXJrZXJHcmF5O1xuICAgICAgICAgIC8vYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgKi9cblxuICAgICAgICAgIC8qXG4gICAgICAgICAgd2lkdGg6IDI5MnB4O1xuICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICBtYXJnaW46IDFweCAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAvL2JvcmRlci10b3A6IDFweCBzb2xpZCAkbWVkaXVtR3JheTtcbiAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA3JSk7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNyUpO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgKi9cblxuICAgICAgICAgIHdpZHRoOiAyOTJweDtcbiAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxcHggMnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAvL2JvcmRlci10b3A6IDFweCBzb2xpZCAkbWVkaXVtR3JheTtcbiAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA3JSk7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNyUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgfVxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgLy93aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC8vbGFiZWwge1xuICAgICAgICAgICAgLy8gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgLy99XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGNkO1xuICAgICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgLy9ib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCA1cHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgIC8vd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgICAvL3BhZGRpbmc6IDAgMCAwIDEwcHg7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDIwJSk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1zdGFydC1ub3RlLW5hbWUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgLy9wYWRkaW5nOiAwIDAgMCAxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLXN0YXJ0LW5vdGUtbmFtZS10ZXh0IHtcblxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1hdHRyaWJ1dGUgc3BhbiB7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWF0dHJpYnV0ZSBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tYXR0cmlidXRlIGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWF0dHJpYnV0ZSBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgICAgICB9XG5cbi8qXG4gICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWZvb3RlciB7XG4gICAgICAgIHdpZHRoOiAzMDhweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya0dyYXk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3RHcmF5O1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgIC8vYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIHRvIGJvdHRvbSwgJGRhcmtlckdyYXksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyAvLzRweCA0cHggMCAwO1xuICAgICAgfVxuKi9cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvciB7XG4gICAgICAgICAgd2lkdGg6IDI5MnB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAvL3BhZGRpbmc6IDdweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICAvKmJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDAlLCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMTAwJSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGRhcmtlbigkY3lhbiwgMjUlKSAwJSwgZGFya2VuKCRjeWFuLCAyNSUpIDUwJSwgZGFya2VuKCRyZWQsIDI1JSkgNTAlLCBkYXJrZW4oJHJlZCwgMjUlKSAxMDAlKVxuICAgICAgICAgIDsqL1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDglKSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyAvLzIxcHg7XG4gICAgICAgIH1cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWtleWJvYXJkLWZvcm0tY3VzdG9tLWZpZWxkLWNvbG9yLXRleHQge1xuICAgICAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlnaHRHcmF5O1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtY29sb3ItY2hlY2tib3ggeyAvLyBIaWRkZW4gY2hlY2tib3hcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCArIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtY29sb3ItbGFiZWw6OmFmdGVyIHsgIC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoIGluIFwiY2hlY2tlZFwiIHN0YXRlXG4gICAgICAgICAgICAgIGxlZnQ6IDIzcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCArIC5rdy1zZXR0aW5nLWluc3RydW1lbnQta2V5Ym9hcmQtZm9ybS1jdXN0b20tZmllbGQtY29sb3ItbGFiZWwge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1rZXlib2FyZC1mb3JtLWN1c3RvbS1maWVsZC1jb2xvci1sYWJlbCB7IC8vIFRoZSBjaGFubmVsIHBhcnQgb2YgdGhlIHN3aXRjaFxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlIDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMjUlKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkZGFya0dyYXk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRkYXJrZXJHcmF5O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHsgLy8gVGhlIGNpcmNsZSBwYXJ0IG9mIHRoZSBzd2l0Y2hcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMjNweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4iLCIua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IGluaGVyaXQ7XG59XG4gIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1wcmVzZXRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cbiAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tcHJlc2V0LXNlbGVjdCB7XG4gICAgICBAaW5jbHVkZSBsY2Q7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAvL3dpZHRoOiAyNjhweDtcbiAgICAgICAgLy93aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICBvcHRpb24ge1xuICAgICAgICAvL3RleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgfVxuICAgIH1cblxuICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogMztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy96LWluZGV4OiAxO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tdG9nZ2xlIHtcbiAgICAgIHdpZHRoOiAyOTZweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvIDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgMjBweCAwIDUwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDIlKSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3RHcmF5O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIC8vYm9yZGVyOiAycHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDYlKTtcbiAgICAgIC8vYm9yZGVyLXRvcDogMnB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgLy9ib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgIC8vYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgLy9ib3JkZXItbGVmdDogMnB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgLy9oZWlnaHQ6IDYwcHg7XG4gICAgICAgIHdpZHRoOiAyOTZweDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG8gMTBweCBhdXRvO1xuICAgICAgICAvL3BhZGRpbmc6IDAgMTVweCA1cHggMTVweDtcbiAgICAgICAgLy9hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAvL2JhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgdHJhbnNwYXJlbnQgMCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSA4MCUsIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpIDk1JSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSkgMTAwJSk7XG4gICAgICAgIC8vYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIC8vYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgLy9ib3JkZXItdG9wOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDApIDAsIGRhcmtlbigkZGFya2VyR3JheSwgMTAlKSA4MCUsICRkYXJrZXJHcmF5IDEwMCUpIDEgMTAwJTtcbiAgICAgICAgLy9ib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAvL2JvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VyR3JheTtcbiAgICAgICAgLy9ib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgICAgICAgLy9iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgIH1cblxuICAgICAgLmNoZXZyb24ge1xuICAgICAgICBAaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgLy93aWR0aDogMjRweDtcbiAgICAgICAgICAvL2hlaWdodDogMjRweDtcbiAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAvL2xpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIC8vcGFkZGluZy1sZWZ0OiAxcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnRleHQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogJGdyYXk7Ly8kbGlnaHRHcmF5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGRzIHtcbiAgICAgIHdpZHRoOiAyOThweDtcbiAgICAgIC8vbWFyZ2luOiAwIC0xNXB4O1xuICAgICAgLy9wYWRkaW5nOiAwIDEwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlckdyYXk7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMThweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDQ7XG5cbiAgICAgICYub3BlbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTI4cHg7XG4gICAgICB9XG4gICAgfVxuICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1oZWFkZXIge1xuICAgICAgICB3aWR0aDogMjk4cHg7XG4gICAgICAgIGhlaWdodDogMThweDsgLy84MHB4O1xuICAgICAgICAvL21hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrZXJHcmF5O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkgNzAlLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICRkYXJrZXJHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSkgMSAxMDAlO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgJGRhcmtlckdyYXksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWhlYWRlci10aXRsZSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAyOThweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgLy9mbGV4LWdyb3c6IDU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24ge1xuICAgICAgICAvL0BpbmNsdWRlIGt3LXNldHRpbmctcGFuZWw7XG4gICAgICAgIHdpZHRoOiAyOTZweDtcbiAgICAgICAgbWFyZ2luOiAycHggMXB4IDFweCAxcHg7XG4gICAgICAgIC8vaGVpZ2h0OiA4MHB4O1xuICAgICAgICAvL21hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGlnaHRlbigkZGFya2VzdEdyYXksIDUlKSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSkgNzAlLCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKSk7XG4gICAgICAgIC8vYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIC8vYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgLy9ib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICRkYXJrZXJHcmF5LCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgICAgIC8vYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG5cbiAgICAgICAgLy9tYXJnaW46IDVweCA1cHggMCA1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgJGRhcmtlc3RHcmF5Oy8vbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgIC8vYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXNlY3Rpb24tdGl0bGUge1xuICAgICAgICAgIHdpZHRoOiAyOTJweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpIDcwJSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSkpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrZXN0R3JheTsgLy8ycHggZ3Jvb3ZlIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgLy9tYXJnaW46IDA7Ly8wIDAgNXB4IDA7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGNvbG9yOiAkZ3JheTsvLyRsaWdodEdyYXk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG5cblxuICAgICAgICAgIC8vaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7IC8vMnB4IGdyb292ZSBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgIC8vbWFyZ2luOiAwOy8vMCAwIDVweCAwO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQsIDEwJSk7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNCUpKTtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIC8vY29sb3I6ICRncmF5Oy8vJGxpZ2h0R3JheTtcbiAgICAgICAgICAvL2dyaWQtY29sdW1uOiAxIC8gc3BhbiBhbGw7XG4gICAgICAgICAgLy9kaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIC8vYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAvL2p1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eSB7XG4gICAgICAgICAgd2lkdGg6IDI5MnB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAvL3BhZGRpbmc6IDdweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICAvKmJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDAlLCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMTAwJSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGRhcmtlbigkY3lhbiwgMjUlKSAwJSwgZGFya2VuKCRjeWFuLCAyNSUpIDUwJSwgZGFya2VuKCRyZWQsIDI1JSkgNTAlLCBkYXJrZW4oJHJlZCwgMjUlKSAxMDAlKVxuICAgICAgICAgIDsqL1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDglKSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyAvLzIxcHg7XG4gICAgICAgIH1cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS10ZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0R3JheTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS1jaGVja2JveCB7IC8vIEhpZGRlbiBjaGVja2JveFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJjpjaGVja2VkICsgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1jaGlyYWxpdHktbGFiZWw6OmFmdGVyIHsgIC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoIGluIFwiY2hlY2tlZFwiIHN0YXRlXG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICAgICAgICAgICAgICBsZWZ0OiAyOHB4O1xuICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpOyAvL2xpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICAgICAgbGVmdDogMjNweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMjNweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWNoaXJhbGl0eS1sYWJlbCB7IC8vIFRoZSBjaGFubmVsIHBhcnQgb2YgdGhlIHN3aXRjaFxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlIDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VyR3JheSwgMjUlKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkZGFya0dyYXk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRkYXJrZXJHcmF5O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHsgLy8gVGhlIGNpcmNsZSBwYXJ0IG9mIHRoZSBzd2l0Y2hcbiAgICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7IC8vbGlnaHQtb24oJHJlZE9yYW5nZSk7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtZnJldHRlZCB7XG4gICAgICAgICAgd2lkdGg6IDI5MnB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAvL3BhZGRpbmc6IDdweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICAvKmJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIDAlLCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkgMTAwJSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGRhcmtlbigkY3lhbiwgMjUlKSAwJSwgZGFya2VuKCRjeWFuLCAyNSUpIDUwJSwgZGFya2VuKCRyZWQsIDI1JSkgNTAlLCBkYXJrZW4oJHJlZCwgMjUlKSAxMDAlKVxuICAgICAgICAgIDsqL1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgbGlnaHRlbigkZGFya2VzdEdyYXksIDglKSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyAvLzIxcHg7XG4gICAgICAgIH1cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZyZXR0ZWQtdGV4dCB7XG4gICAgICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgY29sb3I6ICRsaWdodEdyYXk7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLWN1c3RvbS1maWVsZC1mcmV0dGVkLWNoZWNrYm94IHsgLy8gSGlkZGVuIGNoZWNrYm94XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmOmNoZWNrZWQgKyAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZyZXR0ZWQtbGFiZWw6OmFmdGVyIHsgIC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoIGluIFwiY2hlY2tlZFwiIHN0YXRlXG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICAgICAgICAgICAgICBsZWZ0OiAyOHB4O1xuICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpOyAvL2xpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICAgICAgbGVmdDogMjNweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMjNweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZyZXR0ZWQtbGFiZWwgeyAvLyBUaGUgY2hhbm5lbCBwYXJ0IG9mIHRoZSBzd2l0Y2hcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRhcmtlckdyYXksIDI1JSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGRhcmtHcmF5O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya2VzdEdyYXksIDUlKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkZGFya2VyR3JheTtcblxuICAgICAgICAgICAgJjphZnRlciB7IC8vIFRoZSBjaXJjbGUgcGFydCBvZiB0aGUgc3dpdGNoXG4gICAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkY3lhbik7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkY3lhbjtcbiAgICAgICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbigkd2hpdGUpOyAvL2xpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB3aWR0aDogMjNweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyM3B4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudChkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3Mtd3JhcCB7XG4gICAgICAgICAgd2lkdGg6IDI5NnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTtcbiAgICAgICAgICAvL2JvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCBsaWdodGVuKCRkYXJrZXN0R3JheSwgOCUpKTtcbiAgICAgICAgfVxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncy1oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDI5MnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgLy9tYXJnaW46IDAgMCA1cHggMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSksIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpIDcwJSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSkpO1xuICAgICAgICAgICAgLy9ib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICAgIC8vYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIC8vYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkZGFya2VyR3JheSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlO1xuICAgICAgICAgICAgLy9ib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgICAgLyoua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3MtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgLy9mbGV4LWdyb3c6IDU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfSovXG4gICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLXN0cmluZ3MtaGVhZGluZyB7XG4gICAgICAgICAgICAgIC8vd2lkdGg6IDYwcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIC8vdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHRHcmF5O1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ2cHg7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1OHB4O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2MnB4O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2MHB4O1xuXG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDIwJSk7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGRhcmtlc3RHcmF5IDAlLCAkZGFya2VyR3JheSA1MCUsICRkYXJrZXN0R3JheSAxMDAlKTsgLy9yZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRncmF5LCAkZGFya2VyR3JheSwgbGlnaHRlbigkZGFya2VzdEdyYXksIDIwJSksICRkYXJrZXJHcmF5LCAkZ3JheSk7XG4gICAgICAgICAgICAgICAgICAvL2JvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgICAgICAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMjAlKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0zcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmOm50aC1jaGlsZCg2KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncyB7XG4gICAgICAgICAgICB3aWR0aDogMjkycHg7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrZXN0R3JheTtcbiAgICAgICAgICB9XG4gICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tc3RyaW5nIHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICBtYXJnaW46IDFweCAwO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAvL2JvcmRlci10b3A6IDFweCBzb2xpZCAkbWVkaXVtR3JheTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTAlKTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDclKTtcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNyUpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDVweDtcblxuICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tc3RyaW5nLXN1YnRyYWN0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDZweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgNXB4IDA7XG4gICAgICAgICAgICAgICAgICAvL2xpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXJHcmF5Oy8vJHJlZDtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZy1udW1iZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZy1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIC8vd2lkdGg6IDU4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLy9sYWJlbCB7XG4gICAgICAgICAgICAgICAgLy8gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgICAgIC8vfVxuXG4gICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGNkO1xuICAgICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vbigkcmVkKTtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogNjJweDtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgNHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpIHtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgOHB4O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNikge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1zdHJpbmdlZC1mb3JtLXN0cmluZy1uYW1lIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncy1hZGQtd3JhcCB7XG4gICAgICAgICAgICB3aWR0aDogMjkycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAvL21hcmdpbjogMCAwIDVweCAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRkYXJrR3JheTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3RHcmF5O1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgNSUpO1xuICAgICAgICAgICAgLy9ib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICAgIC8vYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgICAgICAvL2JvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KCB0byBib3R0b20sICRkYXJrZXJHcmF5LCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDsgLy80cHggNHB4IDAgMDtcblxuICAgICAgICAgICAgbWFyZ2luOiAxcHggMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCA1JSk7XG4gICAgICAgICAgICAvL2JvcmRlcjogMXB4IHNvbGlkICRkYXJrZXN0R3JheTtcbiAgICAgICAgICAgIC8vYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgICAgICAvL2JvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcmtlckdyYXk7XG5cbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkZGFya2VzdEdyYXksIDEwJSk7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNyUpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgNyUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtc3RyaW5nZWQtZm9ybS1jdXN0b20tZmllbGQtc3RyaW5ncy1hZGQge1xuICAgICAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMXB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGRhcmtlckdyYXk7XG4gICAgICAgICAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuLyogICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZvb3RlciB7XG4gICAgICAgIHdpZHRoOiAzMDhweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkZGFya0dyYXk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3RHcmF5O1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtlckdyYXk7XG4gICAgICAgIC8vYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIHRvIGJvdHRvbSwgJGRhcmtlckdyYXksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyAvLzRweCA0cHggMCAwO1xuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LXN0cmluZ2VkLWZvcm0tY3VzdG9tLWZpZWxkLWZvb3Rlci1hZGQge1xuICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDFweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFya2VyR3JheTtcbiAgICAgICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuKi9cbiIsIi8qKlxuICAqIEtFWS1XSElaIEdSSUQgU1RZTEVTXG4gICovXG5cblxuLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXdyYXAge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7IC8vIFRvIHNpdCBiZWxvdyBleHBhbmRlZCBpbnN0cnVtZW50IHNldHRpbmdzIGZvcm1cblxuICB3aWR0aDogMTAwJTtcbiAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gIGdyaWQtcm93OiAyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIC8vZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG5cbiAgICAmLm51ZGdlZCB7XG4gICAgICAvL3BhZGRpbmctcmlnaHQ6IDMwOHB4O1xuICAgICAgLy9ncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAvL2dyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuXG4gICAgJi5udWRnZWQge1xuICAgICAgcGFkZGluZy1yaWdodDogMzA4cHg7XG4gICAgICAvL2dyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuICAgIH1cbiAgfVxufVxuICAucm90YXRpb24td3JhcHBlci1vdXRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbiAgICAucm90YXRpb24td3JhcHBlci1pbm5lciB7XG4gICAgICBwYWRkaW5nOiA1MCUgMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gICAgLmVsZW1lbnQtdG8tcm90YXRlIHtcblxuICAgIH1cbiAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWNvbnRhaW5lciB7XG4gICAgLy9wb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy96LWluZGV4OiAwOyAvLyBUbyBzaXQgYmVsb3cgZXhwYW5kZWQgaW5zdHJ1bWVudCBzZXR0aW5ncyBmb3JtXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgLy90b3A6IDA7XG4gICAgLy90cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IC8vdHJhbnNsYXRlWSgxMDAlKVxuXG4vKlxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoMCwgLTEwMCUpO1xuICAgIG1hcmdpbi10b3A6IC01MCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdW5zZXQ7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGUoMCk7XG4gICAgfVxuICAgICovXG4gIH1cbiAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtY29udGFpbmVyLXRvcC1iYXIge1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFya2VzdEdyYXksIDE1JSk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZGFya2VzdEdyYXk7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRkYXJrZXN0R3JheTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICYuZGlzcGxheWVkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkIHtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtlc3RHcmF5O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAmLnZpc2libGUge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICAgLyoua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZSB7XG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb247XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5hY3RpdmUucmVkIHtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZCk7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWQsIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuYWN0aXZlLnJlZG9yYW5nZSB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkT3JhbmdlLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmFjdGl2ZS5vcmFuZ2Uge1xuICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkb3JhbmdlKTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG9yYW5nZSwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmUuZ29sZCB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRnb2xkKTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuYWN0aXZlLnllbGxvdyB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3cpO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93LCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmFjdGl2ZS55ZWxsb3dncmVlbiB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3dHcmVlbik7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3dHcmVlbiwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmUuZ3JlZW4ge1xuICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkZ3JlZW4pO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuYWN0aXZlLmN5YW4ge1xuICAgICAgICAgICAgLy9AaW5jbHVkZSBsaWdodC1vZmY7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkY3lhbik7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRjeWFuLCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmFjdGl2ZS5ibHVlIHtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGJsdWUpO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkYmx1ZSwgMC44KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmUuaW5kaWdvIHtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGluZGlnbyk7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuOCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuYWN0aXZlLnZpb2xldCB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9mZjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR2aW9sZXQpO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkdmlvbGV0LCAwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmFjdGl2ZS5tYWdlbnRhIHtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJG1hZ2VudGEpO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFnZW50YSwgMC44KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyYuaGlkZGVuIHtcbiAgICAgICAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIC8vdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIC8vfVxuICAgICAgICB9XG4gICAgICAgICovXG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjayB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnRpemUoJGxpZ2h0R3JheSwgMC44KTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjcpOyAvLzhweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkZGFya2VyR3JheSwgMC41KTsgLy8kZGFya2VzdEdyYXk7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkbGlnaHRHcmF5LCAwLjgpO1xuICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTsgLy8kZGFya2VyR3JheTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgLy93aWR0aDogMTZweDtcbiAgICAgICAgICAvL3dpZHRoOiAxLjM5ODYwMSU7XG4gICAgICAgICAgLy9oZWlnaHQ6IDk4cHg7XG4gICAgICAgICAgLy9oZWlnaHQ6IDguNTY2NDI4OTIlO1xuICAgICAgICAgIC8vYXNwZWN0LXJhdGlvOiA4LzQ5O1xuICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrOyAvL2xpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxMCUpO1xuXG4gICAgICAgICAgJi5pbnZlcnRlZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRkYXJrR3JheSwgMC44KTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCRkYXJrZXJHcmF5LCAwLjcpOyAvLzhweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkZGFya2VyR3JheSwgMC41KTsgLy8kZGFya2VzdEdyYXk7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGRhcmtHcmF5LCAwLjgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG5vLWhpZ2hsaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAxNzUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNzUlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiA1JTtcbiAgICAgICAgICAgIGxlZnQ6IC0zNSU7XG4gICAgICAgICAgICAvL3otaW5kZXg6IDQ7XG4gICAgICAgICAgICBjb2xvcjogI2FhYTsgLy8kd2hpdGU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgIC8vei1pbmRleDogMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnByZXNzZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZGFya0dyYXksIDAuOCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZGFya2VyR3JheSwgMC43KTsgLy84cHggc29saWQgdHJhbnNwYXJlbnRpemUoJGRhcmtlckdyYXksIDAuNSk7IC8vJGRhcmtlc3RHcmF5O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRkYXJrR3JheSwgMC44KTtcblxuICAgICAgICAgICAgJi5yZWQge1xuICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkcmVkKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZCwgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnJlZG9yYW5nZSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHJlZE9yYW5nZTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkT3JhbmdlLCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub3JhbmdlIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJG9yYW5nZSk7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRvcmFuZ2UsIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5nb2xkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGdvbGQpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGdvbGQ7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi55ZWxsb3cge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93KTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICR5ZWxsb3c7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvdywgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnllbGxvd2dyZWVuIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHllbGxvd0dyZWVuKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93R3JlZW4sIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5ncmVlbiB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRncmVlbik7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdyZWVuLCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuY3lhbiB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRjeWFuLCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYmx1ZSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRibHVlKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaW5kaWdvIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGluZGlnbyk7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkaW5kaWdvO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi52aW9sZXQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkdmlvbGV0KTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICR2aW9sZXQ7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHZpb2xldCwgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm1hZ2VudGEge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkbWFnZW50YSk7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkbWFnZW50YTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFnZW50YSwgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yZWQge1xuXG4gICAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAvL3RleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjYWFhLCAtMXB4IDFweCAwICNhYWEsIDFweCAtMXB4IDAgI2FhYSwgMXB4IDFweCAwICNhYWE7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLmhpZGRlbiB7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYWFhO1xuICAgICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi5pbnZlcnRlZCB7XG5cbiAgICAgICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjYWFhO1xuICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi5pbnZlcnRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wcmVzc2VkIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay1hcnBlZ2dpbyB7XG4gICAgICAgICAgICAvL3dpZHRoOiAxMDAlOy8vOTQlO1xuICAgICAgICAgICAgLy9oZWlnaHQ6IDA7XG4gICAgICAgICAgICAvL21hcmdpbi1ib3R0b206IDA7Ly8zJTtcbiAgICAgICAgICAgIC8vcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAtIDRweCk7Ly85NCU7XG4gICAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIC8vYm90dG9tOiAyLjUlO1xuICAgICAgICAgICAgLy9sZWZ0OiAwOy8vMyU7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTsgLy8kZ3JheTtcbiAgICAgICAgICAgIC8vYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgLy9vdXRsaW5lOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgLy9ib3JkZXItcmFkaXVzOiA1MCU7Ly80cHg7XG4gICAgICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDIuNSUpO1xuICAgICAgICAgICAgLy96LWluZGV4OiA0O1xuXG4gICAgICAgICAgICB3aWR0aDogMzAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDMwMCUgLSA0cHgpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgICAgICAgICAvL291dGxpbmU6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDUwJTsvLzRweDtcbiAgICAgICAgICAgIC8vei1pbmRleDogMztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgICAgICAgICAmLnJlZCB+IC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1ub3RlLWxhYmVsIHNwYW4ge1xuICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgI2FhYSwgLTFweCAxcHggMCAjYWFhLCAxcHggLTFweCAwICNhYWEsIDFweCAxcHggMCAjYWFhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5yZWRvcmFuZ2Uge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyZWRPcmFuZ2U7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZE9yYW5nZSwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub3JhbmdlIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRvcmFuZ2UsIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmdvbGQge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRnb2xkO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRnb2xkLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi55ZWxsb3cge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR5ZWxsb3c7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvdywgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYueWVsbG93Z3JlZW4ge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93R3JlZW4sIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdyZWVuLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jeWFuIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY3lhbjtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkY3lhbiwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYmx1ZSB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJsdWUsIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmluZGlnbyB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGluZGlnbztcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkaW5kaWdvLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi52aW9sZXQge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR2aW9sZXQ7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHZpb2xldCwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWFnZW50YSB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hZ2VudGE7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG1hZ2VudGEsIDAuOCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaGlkZGVuIHtcbiAgICAgICAgICAgICAgLy9kaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1ibGFjay1jaG9yZCB7XG4gICAgICAgICAgICB3aWR0aDogMzAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDMwMCUgLSA0cHgpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgICAgICAgICAvL291dGxpbmU6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7Ly80cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSwgLTFweCAtMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAxcHggLTFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSwgLTFweCAxcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucmVkIHtcblxuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS13aGl0ZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgLy93aWR0aDogMjJweDtcbiAgICAgICAgICAvL3dpZHRoOiAxLjkyMzA3NiU7XG4gICAgICAgICAgLy9oZWlnaHQ6IDE0OHB4O1xuICAgICAgICAgIC8vaGVpZ2h0OiAxMi45MzcwNTU5MiU7XG4gICAgICAgICAgLy9hc3BlY3QtcmF0aW86IDExLzc0O1xuICAgICAgICAgIC8vMC4wODc0MTI1NFxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbm8taGlnaGxpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDIuNSU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgY29sb3I6ICNhYWE7IC8vJGJsYWNrO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgIC8vei1pbmRleDogMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmludmVydGVkIHtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjYWFhOyAvLyR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnByZXNzZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuXG4gICAgICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWQpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkLCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYucmVkb3JhbmdlIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZE9yYW5nZSk7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkcmVkT3JhbmdlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWRPcmFuZ2UsIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkb3JhbmdlKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG9yYW5nZSwgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmdvbGQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkZ29sZCk7XG4gICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ29sZCwgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnllbGxvdyB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR5ZWxsb3cpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHllbGxvdztcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93LCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYueWVsbG93Z3JlZW4ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93R3JlZW4pO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHllbGxvd0dyZWVuO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3dHcmVlbiwgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGdyZWVuKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRncmVlbjtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jeWFuIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGN5YW4pO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGN5YW47XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGN5YW4sIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5ibHVlIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGJsdWUpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJsdWUsIDAuMCk7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pbmRpZ28ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkaW5kaWdvKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRpbmRpZ287XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGluZGlnbywgMC4wKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnZpb2xldCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCR2aW9sZXQpO1xuICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHZpb2xldDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkdmlvbGV0LCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWFnZW50YSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRtYWdlbnRhO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWdlbnRhLCAwLjApO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmludmVydGVkIHtcblxuICAgICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucmVkIHtcblxuICAgICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLmhpZGRlbiB7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYWFhO1xuICAgICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi5pbnZlcnRlZCB7XG5cbiAgICAgICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQtbm90ZS1sYWJlbCB7XG5cbiAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cbiAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjYWFhO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi5pbnZlcnRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXG4gICAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgLy9jb2xvcjogI2FhYTsgLy8kYmxhY2s7XG5cbiAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJlc3NlZCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktd2hpdGUtYXJwZWdnaW8ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7Ly85NCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOy8vMyU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC0gNHB4KTsvLzk0JTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMi41JTtcbiAgICAgICAgICAgIGxlZnQ6IDA7Ly8zJTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlOyAvLyRncmF5O1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgLy9vdXRsaW5lOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgLy9ib3JkZXItcmFkaXVzOiA1MCU7Ly80cHg7XG4gICAgICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDIuNSUpO1xuICAgICAgICAgICAgLy96LWluZGV4OiA0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAgICAgICAgICYucmVkIH4gLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLW5vdGUtbGFiZWwgc3BhbiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjYWFhLCAtMXB4IDFweCAwICNhYWEsIDFweCAtMXB4IDAgI2FhYSwgMXB4IDFweCAwICNhYWE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucmVkIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWQsIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnJlZG9yYW5nZSB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJlZE9yYW5nZTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkcmVkT3JhbmdlLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG9yYW5nZSwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZ29sZCB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdvbGQ7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnllbGxvdyB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHllbGxvdztcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93LCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi55ZWxsb3dncmVlbiB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHllbGxvd0dyZWVuO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3dHcmVlbiwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZ3JlZW4ge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRncmVlbjtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN5YW4ge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjeWFuO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRjeWFuLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5ibHVlIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkYmx1ZSwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaW5kaWdvIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5kaWdvO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnZpb2xldCB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHZpb2xldDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkdmlvbGV0LCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5tYWdlbnRhIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWFnZW50YTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFnZW50YSwgMC44KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgICAgICAvL2Rpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LXdoaXRlLWNob3JkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOy8vOTQlO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsvLzMlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAtIDRweCk7Ly85NCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDIuNSU7XG4gICAgICAgICAgICBsZWZ0OiAwOy8vMyU7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTsgLy8kZ3JheTtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgIC8vb3V0bGluZTogMnB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsvLzRweDtcbiAgICAgICAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMi41JSk7XG4gICAgICAgICAgICB6LWluZGV4OiA0O1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAtMXB4IC0xcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIDFweCAtMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpLCAtMXB4IDFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yZWQge1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1jIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1jLXNoYXJwIHtcbiAgICAgICAgICAvL21hcmdpbjogMCAtNXB4IDAgLTExcHg7XG4gICAgICAgICAgLy9tYXJnaW46IDAgLTAuNDM3MDYyNyUgMCAtMC45NjE1Mzc5NCU7XG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWQge1xuXG4gICAgICAgIH1cblxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQta2V5Ym9hcmQta2V5LWQtc2hhcnAge1xuICAgICAgICAgIC8vbWFyZ2luOiAwIC0xMXB4IDAgLTVweDtcbiAgICAgICAgICAvL21hcmdpbjogMCAtMC45NjE1Mzc5NCUgMCAtMC40MzcwNjI3JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZSB7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZiB7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZi1zaGFycCB7XG4gICAgICAgICAgLy9tYXJnaW46IDAgLTNweCAwIC0xM3B4O1xuICAgICAgICAgIC8vbWFyZ2luOiAwIC0wLjI2MjIzNzYyJSAwIC0xLjEzNjM2MzAyJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZyB7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1rZXlib2FyZC1rZXktZy1zaGFycCB7XG4gICAgICAgICAgLy9tYXJnaW46IDAgLThweCAwIC04cHg7XG4gICAgICAgICAgLy9tYXJnaW46IDAgLTAuNjk5MzAwMzIlIDAgLTAuNjk5MzAwMzIlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1hIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1hLXNoYXJwIHtcbiAgICAgICAgICAvL21hcmdpbjogMCAtMTNweCAwIC0zcHg7XG4gICAgICAgICAgLy9tYXJnaW46IDAgLTEuMTM2MzYzMDIlIDAgLTAuMjYyMjM3NjIlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLWtleWJvYXJkLWtleS1iIHtcblxuICAgICAgICB9XG4gICAgICAgICovXG5cbiAgICAgIC8vIFN0cmluZ2VkOlxuXG4gICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICYudmlzaWJsZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtc3RyaW5nIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgICAmLmxlZnR5IHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgLy9mbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExMTAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAvL2N1cnNvcjogZ3JhYmJpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQge1xuICAgICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGxpZ2h0R3JheSA1JSwgJGRhcmtlc3RHcmF5IDUlLCAkbGlnaHRHcmF5IDM1JSwgJGxpZ2h0R3JheSA2NSUsICRkYXJrZXN0R3JheSA5NSUsICRsaWdodEdyYXkgOTUlKTtcblxuICAgICAgICAgICAgICAmLmZyZXRsZXNzIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLmxlZnR5IHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLXN0cmluZyB7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3RHcmF5O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRhcmtlc3RHcmF5LCAkZ3JheSwgJGRhcmtlc3RHcmF5KTtcblxuICAgICAgICAgICAgICAmLmxlZnR5IHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLXN0cmluZy13b3VuZCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTc4ZGVnLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMC41KSAxcHgsIHJnYmEoMjAwLCAyMDAsIDIwMCwgMC41KSAycHgsIHJnYmEoMjAwLCAyMDAsIDIwMCwgMC41KSAzcHgpLCBsaW5lYXItZ3JhZGllbnQoJGJsYWNrLCAkbGlnaHRHcmF5LCAkYmxhY2spO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbCB7XG4gICAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb2ZmO1xuICAgICAgICAgICAgICAvL0BpbmNsdWRlIG5vLWhpZ2hsaWdodDtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIG1heC13aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxLzE7XG4gICAgICAgICAgICAgIC8vaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgLy92aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgei1pbmRleDogNDsvLzU7IC8vMztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAvL3RyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICRibGFjaywgLTFweCAxcHggMCAkYmxhY2ssIDFweCAtMXB4IDAgJGJsYWNrLCAxcHggMXB4IDAgJGJsYWNrO1xuXG4gICAgICAgICAgICAgICYubGVmdHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICAgJi5hY3RpdmVUZW1wb3JhcmlseSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAvL2NvbG9yOiAkYmxhY2s7XG5cbiAgICAgICAgICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi5wcmVzc2VkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheTtcbiAgICAgICAgICAgICAgICAvL2NvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb2ZmO1xuXG4gICAgICAgICAgICAgICAgJi5yZWQge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5yZWQge1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJHJlZCk7XG4gICAgICAgICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZCwgMC4wKTtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYucmVkb3JhbmdlIHtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRyZWRPcmFuZ2UpO1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRyZWRPcmFuZ2U7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWRPcmFuZ2UsIDAuMCk7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLm9yYW5nZSB7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkb3JhbmdlKTtcbiAgICAgICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkb3JhbmdlLCAwLjApO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5nb2xkIHtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRnb2xkKTtcbiAgICAgICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdvbGQsIDAuMCk7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLnllbGxvdyB7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93KTtcbiAgICAgICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkeWVsbG93LCAwLjApO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi55ZWxsb3dncmVlbiB7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkeWVsbG93R3JlZW4pO1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICR5ZWxsb3dHcmVlbjtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvd0dyZWVuLCAwLjApO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5ncmVlbiB7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkZ3JlZW4pO1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRncmVlbjtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGdyZWVuLCAwLjApO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5jeWFuIHtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRjeWFuKTtcbiAgICAgICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkY3lhbjtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGN5YW4sIDAuMCk7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLmJsdWUge1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGlnaHQtb24oJGJsdWUpO1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkYmx1ZSwgMC4wKTtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuaW5kaWdvIHtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRpbmRpZ28pO1xuICAgICAgICAgICAgICAgICAgLy9ib3JkZXItY29sb3I6ICRpbmRpZ287XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRpbmRpZ28sIDAuMCk7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLnZpb2xldCB7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaWdodC1vbigkdmlvbGV0KTtcbiAgICAgICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkdmlvbGV0O1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkdmlvbGV0LCAwLjApO1xuICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5tYWdlbnRhIHtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpZ2h0LW9uKCRtYWdlbnRhKTtcbiAgICAgICAgICAgICAgICAgIC8vYm9yZGVyLWNvbG9yOiAkbWFnZW50YTtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG1hZ2VudGEsIDAuMCk7XG4gICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYucHJlc3NlZCB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheTtcbiAgICAgICAgICAgICAgICAgIC8vY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4ge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcDogdW5zZXQ7XG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0O1xuXG4gICAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQgeyAvLyBudXRcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmLmZyZXRsZXNzIHtcbiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtc3RyaW5nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHNwYW4ua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IC8vIE9QRU4gMTZweFxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG5cbiAgICAgICAgICAgICAgICAmLmxlZnR5IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgLy8gT1BFTiAxNnB4IFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYuYWN0aXZlIHsgLy8uZ3JpZC1zdHJpbmdlZC1ub3RlLWFjdGl2ZVxuXG4gICAgICAgICAgICAgICAgc3Bhbi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4OyAvLyBPUEVOIDE2cHhcblxuICAgICAgICAgICAgICAgICAgJi5sZWZ0eSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4OyAvLyBPUEVOIDE2cHggXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuLW9mZnNldCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVuc2V0OyAvL2xpbmVhci1ncmFkaWVudCh0byBib3R0b20gbGVmdCwgIzFhMTEwMCA0OCUsICMzOTI2MTMgNDglLCAjMzkyNjEzIDUyJSwgdHJhbnNwYXJlbnQgNTIlKTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAjMWExMTAwO1xuXG4gICAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQgeyAvLyBvZmZzZXQgbnV0XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlIDAgMCA1MCU7XG5cbiAgICAgICAgICAgICAgICAmLmZyZXRsZXNzIHtcbiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5sZWZ0eSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IC8vIE9QRU4gMTZweFxuXG4gICAgICAgICAgICAgICAgJi5sZWZ0eSB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IC8vIE9QRU4gMTZweCAvLzE2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSAvLyBFTkQgLmdyaWQtc3RyaW5nZWQtbm90ZSAodGhlTk9URSlcblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtaW1hZ2U6IHVuc2V0O1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDRweDsgLy8xcHg7XG4gICAgICAgICAgICBib3R0b206IDA7Ly8tMXB4O1xuICAgICAgICAgICAgei1pbmRleDogNTsgLy80O1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNCk7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC4wKTtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICAgICAgICAgJi5yZWQgfiBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yZWQge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHJlZCwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYucmVkb3JhbmdlIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkT3JhbmdlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRyZWRPcmFuZ2UsIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm9yYW5nZSB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkb3JhbmdlLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5nb2xkIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ29sZDtcbiAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZ29sZCwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYueWVsbG93IHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR5ZWxsb3csIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnllbGxvd2dyZWVuIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93R3JlZW47XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHllbGxvd0dyZWVuLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5ncmVlbiB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRncmVlbiwgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuY3lhbiB7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGN5YW47XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGN5YW4sIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmJsdWUge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pbmRpZ28ge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbmRpZ287XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGluZGlnbywgMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYudmlvbGV0IHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkdmlvbGV0O1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR2aW9sZXQsIDAuOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm1hZ2VudGEge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRtYWdlbnRhO1xuICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWdlbnRhLCAwLjgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmxlZnR5IHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtb3BlbiB7XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWFycGVnZ2lvIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IC8vIE9QRU4gMTZweFxuXG4gICAgICAgICAgICAgICYubGVmdHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IC8vIE9QRU4gMTZweCBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWNob3JkIHtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb24oJHdoaXRlKTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogdW5zZXQ7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNXB4OyAvLzFweDtcbiAgICAgICAgICAgIGJvdHRvbTogMDsvLy0xcHg7XG4gICAgICAgICAgICB6LWluZGV4OiA2OyAvLzQ7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC40KTtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjApO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIC0xcHggLTFweCAxMHB4IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KSwgMXB4IC0xcHggMTBweCB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNiksIC0xcHggMXB4IDEwcHggdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlZCBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmJhci1kb3duIHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4IDEycHggMCAwO1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYmFyLXVwIHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgIGJvdHRvbTogNHB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMTJweCAxMnB4O1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYmFyLWJvdGgge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnRvbmljIHtcblxuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAvL2NvbG9yOiAkcmVkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGVmdHkge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1vcGVuIHtcblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtY2hvcmQge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgLy8gT1BFTiAxNnB4XG5cbiAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgLy9qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYubXV0ZWQge1xuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgbGlnaHQtb24oJGJsYWNrKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7Ly8kYmxhY2s7XG4gICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkYmxhY2ssIDAuMyk7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7Ly8kd2hpdGU7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi5sZWZ0eSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgLy8gT1BFTiAxNnB4IFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZW1wdHkge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgJi5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWVtcHR5LW1pZGRsZSB7XG4gICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogIzFhMTEwMDtcblxuICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0LWZpcnN0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCBsZWZ0LCAjMWExMTAwIDQ4JSwgIzM5MjYxMyA0OCUsICMzOTI2MTMgNTIlLCB0cmFuc3BhcmVudCA1MiUpO1xuXG4gICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1mcmV0IHtcblxuICAgICAgICAgICAgICAmLmxlZnR5IHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLW9wZW4tb2Zmc2V0LWxhc3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIGxlZnQsICMxYTExMDAgNDglLCAjMzkyNjEzIDQ4JSwgIzM5MjYxMyA1MiUsIHRyYW5zcGFyZW50IDUyJSk7XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlLWZyZXQge1xuXG4gICAgICAgICAgICAgICYubGVmdHkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNTAlIDUwJSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG5cbiAgICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1ub3RlIHtcbiAgICAgICAgICAgICAgLy9ib3JkZXItdG9wOiAycHggc29saWQgIzM5MjYxMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUtZW1wdHkge1xuICAgICAgICAgICAgICBib3JkZXItdG9wOiB1bnNldDtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcblxuICAgICAgICAgICAgLmt3LXNldHRpbmctaW5zdHJ1bWVudC1ncmlkLXN0cmluZ2VkLW5vdGUge1xuICAgICAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzkyNjEzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAua3ctc2V0dGluZy1pbnN0cnVtZW50LWdyaWQtc3RyaW5nZWQtbm90ZS1lbXB0eSB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IHVuc2V0O1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gRU5EIC5ncmlkLXN0cmluZ2VkLXN0cmluZyAodGhlU1RSSU5HKVxuXG4gICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmctZnJldC1sYWJlbHMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgICYubGVmdHkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAgIC5rdy1zZXR0aW5nLWluc3RydW1lbnQtZ3JpZC1zdHJpbmdlZC1zdHJpbmctZnJldC1sYWJlbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwIDhweCAwIDA7XG4gICAgICAgICAgICAgIC8vcGFkZGluZzogMC41cHggMCAwIDAuNXB4O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNi41cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGVmdHkge1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgOHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuZG90LXNpbmdsZSB7XG5cbiAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5kb3QtZG91YmxlIHtcblxuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICAgICAgICAvL2hlaWdodDogMTNweDtcbiAgICAgICAgICAgICAgICAvL2JvcmRlci1yYWRpdXM6IDYuNXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuIiwiLmt3LXNldHRpbmctaW5zdHJ1bWVudC12b2x1bWUge1xuXHR3aWR0aDogMjgwcHg7XG5cdGhlaWdodDogNDBweDtcblx0cGFkZGluZzogMCAxMHB4IDAgMDtcblx0Ly9tYXJnaW46IDAgMTBweCAxMHB4IDEwcHg7XG5cdG1hcmdpbjogMTBweCBhdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrZXN0R3JheSwgMTUlKTtcblx0Lypcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdHRvIHJpZ2h0LFxuXHRcdGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpIDAlLFxuXHRcdGxpZ2h0ZW4oJGRhcmtlc3RHcmF5LCAxNSUpIDQwJSxcblx0XHR0cmFuc3BhcmVudGl6ZShkYXJrZW4oJHJlZCwgMTAlKSwgMC40KSAxMDAlXG5cdCk7XG5cdCovXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtlc3RHcmF5O1xuICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgZ3JpZC1yb3c6IDQ7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDBweCAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICBncmlkLXJvdzogMztcbiAgfVxufVxuXHQua3ctc2V0dGluZy1pbnN0cnVtZW50LXZvbHVtZS1idXR0b24ge1xuXHRcdEBpbmNsdWRlIGxpZ2h0LW9mZjtcblx0XHR3aWR0aDogMjhweDtcblx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0bWFyZ2luOiA1cHggMCA1cHggNXB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHQvL2JvcmRlcjogMXB4IHNvbGlkICRkYXJrZXN0R3JheTtcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7IC8vNTAlO1xuXHRcdGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheTtcblxuXHRcdCYuYWN0aXZlIHtcblx0XHRcdEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG5cblx0XHRcdCYucHVsc2VkIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRib3gtc2hhZG93OiB1bnNldDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQua3ctc2V0dGluZy1pbnN0cnVtZW50LXZvbHVtZS1zbGlkZXIge1xuXHRcdHBhZGRpbmc6IDAgMCAwIDVweDtcblx0XHRncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblx0XHQua3ctc2V0dGluZy1pbnN0cnVtZW50LXZvbHVtZS1zbGlkZXItaW5wdXQgeyAvLyBTbGlkZXIgY2hhbm5lbFxuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdCAgd2lkdGg6IDEwMCU7XG5cdFx0ICBoZWlnaHQ6IDhweDtcblx0XHQgIGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHQgIGJhY2tncm91bmQ6ICRibGFjaztcblx0XHQgIG91dGxpbmU6IG5vbmU7XG5cdFx0ICBvcGFjaXR5OiAwLjc7XG5cdFx0ICAtd2Via2l0LXRyYW5zaXRpb246IC4ycztcblx0XHQgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xuXG5cdFx0XHQvKiBNb3VzZS1vdmVyIGVmZmVjdHMgKi9cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0ICAvL29wYWNpdHk6IDE7IC8qIEZ1bGx5IHNob3duIG9uIG1vdXNlLW92ZXIgKi9cblx0XHRcdH1cblxuXHRcdFx0Ly8gU2xpZGVyIGhhbmRsZTpcblxuXHRcdFx0LyogVGhlIHNsaWRlciBoYW5kbGUgKHVzZSAtd2Via2l0LSAoQ2hyb21lLCBPcGVyYSwgU2FmYXJpLCBFZGdlKSBhbmQgLW1vei0gKEZpcmVmb3gpIHRvIG92ZXJyaWRlIGRlZmF1bHQgbG9vaykgKi9cblx0XHRcdCY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcblx0XHRcdCAgLyotd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHQgIGFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHQgIEBpbmNsdWRlIGxpZ2h0LW9mZjtcblx0XHRcdCAgQGluY2x1ZGUgbGlnaHQtb24oJHdoaXRlKTtcblx0XHRcdCAgd2lkdGg6IDIwcHg7XG5cdFx0XHQgIGhlaWdodDogMjBweDtcblx0XHRcdCAgYm9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0ICAvL2JhY2tncm91bmQ6ICRibHVlO1xuXHRcdFx0ICBjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdCovXG5cblx0XHRcdFx0Ly9jb250ZW50OiAnJztcblx0XHRcdFx0Ly9wb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0Ly90b3A6IDBweDtcblx0XHRcdFx0Ly9sZWZ0OiAwcHg7XG5cdFx0XHRcdC8vdHJhbnNpdGlvbjogYWxsIDAuMnM7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogY29uaWMtZ3JhZGllbnQoZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSwgJGRhcmtlckdyYXksIGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpKTtcblxuXHRcdFx0fVxuXG5cdFx0XHQmOjotbW96LXJhbmdlLXRodW1iIHtcblx0XHRcdFx0LypAaW5jbHVkZSBsaWdodC1vZmY7XG5cdFx0XHRcdEBpbmNsdWRlIGxpZ2h0LW9uKCR3aGl0ZSk7XG5cdFx0XHQgIHdpZHRoOiAyMHB4O1xuXHRcdFx0ICBoZWlnaHQ6IDIwcHg7XG5cdFx0XHQgIGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdCAgLy9iYWNrZ3JvdW5kOiAkYmx1ZTtcblx0XHRcdCAgY3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHQqL1xuXG5cdFx0XHRcdC8vY29udGVudDogJyc7XG5cdFx0XHRcdC8vcG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR3aWR0aDogMjBweDtcblx0XHRcdFx0aGVpZ2h0OiAyMHB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdC8vdG9wOiAwcHg7XG5cdFx0XHRcdC8vbGVmdDogMHB4O1xuXHRcdFx0XHQvL3RyYW5zaXRpb246IGFsbCAwLjJzO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KGRhcmtlbigkbGlnaHRHcmF5LCAxMCUpLCAkZGFya2VyR3JheSwgZGFya2VuKCRsaWdodEdyYXksIDEwJSksICRkYXJrZXJHcmF5LCBkYXJrZW4oJGxpZ2h0R3JheSwgMTAlKSk7XG5cdFx0XHR9XG5cdFx0fVxuIl19 */
