/*------------------------------------*\
  #COLORS
\*------------------------------------*/
/*------------------------------------*\
  #BREAKPOINTS
\*------------------------------------*/
/*------------------------------------*\
  #FONTS
\*------------------------------------*/
body, .footer .body h3, .ts-label,
.ts-button,
.pagination__button,
.button, .ts-body-xl, .wrapper--product .section .body h1, .expertise .section--intro, .hero__text h1, .block--text p, .ts-body-lg, .contact .section__body, .body h2, .ts-body-md, .header .menu__nav, .body, .ts-body, .wrapper--product .section .body p, .form .input-group input, .form label, .block p, .header .submenu__nav, .ts-body-xs {
  font-family: "cerebri_sanslight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

.ts-bold, .pagination__button, .button, .body h3,
.body h4, .ts-subtitle, .wrapper--product .section .body h3, .block h1,
.block h3 {
  font-family: "cerebri_sanssemibold", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  font-weight: 700;
}

/*------------------------------------*\
    #TYPESIZE/SCALE
\*------------------------------------*/
.ts-label,
.ts-button,
.pagination__button,
.button, .ts-body-xs {
  font-size: 0.75rem;
  line-height: 1.5;
}

.ts-body, .wrapper--product .section .body p, .form .input-group input, .form label, .block p, .header .submenu__nav, .ts-subtitle, .wrapper--product .section .body h3, .block h1,
.block h3 {
  font-size: 0.875rem;
  line-height: 1.25;
}

.ts-body-md, .header .menu__nav, .body {
  font-size: 1rem;
  line-height: 1.25;
}

.footer__inner, .ts-body-lg, .contact .section__body, .body h2 {
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 768px) {
  .footer__inner, .ts-body-lg, .contact .section__body, .body h2 {
    font-size: 1.5rem;
    line-height: 1.125;
  }
}

.ts-body-xl, .wrapper--product .section .body h1, .expertise .section--intro, .hero__text h1, .block--text p {
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 320px) {
  .ts-body-xl, .wrapper--product .section .body h1, .expertise .section--intro, .hero__text h1, .block--text p {
    font-size: 1.5rem;
    line-height: 1.125;
  }
}
@media (min-width: 768px) {
  .ts-body-xl, .wrapper--product .section .body h1, .expertise .section--intro, .hero__text h1, .block--text p {
    font-size: 2.5rem;
  }
}

/*------------------------------------*\
  #SPACING
\*------------------------------------*/
/*------------------------------------*\
  #MARGINS
\*------------------------------------*/
/*------------------------------------*\
  #BORDERS WIDTH
\*------------------------------------*/
/*------------------------------------*\
  #MISC
\*------------------------------------*/
/*------------------------------------*\
  reset
\*------------------------------------*/
*,
*:before,
*:after {
  box-sizing: border-box;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption,
th,
td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

q,
blockquote {
  quotes: none;
}

q:before,
q:after,
blockquote:before,
blockquote:after {
  content: "";
  content: none;
}

a img {
  border: none;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary {
  display: block;
}

button,
input {
  line-height: normal;
}

button,
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}

button,
input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  *overflow: visible;
}

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

textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}

a {
  color: inherit;
  text-decoration: none;
  outline: none;
}

@font-face {
  font-family: "cerebri_sanslight";
  src: url("fonts/cerebrisans-light-webfont.woff2") format("woff2"), url("fonts/cerebrisans-light-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "cerebri_sanssemibold";
  src: url("fonts/cerebrisans-semibold-webfont.woff2") format("woff2"), url("fonts/cerebrisans-semibold-webfont.woff") format("woff");
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: "cerebri_sansbold";
  src: url("fonts/cerebrisans-bold-webfont.woff2") format("woff2"), url("fonts/cerebrisans-bold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
/*------------------------------------*\
  mixins
\*------------------------------------*/
/*------------------------------------*\
  text-styles
\*------------------------------------*/
.ts-label,
.ts-button,
.pagination__button,
.button {
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ts-link {
  text-decoration: none;
}
.ts-link:hover {
  text-decoration: none;
}

.ts-body-link, .expertise .section a {
  color: #1A1919;
}
.ts-body-link:hover, .expertise .section a:hover {
  text-decoration: underline;
}

/*------------------------------------*\
  title
\*------------------------------------*/
.body {
  color: #1A1919;
}
.body h2 {
  color: #1A1919;
  margin-bottom: 1.667rem;
}
.body h3 {
  width: 100%;
  margin-bottom: 1.111rem;
}
.body h3:not(:first-child),
.body h4:not(:first-child) {
  margin-top: 1.667rem;
}
.body p {
  max-width: 70ch;
}
.body p:not(:last-of-type) {
  margin-bottom: 1.111rem;
}
.body hr {
  width: 100%;
  border: none;
  border-top: 1px solid #1A1919;
  margin: 1.667rem 0;
}
.body ul,
.body ol {
  list-style-type: none;
  width: 100%;
  margin-bottom: 1.111rem;
}
.body img {
  margin-bottom: 1.111rem;
}

/*------------------------------------*\
  medias
\*------------------------------------*/
img,
object,
video {
  width: 100%;
  height: auto;
}

img,
video {
  display: block;
}

img.image-lazy {
  width: 100%;
  transition: opacity 0.5s ease-in-out;
}
img.image-lazy:not(.lazyloaded) {
  opacity: 0;
}
img.image-lazy.lazyloaded {
  opacity: 1;
}

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

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

/*------------------------------------*\
  misc
\*------------------------------------*/
.hidden {
  display: none !important;
}

@media (max-width: 767px) {
  .hidden-small {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .hidden-large {
    display: none !important;
  }
}

.nav__list {
  list-style: none;
}

.clear::after {
  display: block;
  content: "";
  clear: both;
}

/*------------------------------------*\
  global
\*------------------------------------*/
.wrapper--product .section .body, .wrapper--products_index .block figcaption, .contact .section__body, .expertise .main__inner, .pagination__button, .footer__inner, .hero__text, .block--caption figcaption,
.block--info, .block--text, .header__menu, .header__submenu {
  padding: 1.111rem;
}
@media (min-width: 768px) {
  .wrapper--product .section .body, .wrapper--products_index .block figcaption, .contact .section__body, .expertise .main__inner, .pagination__button, .footer__inner, .hero__text, .block--caption figcaption,
.block--info, .block--text, .header__menu, .header__submenu {
    padding: 1.667rem;
  }
}

.footer__inner, .header__inner, .main__inner {
  margin-left: auto;
  margin-right: auto;
}

.main {
  padding-top: calc(50px + 1.111rem*2 - 1px);
}
@media (min-width: 768px) {
  .wrapper--detail.works .main,
.wrapper--index.works .main {
    padding-top: calc(50px + 1.111rem*4 + (0.875rem * 1.25) - 1px);
  }
}

.grid {
  display: flex;
  flex-wrap: wrap;
}

.button:before, .block__sector::before {
  content: "";
  display: block;
  margin-right: 0.556rem;
  height: 1rem;
  width: 1rem;
  background: #1A1919;
  border-radius: 50%;
  -webkit-animation: blink 1s step-start infinite;
          animation: blink 1s step-start infinite;
}
@-webkit-keyframes blink {
  50% {
    opacity: 0;
  }
}
@keyframes blink {
  50% {
    opacity: 0;
  }
}

.block__sector::before {
  height: 0.75rem;
  width: 0.75rem;
  margin-right: 0.278rem;
  -webkit-animation: none;
          animation: none;
}

/*------------------------------------*\
  header
\*------------------------------------*/
.header {
  width: 100%;
  z-index: 10;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}
.header__inner {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .header__inner {
    justify-content: space-between;
    align-items: center;
  }
}
.header__menu, .header__submenu {
  padding-top: 1.111rem;
  padding-bottom: 1.111rem;
  width: 100%;
}
@media (min-width: 768px) {
  .header__menu, .header__submenu {
    display: flex;
  }
}
.header__menu {
  background-color: #1A1919;
  color: #FFFFFF;
  align-items: center;
  justify-content: space-between;
}
.header__submenu {
  background-color: #FFFFFF;
}
.header .menu__nav .nav__list,
.header .submenu__nav .nav__list {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .header .menu__nav .nav__list,
.header .submenu__nav .nav__list {
    flex-direction: row;
  }
}
.header .menu__nav .nav__item,
.header .submenu__nav .nav__item {
  padding: 0.278rem 0;
}
@media (min-width: 768px) {
  .header .menu__nav .nav__item,
.header .submenu__nav .nav__item {
    padding: 0;
  }
}
@media (min-width: 769px) {
  .header .menu__nav .nav__item:not(:last-of-type),
.header .submenu__nav .nav__item:not(:last-of-type) {
    margin-right: 1.111rem;
  }
}
@media (min-width: 1025px) {
  .header .menu__nav .nav__item:not(:last-of-type),
.header .submenu__nav .nav__item:not(:last-of-type) {
    margin-right: 1.667rem;
  }
}
.header .menu__nav {
  padding-top: 4.444rem;
  padding-bottom: 4.444rem;
}
@media (min-width: 768px) {
  .header .menu__nav {
    padding: 0;
  }
}
@media (max-width: 767px) {
  .header .menu__nav {
    font-size: 2.5rem;
    line-height: 1.125;
  }
}
.header .nav__link {
  text-underline-offset: 0.5em;
}
@media (max-width: 767px) {
  .header .nav__link {
    text-underline-offset: 0.3em;
  }
}
.header .nav__link.is-active {
  text-decoration: underline;
}
@media (hover: hover) {
  .header .nav__link:hover {
    text-decoration: underline;
  }
}
.header .icons {
  display: flex;
  justify-content: space-between;
}
.header .icons .icons__last {
  display: flex;
}
.header .icons .icons__last .cart__link {
  display: none;
}
.header .icon {
  background-color: #FFFFFF;
  width: 50px;
  height: 50px;
  cursor: pointer;
}
.header .icon--menu {
  border-radius: 50%;
  margin-left: 0.556rem;
}
@media (min-width: 768px) {
  .header .icon--menu {
    display: none;
    right: 1.667rem;
  }
}
.header .icon--logo {
  width: 45px;
  border-top-left-radius: 50%;
  border-bottom-left-radius: 50%;
}
.header--white .header__menu {
  background-color: #FFFFFF;
  color: #1A1919;
}
.header--white .icon {
  background-color: #1A1919;
}
.header__submenu,
.header .menu__nav {
  display: none;
}
@media (min-width: 768px) {
  .header__submenu,
.header .menu__nav {
    display: initial;
  }
}
.header .menu__last {
  display: flex;
  align-items: center;
}
.header .menu__cart {
  margin-left: 1.111rem;
}
.header .icon--cart {
  background: url("images/icon-cart.svg") no-repeat center center;
}

/*------------------------------------*\
  block
\*------------------------------------*/
.block {
  width: 100%;
  overflow: hidden;
}
.block img,
.block video {
  -o-object-fit: cover;
     object-fit: cover;
  min-height: 100%;
}
.block figcaption {
  padding-bottom: 2.222rem;
}
.block h1,
.block h3,
.block p {
  transition: 0.5s opacity ease-in-out;
}
.block p:not(:last-child) {
  margin-bottom: 0.556rem;
}
.block__sector {
  display: flex;
  align-items: center;
}
.block--text {
  padding-top: 3.333rem;
  padding-bottom: 3.333rem;
  color: #1A1919;
}
@media (min-width: 768px) {
  .block--text {
    padding-top: 9.999rem;
    padding-bottom: 9.999rem;
  }
}
.block--text .block__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.block--info + .block--text {
  padding-top: 1.6665rem;
}
@media (min-width: 768px) {
  .block--info + .block--text {
    padding-top: 4.9995rem;
  }
}

@media (min-width: 768px) {
  .block--half {
    width: 50%;
  }
}

.block--info > * {
  width: 66.6666666667%;
}
@media (min-width: 1024px) {
  .block--info > * {
    width: 33.3333333333%;
  }
}

.block--caption figcaption > * {
  width: 100%;
}
@media (min-width: 1024px) {
  .block--caption figcaption > * {
    width: 66.6666666667%;
  }
}

.block--full.block--caption {
  position: relative;
}
.block--full.block--caption figcaption {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

@media (min-width: 768px) {
  .block--half.block--caption {
    width: 100%;
  }
}
.block--half.block--caption .block__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 768px) {
  .block--half.block--caption .block__inner {
    height: 100%;
  }
  .block--half.block--caption .block__inner:nth-of-type(odd) {
    flex-direction: row-reverse;
  }
  .block--half.block--caption .block__inner:nth-of-type(even) {
    flex-direction: row;
  }
}
@media (min-width: 768px) {
  .block--half.block--caption figcaption,
.block--half.block--caption img,
.block--half.block--caption video {
    width: 50%;
  }
}
.block--half.block--caption figcaption {
  align-self: stretch;
  background: #E4E4E3;
}

.block--black figcaption {
  color: #FFFFFF;
}
.block--black .block__sector::before {
  background: #FFFFFF;
}

.block--full img,
.block--full video {
  min-height: auto;
}
.block--full .iframe__container {
  padding: 56.25% 0 0;
  position: relative;
}
.block--full iframe {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.block--croped {
  position: relative;
}
.block--croped figure,
.block--croped img,
.block--croped video {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
}
.block--croped .iframe__container {
  position: static;
}
.block--croped iframe {
  box-sizing: border-box;
  height: 56.25vw !important;
  left: 50% !important;
  min-height: 100%;
  min-width: 100%;
  transform: translate(-50%, -50%);
  top: 50% !important;
  width: 177.77777778vh !important;
}

.block--video_embed.block--caption figure {
  align-self: stretch;
}

/*------------------------------------*\
  button
\*------------------------------------*/
.button {
  padding: 0;
  margin: 1.667rem 0 0 0;
  color: #1A1919;
  background: none;
  border: none;
  display: flex;
  align-items: center;
}
.button__inner {
  display: block;
  padding: 0.278rem 0.556rem;
  border: 1px solid;
  border-color: #1A1919;
}
.button:active .button__inner {
  border-color: transparent;
}
.button--white {
  color: #FFFFFF;
}
.button--white .button__inner {
  border-color: #FFFFFF;
}
.button--white:before {
  background: #FFFFFF;
}

/*------------------------------------*\
  taxonomy
\*------------------------------------*/
.hero {
  position: relative;
  background: #1A1919;
  padding-top: 112.5%;
}
@media (min-width: 768px) {
  .hero {
    padding-top: 56.25%;
  }
}
.hero__video {
  position: absolute;
  bottom: 0;
  height: 100%;
  width: 100%;
}
.hero__video video {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
}
.hero__text {
  width: 100%;
  top: 0;
  z-index: 1;
  height: 100%;
  background: #1A1919;
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #FFFFFF;
}
.hero__text h1 {
  color: #FFFFFF;
}
@media (min-width: 768px) {
  .hero__text h1 {
    width: 75%;
  }
}
.hero.is-playing {
  background-color: white;
}

/*------------------------------------*\
  footer
\*------------------------------------*/
.footer__inner {
  padding-bottom: 1.667rem;
  background: #1A1919;
  color: #FFFFFF;
  display: flex;
}
.footer__left {
  margin-right: 2.222rem;
  white-space: nowrap;
}
.footer .body h3 {
  font-weight: 400;
}
.footer a {
  color: #FFFFFF;
}
.footer a.news {
  text-decoration: underline;
}
.footer__list {
  margin-top: 0;
}
.footer .icon--24-7 {
  width: 150px;
  height: 150px;
  color: #FFFFFF;
  background-color: #9700FF;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-animation: blink 1s step-start infinite;
          animation: blink 1s step-start infinite;
}
@media (max-width: 767px) {
  .footer .icon--24-7 {
    width: 120px;
    height: 120px;
  }
}

.shop .footer .footer__right {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

/*------------------------------------*\
  form
\*------------------------------------*/
.form label {
  display: block;
  margin-bottom: 0.556rem;
}
.form .input-group {
  position: relative;
  border: 1px solid #E4E4E3;
  width: 750px;
  max-width: 100%;
}
.form .input-group input,
.form .input-group button {
  border: none;
  height: 45px;
}
.form .input-group input {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0.556rem 0.556rem;
}
.form .input-group button {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  font-size: 0;
  width: 40px;
  background: url("images/icon-check.svg") no-repeat center center;
}
.form .input-group button:hover {
  opacity: 0.5;
}

.no-touchevents .form button:hover {
  opacity: 0.5;
}

/*------------------------------------*\
  pagination
\*------------------------------------*/
.pagination {
  display: flex;
}
.pagination__button {
  flex: 1;
  background: #FFFFFF;
  color: #1A1919;
  border: none;
  text-align: center;
}
@media (hover: hover) {
  .pagination__button:hover {
    background: #1A1919;
    color: #FFFFFF;
  }
}

.wrapper--home .header {
  color: #FFFFFF;
}
.wrapper--home .main {
  padding-top: 0;
}
.wrapper--home .main__inner {
  background: #FFFFFF;
}
.wrapper--home .block--text {
  color: #1A1919;
}

.wrapper--home:not(.menu-open) .header {
  mix-blend-mode: exclusion;
  background-color: transparent;
}
.wrapper--home:not(.menu-open) .header__menu {
  background-color: transparent;
}

.detail .main__inner {
  background: #FFFFFF;
}

.expertise .main__inner {
  padding-top: 3.333rem;
  background: #1A1919;
  color: #FFFFFF;
}
.expertise .main__inner a {
  color: #FFFFFF;
  text-decoration: underline;
}
.expertise .section {
  border-top: 1px solid #FFFFFF;
  margin-bottom: 2.222rem;
}
.expertise .section:not(:first-child) {
  padding-top: 1.111rem;
}
.expertise .section--intro {
  border-top: none;
}
@media (min-width: 768px) {
  .expertise .section--intro {
    max-width: 35ch;
  }
}
@media (min-width: 768px) {
  .expertise .section__header h2 {
    width: 50%;
  }
}
.expertise .section__body h4 {
  width: 100%;
}
.expertise .section__subcontent {
  margin-bottom: 1.667rem;
}
@media (min-width: 768px) {
  .expertise .section__subcontent {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 2.222rem;
  }
}
.expertise .section__col {
  margin-bottom: 1.667rem;
}
@media (min-width: 768px) {
  .expertise .section__col {
    width: 50%;
  }
  .expertise .section__col:nth-of-type(odd) {
    padding-right: 1.667rem;
  }
  .expertise .section__col:nth-of-type(even) {
    padding-left: 1.667rem;
  }
}
@media (min-width: 768px) {
  .expertise .section__list {
    -moz-column-count: 2;
         column-count: 2;
    -moz-column-gap: 3.334rem;
         column-gap: 3.334rem;
  }
}
.expertise .section__media {
  width: 200px;
}
.contact .main__inner {
  background: #1A1919;
  color: #FFFFFF;
}
@media (min-width: 1024px) {
  .contact .main__inner {
    padding-top: 3.333rem;
  }
}
.contact .section {
  display: flex;
  flex-direction: column-reverse;
}
@media (min-width: 1024px) {
  .contact .section {
    flex-direction: row;
    justify-content: space-between;
  }
}
@media (min-width: 1024px) {
  .contact .section__body, .contact .section__media {
    width: calc(50% - 1.667rem);
  }
}
@media (min-width: 1024px) {
  .contact .section__body {
    padding-top: 0;
    padding-bottom: 0;
  }
}
.contact .section__body a {
  text-decoration: underline;
}

.wrapper.shop .header__menu,
.wrapper.shop .footer__inner {
  background-color: #FFFFFF;
  color: #1A1919;
}
.wrapper.shop .header__menu a,
.wrapper.shop .footer__inner a {
  color: #1A1919;
}
.wrapper.shop .header__menu {
  display: block;
}
.wrapper.shop .header .menu__nav {
  display: none !important;
}
.wrapper.shop .header .icon--menu {
  display: block;
}
.wrapper.shop .header .icons__last .cart__link {
  display: block;
}
@media (max-width: 767px) {
  .wrapper.shop .header .icons .cart__link {
    display: block;
  }
}
.wrapper.shop .header .icon--logo {
  background-color: #1A1919;
}
.wrapper.shop .header .icon--menu {
  background-color: #9700FF;
}

.wrapper--products_index .block {
  position: relative;
}
.wrapper--products_index .block figcaption {
  position: absolute;
  top: 0;
  left: 0;
}

.wrapper--product .section {
  display: flex;
  flex-direction: column-reverse;
}
@media (min-width: 1024px) {
  .wrapper--product .section {
    flex-direction: row;
    justify-content: space-between;
  }
}
@media (min-width: 1024px) {
  .wrapper--product .section__body, .wrapper--product .section__media {
    width: 50%;
  }
}
.wrapper--product .section .body {
  position: -webkit-sticky;
  position: sticky;
  top: 90px;
}
.wrapper--product .section .block_price .bt_buy {
  margin-top: 1.111rem;
  margin-bottom: 1.111rem;
  color: #9700FF;
}
.wrapper--product .section .block_price .bt_buy:before {
  background: #9700FF;
}

.snipcart * {
  font-family: "cerebri_sanslight" !important;
}
.snipcart .snipcart__actions--link {
  color: #1A1919;
}
.snipcart .snipcart-button-link {
  color: #9700FF;
}
.snipcart .snipcart-cart-button,
.snipcart .snipcart-base-button,
.snipcart .snipcart__box--badge-highlight {
  background: #9700FF !important;
}
.snipcart .snipcart__box--badge {
  color: white;
}
.snipcart .snipcart__box--badge.snipcart__font--secondary {
  color: #9700FF;
}

/*------------------------------------*\
  #BASE-STYLES
\*------------------------------------*/
/* 16

14 = 0.875
18 = 1.125
22 = 1.375
36 = 2.25


*/
html {
  font-size: 18px;
}
@media (min-width: 1281px) {
  html {
    font-size: 20px;
  }
}
@media (max-width: 767px) {
  html {
    font-size: 17px;
  }
}

body {
  overflow-x: hidden;
  background-color: white;
  min-height: 100vh;
  color: #1A1919;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/*------------------------------------*\
  #PRINT
\*------------------------------------*/
/*------------------------------------*\
  print style
\*------------------------------------*/
@media print {
  html {
    font-size: 14px;
  }

  @page {
    margin: 2cm 2.5cm;
  }
  body {
    font-family: Georgia, Times, Times New Roman, serif;
    font-size: 16pt;
    line-height: 22pt;
    color: #000000;
  }

  h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol {
    font-family: Georgia, Times, Times New Roman, serif;
    font-style: normal;
    font-variant: normal;
    font-weight: 400;
  }

  h1 {
    font-size: 32pt;
    line-height: 40pt;
  }

  h2 {
    font-size: 24pt;
    line-height: 30pt;
  }

  h3 {
    font-size: 20pt;
    line-height: 26pt;
  }

  h4 {
    font-size: 14pt;
    line-height: 20pt;
  }

  p,
ul,
ol,
blockquote {
    font-size: 11pt;
    line-height: 16pt;
  }

  blockquote {
    text-align: center;
  }

  small {
    font-size: 9pt;
    line-height: 14pt;
  }

  p {
    page-break-inside: avoid;
  }

  h1,
h2,
h3,
h4,
h5,
h6 {
    page-break-after: avoid;
  }

  hr {
    border: 0;
    height: 1px;
    background-color: #1A1919;
    margin: 0.3cm 0;
  }

  .article {
    width: 100%;
    height: auto !important;
    margin: 0;
    display: block;
    padding: 0;
    overflow: visible;
    box-shadow: none;
  }

  .header,
.footer,
.section.print {
    display: none !important;
  }

  body {
    background: #fff !important;
    color: #000;
  }

  .body p {
    widows: 3;
    orphans: 3;
  }
  .body a {
    page-break-inside: avoid;
  }
  .body blockquote {
    page-break-inside: avoid;
  }
  .body h1, .body h2, .body h3, .body h4, .body h5, .body h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
  }
  .body img {
    page-break-inside: avoid;
    page-break-after: avoid;
  }
  .body table, .body pre {
    page-break-inside: avoid;
  }
  .body ul, .body ol, .body dl {
    page-break-before: avoid;
  }
  .body a:link, .body a:visited, .body a {
    background: transparent;
    color: #2C51DF;
    font-weight: bold;
    text-decoration: underline;
    text-align: left;
  }
  .body a[href^=http]:after {
    content: " <" attr(href) "> ";
  }
  .body article a[href^="#"]:after {
    content: "";
  }
  .body a:not(:local-link):after {
    content: " <" attr(href) "> ";
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuc2NzcyIsInNjcmVlbi5jc3MiLCJleHRlcm5hbC9faW5jbHVkZS1tZWRpYS5zY3NzIiwidXRpbHMvX3Jlc2V0LnNjc3MiLCJ1dGlscy9fZm9udHMuc2NzcyIsInV0aWxzL19taXhpbnMuc2NzcyIsInV0aWxzL190eXBvZ3JhcGh5LnNjc3MiLCJ1dGlscy9fbWVkaWFzLnNjc3MiLCJ1dGlscy9fbWlzYy5zY3NzIiwidXRpbHMvX2dsb2JhbC5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19ibG9jay5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL190YXhvbm9teS5zY3NzIiwiY29tcG9uZW50cy9faGVyby5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJ0ZW1wbGF0ZXMvX2hvbWUuc2NzcyIsInRlbXBsYXRlcy9fZGV0YWlsLnNjc3MiLCJ0ZW1wbGF0ZXMvX2V4cGVydGlzZS5zY3NzIiwidGVtcGxhdGVzL19jb250YWN0LnNjc3MiLCJ0ZW1wbGF0ZXMvX3Nob3Auc2NzcyIsInRlbXBsYXRlcy9fc2hvcF9kZXRhaWwuc2NzcyIsInNuaXBjYXJ0L19zbmlwY2FydC5zY3NzIiwic2NyZWVuLnNjc3MiLCJ1dGlscy9fcHJpbnQtc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7dUNBQUE7QUFtQkE7O3VDQUFBO0FBZUE7O3VDQUFBO0FBSUE7Ozs7RUFDRSxxSkFBQTtBQ3pCRjs7QUQyQ0E7OztFQUNFLHdKQUFBO0VBVUEsZ0JBQUE7QUMvQ0Y7O0FEMERBOzt1Q0FBQTtBQWVBOzs7O0VBQ0Usa0JBUGM7RUFRZCxnQkFaZ0I7QUNwRGxCOztBRG1FQTs7RUFDRSxtQkFYYztFQVlkLGlCQWhCYTtBQy9DZjs7QURrRUE7RUFDRSxlQWZjO0VBZ0JkLGlC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LGNWN0JDO0VVOEJELG1CQUFBO0VBQ0EsOEJBQUE7QVRvZVI7QVNqZUk7RUFDSSx5QlZuQ0M7QUNzZ0JUO0FTOWRROztFQUNJLGFBQUE7RUFDQSxzQkFBQTtBVGllWjtBQytCSTtFUWxnQkk7O0lBSVEsbUJBQUE7RVRvZWQ7QUFDRjtBU2plUTs7RUFDSSxtQkFBQTtBVG9lWjtBQ3FCSTtFUTFmSTs7SUFHUSxVQUFBO0VUdWVkO0FBQ0Y7QUNlSTtFUW5mSTs7SUFFUSxzQlZtRkY7RUNvWlo7QUFDRjtBQ1NJO0VRbmZJOztJQUtRLHNCVitFRjtFQzJaWjtBQUNGO0FTdGVJO0VBRUkscUJWcUVPO0VVcEVQLHdCVm9FTztBQ21hZjtBQ0RJO0VRemVBO0lBS1EsVUFBQTtFVHllVjtBQUNGO0FDTkk7RVF6ZUE7SUFRUSxpQlZjSTtJVWJKLGtCVk9NO0VDb2VoQjtBQUNGO0FTcGVJO0VBQ0ksNEJBQUE7QVRzZVI7QUNmSTtFUXhkQTtJQUdRLDRCQUFBO0VUd2VWO0FBQ0Y7QVN0ZVE7RUFDSSwwQkFBQTtBVHdlWjtBU3BlWTtFQURKO0lBRVEsMEJBQUE7RVR1ZWQ7QUFDRjtBU25lSTtFQUNJLGFBQUE7RUFDQSw4QkFBQTtBVHFlUjtBU25lUTtFQUNJLGFBQUE7QVRxZVo7QVNuZVk7RUFDSSxhQUFBO0FUcWVoQjtBU2hlSTtFQUNJLHlCVmpIQztFVWtIRCxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QVRrZVI7QVM5ZFE7RUFDSSxrQkFBQTtFQUNBLHFCVm1CRTtBQzZjZDtBQ2hESTtFUWxiSTtJQUlRLGFBQUE7SUFDQSxlVmNGO0VDb2RaO0FBQ0Y7QVMvZFE7RUFDSSxXQUFBO0VBQ0EsMkJBQUE7RUFDQSw4QkFBQTtBVGllWjtBUzVkUTtFQUNJLHlCVjFJSDtFVTJJRyxjVjFJSDtBQ3dtQlQ7QVMzZFE7RUFDSSx5QlY5SUg7QUMybUJUO0FTemRJOztFQUVJLGFBQUE7QVQyZFI7QUN0RUk7RVF2WkE7O0lBSVEsZ0JBQUE7RVQ4ZFY7QUFDRjtBUzNkSTtFQUNJLGFBQUE7RUFDQSxtQkFBQTtBVDZkUjtBUzFkSTtF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QUFBO0VBQ0EsV0FBQTtFQUNBLGdFQUFBO0FmNjZCTjtBZTU2Qk07RUFDRSxZQUFBO0FmODZCUjs7QWV4NkJFO0VBQ0UsWUFBQTtBZjI2Qko7O0FnQnY5QkE7O3VDQUFBO0FBSUE7RUFDRSxhQUFBO0FoQnk5QkY7QWdCdjlCRTtFQUlFLE9BQUE7RUFDQSxtQmpCUEs7RWlCUUwsY2pCUEs7RWlCUUwsWUFBQTtFQUNBLGtCQUFBO0FoQnM5Qko7QWdCbjlCTTtFQURGO0lBRUksbUJqQmJDO0lpQmNELGNqQmZDO0VDcStCUDtBQUNGOztBaUIxK0JFO0VBQ0UsY2xCR0s7QUMwK0JUO0FpQjErQkU7RUFDSSxjQUFBO0FqQjQrQk47QWlCeitCRTtFQUNFLG1CbEJMSztBQ2cvQlQ7QWlCeCtCRTtFQUNFLGNsQlJLO0FDay9CVDs7QWlCcitCRTtFQUNFLHlCQUFBO0VBQ0EsNkJBQUE7QWpCdytCSjtBaUJ0K0JFO0VBQ0UsNkJBQUE7QWpCdytCSjs7QWtCLy9CRTtFQUNFLG1CbkJHSztBQysvQlQ7O0FtQm5nQ0k7RUFFSSxxQnBCMklNO0VvQjFJTixtQnBCRUM7RW9CREQsY0FBQTtBbkJxZ0NSO0FtQm5nQ1E7RUFDSSxjcEJISDtFb0JJRywwQkFBQTtBbkJxZ0NaO0FtQmpnQ0k7RUFDSSw2QkFBQTtFQUNBLHVCcEJnSU07QUNtNEJkO0FtQmpnQ1E7RUFDSSxxQnBCK0hFO0FDbzRCZDtBbUJoZ0NRO0VBRUksZ0JBQUE7QW5CaWdDWjtBQ3plSTtFa0IxaEJJO0lBS1EsZUFBQTtFbkJrZ0NkO0FBQ0Y7QUM5ZUk7RWtCaGhCUTtJQUVRLFVBQUE7RW5CZ2dDbEI7QUFDRjtBbUIzL0JZO0VBQ0ksV0FBQTtBbkI2L0JoQjtBbUJ6L0JRO0VBQ0ksdUJwQm1HRTtBQ3c1QmQ7QUN6Zkk7RWtCbmdCSTtJQUlRLGFBQUE7SUFDQSxlQUFBO0lBQ0EsdUJwQjZGRjtFQys1Qlo7QUFDRjtBbUJ6L0JRO0VBQ0ksdUJwQnlGRTtBQ2s2QmQ7QUNuZ0JJO0VrQnpmSTtJQUlRLFVBQUE7RW5CNC9CZDtFbUIxL0JjO0lBQ0ksdUJwQm1GTjtF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O0V5Qmp2Q0E7SUFDRSxrQkFBQTtFekJvdkNGOztFeUJsdkNBO0lBQ0UsY0FBQTtJQUNBLGlCQUFBO0V6QnF2Q0Y7O0V5Qm52Q0E7SUFDRSx3QkFBQTtFekJzdkNGOztFeUJwdkNBOzs7Ozs7SUFNRSx1QkFBQTtFekJ1dkNGOztFeUJydkNBO0lBQ0UsU0FBQTtJQUNBLFdBQUE7SUFDQSx5QjFCbkVLO0kwQm9FTCxlQUFBO0V6Qnd2Q0Y7O0V5QnR2Q0E7SUFDRSxXQUFBO0lBQ0EsdUJBQUE7SUFDQSxTQUFBO0lBQ0EsY0FBQTtJQUNBLFVBQUE7SUFDQSxpQkFBQTtJQUNBLGdCQUFBO0V6Qnl2Q0Y7O0V5QnZ2Q0E7OztJQUdFLHdCQUFBO0V6QjB2Q0Y7O0V5Qnh2Q0E7SUFDRSwyQkFBQTtJQUNBLFdBQUE7RXpCMnZDRjs7RXlCeHZDRTtJQUFHLFNBQUE7SUFBWSxVQUFBO0V6QjZ2Q2pCO0V5QjV2Q0U7SUFBRyx3QkFBQTtFekIrdkNMO0V5Qjl2Q0U7SUFBWSx3QkFBQTtFekJpd0NkO0V5Qmh3Q0U7SUFBeUIsdUJBQUE7SUFBd0Isd0JBQUE7RXpCb3dDbkQ7RXlCbndDRTtJQUFNLHdCQUFBO0lBQXlCLHVCQUFBO0V6QnV3Q2pDO0V5QnR3Q0U7SUFBYSx3QkFBQTtFekJ5d0NmO0V5Qnh3Q0U7SUFBYyx3QkFBQTtFekIyd0NoQjtFeUIxd0NFO0lBQ0UsdUJBQUE7SUFDQSxjQUFBO0lBQ0EsaUJBQUE7SUFDQSwwQkFBQTtJQUNBLGdCQUFBO0V6QjR3Q0o7RXlCMXdDRTtJQUFxQiw2QkFBQTtFekI2d0N2QjtFeUI1d0NFO0lBQTZCLFdBQUE7RXpCK3dDL0I7RXlCOXdDRTtJQUEwQiw2QkFBQTtFekJpeEM1QjtBQUNGIiwiZmlsZSI6InNjcmVlbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQ09MT1JTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBNYWluIGNvbG91ciBwYWxldHRlXG4kd2hpdGUgOiAjRkZGRkZGO1xuJGJsYWNrIDogIzFBMTkxOTtcbiRibHVlIDogIzFEMThGNTtcbiRncmF5IDogI0U0RTRFMztcbiRkYXJrZ3JheTogI0NCQ0NDQjtcbiRwdXJwbGU6ICM5NzAwRkY7XG5cbi8vIEFzc2lnbiBjb2xvdXJzIHRvIHZhcmlhYmxlIHJvbGVzXG4kYm9keS1jb2xvciA6ICR3aGl0ZTtcbiRiYXNlLWNvbG9yIDogJGJsYWNrO1xuJGFjdGlvbiA6ICRibGFjaztcbiRhY3Rpb24tcmVzcG9uc2UgOiAkZ3JheTtcblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQlJFQUtQT0lOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRicmVha3BvaW50czogKHhzIDogMzIwcHgsXG4gIHNtIDogNzY4cHgsXG4gIG1kIDogMTAyNHB4LFxuICBsZyA6IDEyODBweCxcbiAgeGwgOiAxNDQwcHgsXG4gIHh4bCA6IDE5MjBweCk7XG5cbiRncmlkLWd1dHRlci13aWR0aDogMzBweCAhZGVmYXVsdDtcblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNGT05UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJWZvbnQtYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcImNlcmVicmlfc2Fuc2xpZ2h0XCIsXG4gICAgLWFwcGxlLXN5c3RlbSxcbiAgICBCbGlua01hY1N5c3RlbUZvbnQsXG4gICAgXCJTZWdvZSBVSVwiLFxuICAgIFJvYm90byxcbiAgICBPeHlnZW4tU2FucyxcbiAgICBVYnVudHUsXG4gICAgQ2FudGFyZWxsLFxuICAgIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgICBzYW5zLXNlcmlmO1xufVxuXG5cbiVmb250LWJvZHktaXRhbGljIHtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiVmb250LWJvZHktYm9sZCB7XG4gIGZvbnQtZmFtaWx5OiBcImNlcmVicmlfc2Fuc3NlbWlib2xkXCIsXG4gICAgLWFwcGxlLXN5c3RlbSxcbiAgICBCbGlua01hY1N5c3RlbUZvbnQsXG4gICAgXCJTZWdvZSBVSVwiLFxuICAgIFJvYm90byxcbiAgICBPeHlnZW4tU2FucyxcbiAgICBVYnVudHUsXG4gICAgQ2FudGFyZWxsLFxuICAgIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgICBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4lZm9udC1ib2R5LWJvbGQtaXRhbGljIHtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUWVBFU0laRS9TQ0FMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGZvbnQtYmFzZSA6IDFyZW07XG4kbGluZS1oZWlnaHQteHMgOiAxLjU7XG4kbGluZS1oZWlnaHQgOiAxLjI1O1xuJGxpbmUtaGVpZ2h0LXhsIDogMS4xMjU7XG5cbiRmb250LXNpemUteHMgOiAkZm9udC1iYXNlICogMC43NTsgLy8gMTJcbiRmb250LXNpemUtc20gOiAkZm9udC1iYXNlICogMC44NzU7IC8vIDE0XG4kZm9udC1zaXplLW1kIDogJGZvbnQtYmFzZSAqIDEuMDAwOyAvLyAxOFxuJGZvbnQtc2l6ZS1sZyA6ICRmb250LWJhc2UgKiAxLjU7IC8vIDIyXG4kZm9udC1zaXplLXhsIDogJGZvbnQtYmFzZSAqIDIuNTsgLy8gMzZcblxuJWZvbnQtc2l6ZS14cyB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14cztcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC14cztcbn1cblxuJWZvbnQtc2l6ZS1zbSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbn1cblxuJWZvbnQtc2l6ZS1tZCB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbn1cblxuJWZvbnQtc2l6ZS1sZyB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGc7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC14bDtcbiAgfVxufVxuXG4lZm9udC1zaXplLXhsIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXhzJykge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXhsO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhsO1xuICB9XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjU1BBQ0lOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJHNwYWNpbmctYmFzZSA6IDFyZW07XG4kc3BhY2luZy14eHhsIDogJHNwYWNpbmctYmFzZSAqIDYuNjY3OyAvLyAxMjBcbiRzcGFjaW5nLXh4bCA6ICRzcGFjaW5nLWJhc2UgKiA0LjQ0NDsgLy8gODBcbiRzcGFjaW5nLXhsIDogJHNwYWNpbmctYmFzZSAqIDMuMzMzOyAvLyA2MFxuJHNwYWNpbmctbGcgOiAkc3BhY2luZy1iYXNlICogMi4yMjI7IC8vIDQwXG4kc3BhY2luZy1tZCA6ICRzcGFjaW5nLWJhc2UgKiAxLjY2NzsgLy8gMzBcbiRzcGFjaW5nLXNtIDogJHNwYWNpbmctYmFzZSAqIDEuMTExOyAvLyAyMFxuJHNwYWNpbmcteHMgOiAkc3BhY2luZy1iYXNlICogMC41NTY7IC8vIDEwXG4kc3BhY2luZy14eHMgOiAkc3BhY2luZy1iYXNlICogMC4yNzg7IC8vIDVcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNQVJHSU5TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyAlcmVndWxhci1tYXJnaW5zIHtcbi8vICAgbWFyZ2luIDogJHNwYWNpbmctc207XG5cbi8vICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbi8vICAgICBtYXJnaW4gOiAkc3BhY2luZy1tZDtcbi8vICAgfVxuLy8gfVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCT1JERVJTIFdJRFRIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYm9yZGVyLXdpZHRoLXNtIDogMXB4O1xuJGJvcmRlci13aWR0aC1tZCA6ICRib3JkZXItd2lkdGgtc20qMztcblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTUlTQ1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGNvbnRlbnQtbWF4LXdpZHRoIDogNzUwcHg7XG4kbWF4LXdpZHRoOiAxOTIwcHg7XG4kcGFnZS1wYWRkaW5nOiA3O1xuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0NPTE9SU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCUkVBS1BPSU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNGT05UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmJvZHksIC5mb290ZXIgLmJvZHkgaDMsIC50cy1sYWJlbCxcbi50cy1idXR0b24sXG4ucGFnaW5hdGlvbl9fYnV0dG9uLFxuLmJ1dHRvbiwgLnRzLWJvZHkteGwsIC53cmFwcGVyLS1wcm9kdWN0IC5zZWN0aW9uIC5ib2R5IGgxLCAuZXhwZXJ0aXNlIC5zZWN0aW9uLS1pbnRybywgLmhlcm9fX3RleHQgaDEsIC5ibG9jay0tdGV4dCBwLCAudHMtYm9keS1sZywgLmNvbnRhY3QgLnNlY3Rpb25fX2JvZHksIC5ib2R5IGgyLCAudHMtYm9keS1tZCwgLmhlYWRlciAubWVudV9fbmF2LCAuYm9keSwgLnRzLWJvZHksIC53cmFwcGVyLS1wcm9kdWN0IC5zZWN0aW9uIC5ib2R5IHAsIC5mb3JtIC5pbnB1dC1ncm91cCBpbnB1dCwgLmZvcm0gbGFiZWwsIC5ibG9jayBwLCAuaGVhZGVyIC5zdWJtZW51X19uYXYsIC50cy1ib2R5LXhzIHtcbiAgZm9udC1mYW1pbHk6IFwiY2VyZWJyaV9zYW5zbGlnaHRcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi50cy1ib2xkLCAucGFnaW5hdGlvbl9fYnV0dG9uLCAuYnV0dG9uLCAuYm9keSBoMyxcbi5ib2R5IGg0LCAudHMtc3VidGl0bGUsIC53cmFwcGVyLS1wcm9kdWN0IC5zZWN0aW9uIC5ib2R5IGgzLCAuYmxvY2sgaDEsXG4uYmxvY2sgaDMge1xuICBmb250LWZhbWlseTogXCJjZXJlYnJpX3NhbnNzZW1pYm9sZFwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjVFlQRVNJWkUvU0NBTEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udHMtbGFiZWwsXG4udHMtYnV0dG9uLFxuLnBhZ2luYXRpb25fX2J1dHRvbixcbi5idXR0b24sIC50cy1ib2R5LXhzIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udHMtYm9keSwgLndyYXBwZXItLXByb2R1Y3QgLnNlY3Rpb24gLmJvZHkgcCwgLmZvcm0gLmlucHV0LWdyb3VwIGlucHV0LCAuZm9ybSBsYWJlbCwgLmJsb2NrIHAsIC5oZWFkZXIgLnN1Ym1lbnVfX25hdiwgLnRzLXN1YnRpdGxlLCAud3JhcHBlci0tcHJvZHVjdCAuc2VjdGlvbiAuYm9keSBoMywgLmJsb2NrIGgxLFxuLmJsb2NrIGgzIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5cbi50cy1ib2R5LW1kLCAuaGVhZGVyIC5tZW51X19uYXYsIC5ib2R5IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLmZvb3Rlcl9faW5uZXIsIC50cy1ib2R5LWxnLCAuY29udGFjdCAuc2VjdGlvbl9fYm9keSwgLmJvZHkgaDIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXJfX2lubmVyLCAudHMtYm9keS1sZywgLmNvbnRhY3QgLnNlY3Rpb25fX2JvZHksIC5ib2R5IGgyIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMjU7XG4gIH1cbn1cblxuLnRzLWJvZHkteGwsIC53cmFwcGVyLS1wcm9kdWN0IC5zZWN0aW9uIC5ib2R5IGgxLCAuZXhwZXJ0aXNlIC5zZWN0aW9uLS1pbnRybywgLmhlcm9fX3RleHQgaDEsIC5ibG9jay0tdGV4dCBwIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkge1xuICAudHMtYm9keS14bCwgLndyYXBwZXItLXByb2R1Y3QgLnNlY3Rpb24gLmJvZHkgaDEsIC5leHBlcnRpc2UgLnNlY3Rpb24tLWludHJvLCAuaGVyb19fdGV4dCBoMSwgLmJsb2NrLS10ZXh0IHAge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50cy1ib2R5LXhsLCAud3JhcHBlci0tcHJvZHVjdCAuc2VjdGlvbiAuYm9keSBoMSwgLmV4cGVydGlzZSAuc2VjdGlvbi0taW50cm8sIC5oZXJvX190ZXh0IGgxLCAuYmxvY2stLXRleHQgcCB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1NQQUNJTkdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTUFSR0lOU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCT1JERVJTIFdJRFRIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01JU0NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICByZXNldFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sLFxuYm9keSxcbmRpdixcbnNwYW4sXG5hcHBsZXQsXG5vYmplY3QsXG5pZnJhbWUsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wLFxuYmxvY2txdW90ZSxcbnByZSxcbmEsXG5hYmJyLFxuYWNyb255bSxcbmFkZHJlc3MsXG5iaWcsXG5jaXRlLFxuY29kZSxcbmRlbCxcbmRmbixcbmVtLFxuaW1nLFxuaW5zLFxua2JkLFxucSxcbnMsXG5zYW1wLFxuc21hbGwsXG5zdHJpa2UsXG5zdHJvbmcsXG5zdWIsXG5zdXAsXG50dCxcbnZhcixcbmIsXG51LFxuaSxcbmNlbnRlcixcbmRsLFxuZHQsXG5kZCxcbm9sLFxudWwsXG5saSxcbmZpZWxkc2V0LFxuZm9ybSxcbmxhYmVsLFxubGVnZW5kLFxudGFibGUsXG5jYXB0aW9uLFxudGJvZHksXG50Zm9vdCxcbnRoZWFkLFxudHIsXG50aCxcbnRkLFxuYXJ0aWNsZSxcbmFzaWRlLFxuY2FudmFzLFxuZGV0YWlscyxcbmVtYmVkLFxuZmlndXJlLFxuZmlnY2FwdGlvbixcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5vdXRwdXQsXG5ydWJ5LFxuc2VjdGlvbixcbnN1bW1hcnksXG50aW1lLFxubWFyayxcbmF1ZGlvLFxudmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbmNhcHRpb24sXG50aCxcbnRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6IG5vbmU7XG59XG5cbnE6YmVmb3JlLFxucTphZnRlcixcbmJsb2NrcXVvdGU6YmVmb3JlLFxuYmxvY2txdW90ZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbmEgaW1nIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAqdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuYnV0dG9uLFxuaW5wdXRbdHlwZT1idXR0b25dLFxuaW5wdXRbdHlwZT1yZXNldF0sXG5pbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICpvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiY2VyZWJyaV9zYW5zbGlnaHRcIjtcbiAgc3JjOiB1cmwoXCJmb250cy9jZXJlYnJpc2Fucy1saWdodC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9jZXJlYnJpc2Fucy1saWdodC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImNlcmVicmlfc2Fuc3NlbWlib2xkXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvY2VyZWJyaXNhbnMtc2VtaWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvY2VyZWJyaXNhbnMtc2VtaWJvbGQtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiY2VyZWJyaV9zYW5zYm9sZFwiO1xuICBzcmM6IHVybChcImZvbnRzL2NlcmVicmlzYW5zLWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvY2VyZWJyaXNhbnMtYm9sZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgbWl4aW5zXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgdGV4dC1zdHlsZXNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udHMtbGFiZWwsXG4udHMtYnV0dG9uLFxuLnBhZ2luYXRpb25fX2J1dHRvbixcbi5idXR0b24ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG4udHMtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50cy1saW5rOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4udHMtYm9keS1saW5rLCAuZXhwZXJ0aXNlIC5zZWN0aW9uIGEge1xuICBjb2xvcjogIzFBMTkxOTtcbn1cbi50cy1ib2R5LWxpbms6aG92ZXIsIC5leHBlcnRpc2UgLnNlY3Rpb24gYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICB0aXRsZVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5ib2R5IHtcbiAgY29sb3I6ICMxQTE5MTk7XG59XG4uYm9keSBoMiB7XG4gIGNvbG9yOiAjMUExOTE5O1xuICBtYXJnaW4tYm90dG9tOiAxLjY2N3JlbTtcbn1cbi5ib2R5IGgzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDEuMTExcmVtO1xufVxuLmJvZHkgaDM6bm90KDpmaXJzdC1jaGlsZCksXG4uYm9keSBoNDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IDEuNjY3cmVtO1xufVxuLmJvZHkgcCB7XG4gIG1heC13aWR0aDogNzBjaDtcbn1cbi5ib2R5IHA6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4xMTFyZW07XG59XG4uYm9keSBociB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMUExOTE5O1xuICBtYXJnaW46IDEuNjY3cmVtIDA7XG59XG4uYm9keSB1bCxcbi5ib2R5IG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMS4xMTFyZW07XG59XG4uYm9keSBpbWcge1xuICBtYXJnaW4tYm90dG9tOiAxLjExMXJlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgbWVkaWFzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaW1nLFxub2JqZWN0LFxudmlkZW8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5pbWcsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5pbWcuaW1hZ2UtbGF6eSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XG59XG5pbWcuaW1hZ2UtbGF6eTpub3QoLmxhenlsb2FkZWQpIHtcbiAgb3BhY2l0eTogMDtcbn1cbmltZy5pbWFnZS1sYXp5Lmxhenlsb2FkZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZW1iZWQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmVtYmVkLWNvbnRhaW5lciBpZnJhbWUsXG4uZW1iZWQtY29udGFpbmVyIG9iamVjdCxcbi5lbWJlZC1jb250YWluZXIgZW1iZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgbWlzY1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGlkZGVuLXNtYWxsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oaWRkZW4tbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubmF2X19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmNsZWFyOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICBjbGVhcjogYm90aDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgZ2xvYmFsXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLndyYXBwZXItLXByb2R1Y3QgLnNlY3Rpb24gLmJvZHksIC53cmFwcGVyLS1wcm9kdWN0c19pbmRleCAuYmxvY2sgZmlnY2FwdGlvbiwgLmNvbnRhY3QgLnNlY3Rpb25fX2JvZHksIC5leHBlcnRpc2UgLm1haW5fX2lubmVyLCAucGFnaW5hdGlvbl9fYnV0dG9uLCAuZm9vdGVyX19pbm5lciwgLmhlcm9fX3RleHQsIC5ibG9jay0tY2FwdGlvbiBmaWdjYXB0aW9uLFxuLmJsb2NrLS1pbmZvLCAuYmxvY2stLXRleHQsIC5oZWFkZXJfX21lbnUsIC5oZWFkZXJfX3N1Ym1lbnUge1xuICBwYWRkaW5nOiAxLjExMXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAud3JhcHBlci0tcHJvZHVjdCAuc2VjdGlvbiAuYm9keSwgLndyYXBwZXItLXByb2R1Y3RzX2luZGV4IC5ibG9jayBmaWdjYXB0aW9uLCAuY29udGFjdCAuc2VjdGlvbl9fYm9keSwgLmV4cGVydGlzZSAubWFpbl9faW5uZXIsIC5wYWdpbmF0aW9uX19idXR0b24sIC5mb290ZXJfX2lubmVyLCAuaGVyb19fdGV4dCwgLmJsb2NrLS1jYXB0aW9uIGZpZ2NhcHRpb24sXG4uYmxvY2stLWluZm8sIC5ibG9jay0tdGV4dCwgLmhlYWRlcl9fbWVudSwgLmhlYWRlcl9fc3VibWVudSB7XG4gICAgcGFkZGluZzogMS42NjdyZW07XG4gIH1cbn1cblxuLmZvb3Rlcl9faW5uZXIsIC5oZWFkZXJfX2lubmVyLCAubWFpbl9faW5uZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubWFpbiB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDUwcHggKyAxLjExMXJlbSoyIC0gMXB4KTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAud3JhcHBlci0tZGV0YWlsLndvcmtzIC5tYWluLFxuLndyYXBwZXItLWluZGV4LndvcmtzIC5tYWluIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyg1MHB4ICsgMS4xMTFyZW0qNCArICgwLjg3NXJlbSAqIDEuMjUpIC0gMXB4KTtcbiAgfVxufVxuXG4uZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmJ1dHRvbjpiZWZvcmUsIC5ibG9ja19fc2VjdG9yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjU1NnJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgYmFja2dyb3VuZDogIzFBMTkxOTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IGJsaW5rIDFzIHN0ZXAtc3RhcnQgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIGJsaW5rIHtcbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5ibG9ja19fc2VjdG9yOjpiZWZvcmUge1xuICBoZWlnaHQ6IDAuNzVyZW07XG4gIHdpZHRoOiAwLjc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMjc4cmVtO1xuICBhbmltYXRpb246IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGhlYWRlclxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cbi5oZWFkZXJfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyX19pbm5lciB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cbi5oZWFkZXJfX21lbnUsIC5oZWFkZXJfX3N1Ym1lbnUge1xuICBwYWRkaW5nLXRvcDogMS4xMTFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjExMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlcl9fbWVudSwgLmhlYWRlcl9fc3VibWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuLmhlYWRlcl9fbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQTE5MTk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uaGVhZGVyX19zdWJtZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi5oZWFkZXIgLm1lbnVfX25hdiAubmF2X19saXN0LFxuLmhlYWRlciAuc3VibWVudV9fbmF2IC5uYXZfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXIgLm1lbnVfX25hdiAubmF2X19saXN0LFxuLmhlYWRlciAuc3VibWVudV9fbmF2IC5uYXZfX2xpc3Qge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbn1cbi5oZWFkZXIgLm1lbnVfX25hdiAubmF2X19pdGVtLFxuLmhlYWRlciAuc3VibWVudV9fbmF2IC5uYXZfX2l0ZW0ge1xuICBwYWRkaW5nOiAwLjI3OHJlbSAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXIgLm1lbnVfX25hdiAubmF2X19pdGVtLFxuLmhlYWRlciAuc3VibWVudV9fbmF2IC5uYXZfX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAuaGVhZGVyIC5tZW51X19uYXYgLm5hdl9faXRlbTpub3QoOmxhc3Qtb2YtdHlwZSksXG4uaGVhZGVyIC5zdWJtZW51X19uYXYgLm5hdl9faXRlbTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgIG1hcmdpbi1yaWdodDogMS4xMTFyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLmhlYWRlciAubWVudV9fbmF2IC5uYXZfX2l0ZW06bm90KDpsYXN0LW9mLXR5cGUpLFxuLmhlYWRlciAuc3VibWVudV9fbmF2IC5uYXZfX2l0ZW06bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNjY3cmVtO1xuICB9XG59XG4uaGVhZGVyIC5tZW51X19uYXYge1xuICBwYWRkaW5nLXRvcDogNC40NDRyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0LjQ0NHJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIC5tZW51X19uYXYge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVhZGVyIC5tZW51X19uYXYge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgfVxufVxuLmhlYWRlciAubmF2X19saW5rIHtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjVlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVhZGVyIC5uYXZfX2xpbmsge1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4zZW07XG4gIH1cbn1cbi5oZWFkZXIgLm5hdl9fbGluay5pcy1hY3RpdmUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5oZWFkZXIgLm5hdl9fbGluazpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cbi5oZWFkZXIgLmljb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmhlYWRlciAuaWNvbnMgLmljb25zX19sYXN0IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5oZWFkZXIgLmljb25zIC5pY29uc19fbGFzdCAuY2FydF9fbGluayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uaGVhZGVyIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmhlYWRlciAuaWNvbi0tbWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IDAuNTU2cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXIgLmljb24tLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcmlnaHQ6IDEuNjY3cmVtO1xuICB9XG59XG4uaGVhZGVyIC5pY29uLS1sb2dvIHtcbiAgd2lkdGg6IDQ1cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xufVxuLmhlYWRlci0td2hpdGUgLmhlYWRlcl9fbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGNvbG9yOiAjMUExOTE5O1xufVxuLmhlYWRlci0td2hpdGUgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUExOTE5O1xufVxuLmhlYWRlcl9fc3VibWVudSxcbi5oZWFkZXIgLm1lbnVfX25hdiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlcl9fc3VibWVudSxcbi5oZWFkZXIgLm1lbnVfX25hdiB7XG4gICAgZGlzcGxheTogaW5pdGlhbDtcbiAgfVxufVxuLmhlYWRlciAubWVudV9fbGFzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uaGVhZGVyIC5tZW51X19jYXJ0IHtcbiAgbWFyZ2luLWxlZnQ6IDEuMTExcmVtO1xufVxuLmhlYWRlciAuaWNvbi0tY2FydCB7XG4gIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9pY29uLWNhcnQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICBibG9ja1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5ibG9jayB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJsb2NrIGltZyxcbi5ibG9jayB2aWRlbyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuLmJsb2NrIGZpZ2NhcHRpb24ge1xuICBwYWRkaW5nLWJvdHRvbTogMi4yMjJyZW07XG59XG4uYmxvY2sgaDEsXG4uYmxvY2sgaDMsXG4uYmxvY2sgcCB7XG4gIHRyYW5zaXRpb246IDAuNXMgb3BhY2l0eSBlYXNlLWluLW91dDtcbn1cbi5ibG9jayBwOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAwLjU1NnJlbTtcbn1cbi5ibG9ja19fc2VjdG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5ibG9jay0tdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAzLjMzM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuMzMzcmVtO1xuICBjb2xvcjogIzFBMTkxOTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYmxvY2stLXRleHQge1xuICAgIHBhZGRpbmctdG9wOiA5Ljk5OXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOS45OTlyZW07XG4gIH1cbn1cbi5ibG9jay0tdGV4dCAuYmxvY2tfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLmJsb2NrLS1pbmZvICsgLmJsb2NrLS10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDEuNjY2NXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYmxvY2stLWluZm8gKyAuYmxvY2stLXRleHQge1xuICAgIHBhZGRpbmctdG9wOiA0Ljk5OTVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9jay0taGFsZiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuXG4uYmxvY2stLWluZm8gPiAqIHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYmxvY2stLWluZm8gPiAqIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbn1cblxuLmJsb2NrLS1jYXB0aW9uIGZpZ2NhcHRpb24gPiAqIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5ibG9jay0tY2FwdGlvbiBmaWdjYXB0aW9uID4gKiB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG59XG5cbi5ibG9jay0tZnVsbC5ibG9jay0tY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5ibG9jay0tZnVsbC5ibG9jay0tY2FwdGlvbiBmaWdjYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2NrLS1oYWxmLmJsb2NrLS1jYXB0aW9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmJsb2NrLS1oYWxmLmJsb2NrLS1jYXB0aW9uIC5ibG9ja19faW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYmxvY2stLWhhbGYuYmxvY2stLWNhcHRpb24gLmJsb2NrX19pbm5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIC5ibG9jay0taGFsZi5ibG9jay0tY2FwdGlvbiAuYmxvY2tfX2lubmVyOm50aC1vZi10eXBlKG9kZCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAuYmxvY2stLWhhbGYuYmxvY2stLWNhcHRpb24gLmJsb2NrX19pbm5lcjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9jay0taGFsZi5ibG9jay0tY2FwdGlvbiBmaWdjYXB0aW9uLFxuLmJsb2NrLS1oYWxmLmJsb2NrLS1jYXB0aW9uIGltZyxcbi5ibG9jay0taGFsZi5ibG9jay0tY2FwdGlvbiB2aWRlbyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuLmJsb2NrLS1oYWxmLmJsb2NrLS1jYXB0aW9uIGZpZ2NhcHRpb24ge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAjRTRFNEUzO1xufVxuXG4uYmxvY2stLWJsYWNrIGZpZ2NhcHRpb24ge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5ibG9jay0tYmxhY2sgLmJsb2NrX19zZWN0b3I6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG5cbi5ibG9jay0tZnVsbCBpbWcsXG4uYmxvY2stLWZ1bGwgdmlkZW8ge1xuICBtaW4taGVpZ2h0OiBhdXRvO1xufVxuLmJsb2NrLS1mdWxsIC5pZnJhbWVfX2NvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDU2LjI1JSAwIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5ibG9jay0tZnVsbCBpZnJhbWUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5ibG9jay0tY3JvcGVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmJsb2NrLS1jcm9wZWQgZmlndXJlLFxuLmJsb2NrLS1jcm9wZWQgaW1nLFxuLmJsb2NrLS1jcm9wZWQgdmlkZW8ge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlO1xufVxuLmJsb2NrLS1jcm9wZWQgLmlmcmFtZV9fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5ibG9jay0tY3JvcGVkIGlmcmFtZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogNTYuMjV2dyAhaW1wb3J0YW50O1xuICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE3Ny43Nzc3Nzc3OHZoICFpbXBvcnRhbnQ7XG59XG5cbi5ibG9jay0tdmlkZW9fZW1iZWQuYmxvY2stLWNhcHRpb24gZmlndXJlIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgYnV0dG9uXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMS42NjdyZW0gMCAwIDA7XG4gIGNvbG9yOiAjMUExOTE5O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYnV0dG9uX19pbm5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjI3OHJlbSAwLjU1NnJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzFBMTkxOTtcbn1cbi5idXR0b246YWN0aXZlIC5idXR0b25fX2lubmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24tLXdoaXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uYnV0dG9uLS13aGl0ZSAuYnV0dG9uX19pbm5lciB7XG4gIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbn1cbi5idXR0b24tLXdoaXRlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIHRheG9ub215XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmhlcm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICMxQTE5MTk7XG4gIHBhZGRpbmctdG9wOiAxMTIuNSU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlcm8ge1xuICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG4gIH1cbn1cbi5oZXJvX192aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmhlcm9fX3ZpZGVvIHZpZGVvIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5oZXJvX190ZXh0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMUExOTE5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uaGVyb19fdGV4dCBoMSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZXJvX190ZXh0IGgxIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG59XG4uaGVyby5pcy1wbGF5aW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGZvb3RlclxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5mb290ZXJfX2lubmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuNjY3cmVtO1xuICBiYWNrZ3JvdW5kOiAjMUExOTE5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5mb290ZXJfX2xlZnQge1xuICBtYXJnaW4tcmlnaHQ6IDIuMjIycmVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmZvb3RlciAuYm9keSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZm9vdGVyIGEge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5mb290ZXIgYS5uZXdzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uZm9vdGVyX19saXN0IHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5mb290ZXIgLmljb24tLTI0LTcge1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTcwMEZGO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbmltYXRpb246IGJsaW5rIDFzIHN0ZXAtc3RhcnQgaW5maW5pdGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmZvb3RlciAuaWNvbi0tMjQtNyB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGhlaWdodDogMTIwcHg7XG4gIH1cbn1cblxuLnNob3AgLmZvb3RlciAuZm9vdGVyX19yaWdodCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGZvcm1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZm9ybSBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjU1NnJlbTtcbn1cbi5mb3JtIC5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0U0RTRFMztcbiAgd2lkdGg6IDc1MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQsXG4uZm9ybSAuaW5wdXQtZ3JvdXAgYnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDQ1cHg7XG59XG4uZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjU1NnJlbSAwLjU1NnJlbTtcbn1cbi5mb3JtIC5pbnB1dC1ncm91cCBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgd2lkdGg6IDQwcHg7XG4gIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9pY29uLWNoZWNrLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbn1cbi5mb3JtIC5pbnB1dC1ncm91cCBidXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5uby10b3VjaGV2ZW50cyAuZm9ybSBidXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIHBhZ2luYXRpb25cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ucGFnaW5hdGlvbl9fYnV0dG9uIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6ICMxQTE5MTk7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLnBhZ2luYXRpb25fX2J1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzFBMTkxOTtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgfVxufVxuXG4ud3JhcHBlci0taG9tZSAuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4ud3JhcHBlci0taG9tZSAubWFpbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLndyYXBwZXItLWhvbWUgLm1haW5fX2lubmVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi53cmFwcGVyLS1ob21lIC5ibG9jay0tdGV4dCB7XG4gIGNvbG9yOiAjMUExOTE5O1xufVxuXG4ud3JhcHBlci0taG9tZTpub3QoLm1lbnUtb3BlbikgLmhlYWRlciB7XG4gIG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb247XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLndyYXBwZXItLWhvbWU6bm90KC5tZW51LW9wZW4pIC5oZWFkZXJfX21lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRldGFpbCAubWFpbl9faW5uZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuXG4uZXhwZXJ0aXNlIC5tYWluX19pbm5lciB7XG4gIHBhZGRpbmctdG9wOiAzLjMzM3JlbTtcbiAgYmFja2dyb3VuZDogIzFBMTkxOTtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uZXhwZXJ0aXNlIC5tYWluX19pbm5lciBhIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmV4cGVydGlzZSAuc2VjdGlvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRkZGRkZGO1xuICBtYXJnaW4tYm90dG9tOiAyLjIyMnJlbTtcbn1cbi5leHBlcnRpc2UgLnNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLXRvcDogMS4xMTFyZW07XG59XG4uZXhwZXJ0aXNlIC5zZWN0aW9uLS1pbnRybyB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmV4cGVydGlzZSAuc2VjdGlvbi0taW50cm8ge1xuICAgIG1heC13aWR0aDogMzVjaDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5leHBlcnRpc2UgLnNlY3Rpb25fX2hlYWRlciBoMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuLmV4cGVydGlzZSAuc2VjdGlvbl9fYm9keSBoNCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmV4cGVydGlzZSAuc2VjdGlvbl9fc3ViY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNjY3cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5leHBlcnRpc2UgLnNlY3Rpb25fX3N1YmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDIuMjIycmVtO1xuICB9XG59XG4uZXhwZXJ0aXNlIC5zZWN0aW9uX19jb2wge1xuICBtYXJnaW4tYm90dG9tOiAxLjY2N3JlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZXhwZXJ0aXNlIC5zZWN0aW9uX19jb2wge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmV4cGVydGlzZSAuc2VjdGlvbl9fY29sOm50aC1vZi10eXBlKG9kZCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNjY3cmVtO1xuICB9XG4gIC5leHBlcnRpc2UgLnNlY3Rpb25fX2NvbDpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjY2N3JlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5leHBlcnRpc2UgLnNlY3Rpb25fX2xpc3Qge1xuICAgIGNvbHVtbi1jb3VudDogMjtcbiAgICBjb2x1bW4tZ2FwOiAzLjMzNHJlbTtcbiAgfVxufVxuLmV4cGVydGlzZSAuc2VjdGlvbl9fbWVkaWEge1xuICB3aWR0aDogMjAwcHg7XG59XG4uY29udGFjdCAubWFpbl9faW5uZXIge1xuICBiYWNrZ3JvdW5kOiAjMUExOTE5O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbnRhY3QgLm1haW5fX2lubmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMy4zMzNyZW07XG4gIH1cbn1cbi5jb250YWN0IC5zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuY29udGFjdCAuc2VjdGlvbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbnRhY3QgLnNlY3Rpb25fX2JvZHksIC5jb250YWN0IC5zZWN0aW9uX19tZWRpYSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS42NjdyZW0pO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5jb250YWN0IC5zZWN0aW9uX19ib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuLmNvbnRhY3QgLnNlY3Rpb25fX2JvZHkgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ud3JhcHBlci5zaG9wIC5oZWFkZXJfX21lbnUsXG4ud3JhcHBlci5zaG9wIC5mb290ZXJfX2lubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgY29sb3I6ICMxQTE5MTk7XG59XG4ud3JhcHBlci5zaG9wIC5oZWFkZXJfX21lbnUgYSxcbi53cmFwcGVyLnNob3AgLmZvb3Rlcl9faW5uZXIgYSB7XG4gIGNvbG9yOiAjMUExOTE5O1xufVxuLndyYXBwZXIuc2hvcCAuaGVhZGVyX19tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ud3JhcHBlci5zaG9wIC5oZWFkZXIgLm1lbnVfX25hdiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi53cmFwcGVyLnNob3AgLmhlYWRlciAuaWNvbi0tbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLndyYXBwZXIuc2hvcCAuaGVhZGVyIC5pY29uc19fbGFzdCAuY2FydF9fbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC53cmFwcGVyLnNob3AgLmhlYWRlciAuaWNvbnMgLmNhcnRfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ud3JhcHBlci5zaG9wIC5oZWFkZXIgLmljb24tLWxvZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUExOTE5O1xufVxuLndyYXBwZXIuc2hvcCAuaGVhZGVyIC5pY29uLS1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3MDBGRjtcbn1cblxuLndyYXBwZXItLXByb2R1Y3RzX2luZGV4IC5ibG9jayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi53cmFwcGVyLS1wcm9kdWN0c19pbmRleCAuYmxvY2sgZmlnY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4ud3JhcHBlci0tcHJvZHVjdCAuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLndyYXBwZXItLXByb2R1Y3QgLnNlY3Rpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC53cmFwcGVyLS1wcm9kdWN0IC5zZWN0aW9uX19ib2R5LCAud3JhcHBlci0tcHJvZHVjdCAuc2VjdGlvbl9fbWVkaWEge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cbi53cmFwcGVyLS1wcm9kdWN0IC5zZWN0aW9uIC5ib2R5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiA5MHB4O1xufVxuLndyYXBwZXItLXByb2R1Y3QgLnNlY3Rpb24gLmJsb2NrX3ByaWNlIC5idF9idXkge1xuICBtYXJnaW4tdG9wOiAxLjExMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4xMTFyZW07XG4gIGNvbG9yOiAjOTcwMEZGO1xufVxuLndyYXBwZXItLXByb2R1Y3QgLnNlY3Rpb24gLmJsb2NrX3ByaWNlIC5idF9idXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzk3MDBGRjtcbn1cblxuLnNuaXBjYXJ0ICoge1xuICBmb250LWZhbWlseTogXCJjZXJlYnJpX3NhbnNsaWdodFwiICFpbXBvcnRhbnQ7XG59XG4uc25pcGNhcnQgLnNuaXBjYXJ0X19hY3Rpb25zLS1saW5rIHtcbiAgY29sb3I6ICMxQTE5MTk7XG59XG4uc25pcGNhcnQgLnNuaXBjYXJ0LWJ1dHRvbi1saW5rIHtcbiAgY29sb3I6ICM5NzAwRkY7XG59XG4uc25pcGNhcnQgLnNuaXBjYXJ0LWNhcnQtYnV0dG9uLFxuLnNuaXBjYXJ0IC5zbmlwY2FydC1iYXNlLWJ1dHRvbixcbi5zbmlwY2FydCAuc25pcGNhcnRfX2JveC0tYmFkZ2UtaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZDogIzk3MDBGRiAhaW1wb3J0YW50O1xufVxuLnNuaXBjYXJ0IC5zbmlwY2FydF9fYm94LS1iYWRnZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zbmlwY2FydCAuc25pcGNhcnRfX2JveC0tYmFkZ2Uuc25pcGNhcnRfX2ZvbnQtLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjOTcwMEZGO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQkFTRS1TVFlMRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAxNlxuXG4xNCA9IDAuODc1XG4xOCA9IDEuMTI1XG4yMiA9IDEuMzc1XG4zNiA9IDIuMjVcblxuXG4qL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICB9XG59XG5cbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgY29sb3I6ICMxQTE5MTk7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjUFJJTlRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICBwcmludCBzdHlsZVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBwcmludCB7XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDJjbSAyLjVjbTtcbiAgfVxuICBib2R5IHtcbiAgICBmb250LWZhbWlseTogR2VvcmdpYSwgVGltZXMsIFRpbWVzIE5ldyBSb21hbiwgc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB0O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB0O1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICB9XG5cbiAgaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbnVsLFxub2wge1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBzZXJpZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDMycHQ7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHQ7XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyNHB0O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB0O1xuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMjBwdDtcbiAgICBsaW5lLWhlaWdodDogMjZwdDtcbiAgfVxuXG4gIGg0IHtcbiAgICBmb250LXNpemU6IDE0cHQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHQ7XG4gIH1cblxuICBwLFxudWwsXG5vbCxcbmJsb2NrcXVvdGUge1xuICAgIGZvbnQtc2l6ZTogMTFwdDtcbiAgICBsaW5lLWhlaWdodDogMTZwdDtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDlwdDtcbiAgICBsaW5lLWhlaWdodDogMTRwdDtcbiAgfVxuXG4gIHAge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG4gIGgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cblxuICBociB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxQTE5MTk7XG4gICAgbWFyZ2luOiAwLjNjbSAwO1xuICB9XG5cbiAgLmFydGljbGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAuaGVhZGVyLFxuLmZvb3Rlcixcbi5zZWN0aW9uLnByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICAuYm9keSBwIHtcbiAgICB3aWRvd3M6IDM7XG4gICAgb3JwaGFuczogMztcbiAgfVxuICAuYm9keSBhIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLmJvZHkgYmxvY2txdW90ZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC5ib2R5IGgxLCAuYm9keSBoMiwgLmJvZHkgaDMsIC5ib2R5IGg0LCAuYm9keSBoNSwgLmJvZHkgaDYge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICAuYm9keSBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuICAuYm9keSB0YWJsZSwgLmJvZHkgcHJlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLmJvZHkgdWwsIC5ib2R5IG9sLCAuYm9keSBkbCB7XG4gICAgcGFnZS1icmVhay1iZWZvcmU6IGF2b2lkO1xuICB9XG4gIC5ib2R5IGE6bGluaywgLmJvZHkgYTp2aXNpdGVkLCAuYm9keSBhIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzJDNTFERjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5ib2R5IGFbaHJlZl49aHR0cF06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIDxcIiBhdHRyKGhyZWYpIFwiPiBcIjtcbiAgfVxuICAuYm9keSBhcnRpY2xlIGFbaHJlZl49XCIjXCJdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIC5ib2R5IGE6bm90KDpsb2NhbC1saW5rKTphZnRlciB7XG4gICAgY29udGVudDogXCIgPFwiIGF0dHIoaHJlZikgXCI+IFwiO1xuICB9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICByZXNldFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwsXG5ib2R5LFxuZGl2LFxuc3BhbixcbmFwcGxldCxcbm9iamVjdCxcbmlmcmFtZSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAsXG5ibG9ja3F1b3RlLFxucHJlLFxuYSxcbmFiYnIsXG5hY3JvbnltLFxuYWRkcmVzcyxcbmJpZyxcbmNpdGUsXG5jb2RlLFxuZGVsLFxuZGZuLFxuZW0sXG5pbWcsXG5pbnMsXG5rYmQsXG5xLFxucyxcbnNhbXAsXG5zbWFsbCxcbnN0cmlrZSxcbnN0cm9uZyxcbnN1YixcbnN1cCxcbnR0LFxudmFyLFxuYixcbnUsXG5pLFxuY2VudGVyLFxuZGwsXG5kdCxcbmRkLFxub2wsXG51bCxcbmxpLFxuZmllbGRzZXQsXG5mb3JtLFxubGFiZWwsXG5sZWdlbmQsXG50YWJsZSxcbmNhcHRpb24sXG50Ym9keSxcbnRmb290LFxudGhlYWQsXG50cixcbnRoLFxudGQsXG5hcnRpY2xlLFxuYXNpZGUsXG5jYW52YXMsXG5kZXRhaWxzLFxuZW1iZWQsXG5maWd1cmUsXG5maWdjYXB0aW9uLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWVudSxcbm5hdixcbm91dHB1dCxcbnJ1YnksXG5zZWN0aW9uLFxuc3VtbWFyeSxcbnRpbWUsXG5tYXJrLFxuYXVkaW8sXG52aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuY2FwdGlvbixcbnRoLFxudGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5xLFxuYmxvY2txdW90ZSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cblxucTpiZWZvcmUsXG5xOmFmdGVyLFxuYmxvY2txdW90ZTpiZWZvcmUsXG5ibG9ja3F1b3RlOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgY29udGVudDogbm9uZTtcbn1cblxuYSBpbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgKm92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG59IiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnY2VyZWJyaV9zYW5zbGlnaHQnO1xuICBzcmM6IHVybCgnZm9udHMvY2VyZWJyaXNhbnMtbGlnaHQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJ2ZvbnRzL2NlcmVicmlzYW5zLWxpZ2h0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG5cbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnY2VyZWJyaV9zYW5zc2VtaWJvbGQnO1xuICBzcmM6IHVybCgnZm9udHMvY2VyZWJyaXNhbnMtc2VtaWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJ2ZvbnRzL2NlcmVicmlzYW5zLXNlbWlib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2NlcmVicmlfc2Fuc2JvbGQnO1xuICBzcmM6IHVybCgnZm9udHMvY2VyZWJyaXNhbnMtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnZm9udHMvY2VyZWJyaXNhbnMtYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIG1peGluc1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQG1peGluIHRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR3aWR0aCwgJGhlaWdodCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAoJGhlaWdodCAvICR3aWR0aCkgKiAxMDAlO1xuICB9XG4gID4gLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGNsZWFyZml4KCkge1xuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgdGV4dC1zdHlsZXNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuLnRzLXN1YnRpdGxlIHtcbiAgQGV4dGVuZCAlZm9udC1zaXplLXNtO1xuICBAZXh0ZW5kICVmb250LWJvZHktYm9sZDtcbn1cblxuLnRzLWJvZHkteHMge1xuICBAZXh0ZW5kICVmb250LXNpemUteHM7XG4gIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cblxuLnRzLWJvZHkge1xuICBAZXh0ZW5kICVmb250LXNpemUtc207XG4gIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cblxuLnRzLWJvZHktbWQge1xuICBAZXh0ZW5kICVmb250LXNpemUtbWQ7XG4gIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cblxuLnRzLWJvZHktbGcge1xuICBAZXh0ZW5kICVmb250LXNpemUtbGc7XG4gIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cblxuLnRzLWJvZHkteGwge1xuICBAZXh0ZW5kICVmb250LXNpemUteGw7XG4gIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cblxuLnRzLWxhYmVsLFxuLnRzLWJ1dHRvbiB7XG4gIEBleHRlbmQgJWZvbnQtc2l6ZS14cztcbiAgQGV4dGVuZCAlZm9udC1ib2R5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XG59XG5cbi50cy1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4udHMtYm9keS1saW5rIHtcbiAgY29sb3I6ICRiYXNlLWNvbG9yO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gIH1cbn1cblxuLnRzLWJvbGQge1xuICBAZXh0ZW5kICVmb250LWJvZHktYm9sZDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgdGl0bGVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5ib2R5IHtcbiAgY29sb3I6ICRibGFjaztcbiAgQGV4dGVuZCAudHMtYm9keS1tZDtcblxuICBoMiB7XG4gICAgQGV4dGVuZCAudHMtYm9keS1sZztcbiAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbWQ7XG4gIH1cblxuICBoMyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc207XG4gIH1cblxuICBoMyxcbiAgaDQge1xuICAgIEBleHRlbmQgLnRzLWJvbGQ7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1kO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1heC13aWR0aDogNzBjaDtcbiAgfVxuXG4gIHA6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbiAgfVxuXG4gIGhyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjaztcbiAgICBtYXJnaW46ICRzcGFjaW5nLW1kIDA7XG4gIH1cblxuICB1bCxcbiAgb2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc207XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIG1lZGlhc1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5pbWcsXG5vYmplY3QsXG52aWRlbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmltZyxcbnZpZGVvIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmltZy5pbWFnZS1sYXp5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2UtaW4tb3V0O1xuXG4gICY6bm90KC5sYXp5bG9hZGVkKSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICYubGF6eWxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZW1iZWQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmVtYmVkLWNvbnRhaW5lciBpZnJhbWUsXG4uZW1iZWQtY29udGFpbmVyIG9iamVjdCxcbi5lbWJlZC1jb250YWluZXIgZW1iZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICBtaXNjXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5oaWRkZW4tc21hbGwge1xuICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4uaGlkZGVuLWxhcmdlIHtcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm5hdl9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jbGVhciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgZ2xvYmFsXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4lcGFkZGluZyB7XG4gIHBhZGRpbmc6ICRzcGFjaW5nLXNtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgIHBhZGRpbmc6ICRzcGFjaW5nLW1kO1xuICB9XG59XG5cbiVpbm5lciB7XG4gIC8vIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAvLyBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgLy8gICB3aWR0aDogY2FsYygxMDAlIC0gI3skcGFnZS1wYWRkaW5nfSoyJSk7XG4gIC8vICAgbWF4LXdpZHRoOiBjYWxjKCN7JG1heC13aWR0aH0gLSAoI3skcGFnZS1wYWRkaW5nfSoyJSkpO1xuICAvLyB9XG59XG5cbi5tYWluIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoNTBweCArICN7JHNwYWNpbmctc219KjIgLSAxcHgpO1xuXG4gICZfX2lubmVyIHtcbiAgICBAZXh0ZW5kICVpbm5lcjtcbiAgfVxufVxuXG4ud3JhcHBlci0tZGV0YWlsLndvcmtzLFxuLndyYXBwZXItLWluZGV4LndvcmtzIHtcbiAgLm1haW4ge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgcGFkZGluZy10b3A6IGNhbGMoNTBweCArICN7JHNwYWNpbmctc219KjQgKyAoI3skZm9udC1zaXplLXNtfSAqICN7JGxpbmUtaGVpZ2h0fSkgLSAxcHgpO1xuICAgIH1cbiAgfVxufVxuXG4uZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuJWRvdCB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14cztcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgYmFja2dyb3VuZDogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBibGluayAxcyBzdGVwLXN0YXJ0IGluZmluaXRlO1xuXG4gIEBrZXlmcmFtZXMgYmxpbmsge1xuICAgIDUwJSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuXG4lZG90LS1zbWFsbCB7XG4gIEBleHRlbmQgJWRvdDtcbiAgaGVpZ2h0OiAwLjc1cmVtO1xuICB3aWR0aDogMC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14eHM7XG4gIGFuaW1hdGlvbjogbm9uZTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGhlYWRlclxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGV4dGVuZCAlaW5uZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lbnUsXG4gICAgJl9fc3VibWVudSB7XG4gICAgICAgIEBleHRlbmQgJXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1zbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXNtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZW51IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAmX19zdWJtZW51IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIC5tZW51X19uYXYsXG4gICAgLnN1Ym1lbnVfX25hdiB7XG4gICAgICAgIC5uYXZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy14eHMgMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubmF2X19pdGVtOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctc207XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPm1kJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudV9fbmF2IHtcbiAgICAgICAgQGV4dGVuZCAudHMtYm9keS1tZDtcbiAgICAgICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXh4bDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXh4bDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14bDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQteGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VibWVudV9fbmF2IHtcbiAgICAgICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICB9XG5cbiAgICAubmF2X19saW5rIHtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjVlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjNlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAbWVkaWEoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgLmljb25zX19sYXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIC5jYXJ0X19saW5rIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLy8gJjphY3RpdmUge1xuICAgICAgICAvLyAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC8vIH1cbiAgICAgICAgJi0tbWVudSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmcteHM7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRzcGFjaW5nLW1kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9nbyB7XG4gICAgICAgICAgICB3aWR0aDogNDVweDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXdoaXRlIHtcbiAgICAgICAgLmhlYWRlcl9fbWVudSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDbG9zZSBtb2JpbGUgbWVudVxuICAgICZfX3N1Ym1lbnUsXG4gICAgLm1lbnVfX25hdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51X19sYXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubWVudV9fY2FydCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1zbTtcbiAgICB9XG5cbiAgICAuaWNvbi0tY2FydCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9pY29uLWNhcnQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGJsb2NrXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJsb2NrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaW1nLFxuICAgIHZpZGVvIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1sZztcbiAgICB9XG5cbiAgICBoMSxcbiAgICBoMyxcbiAgICBwIHtcbiAgICAgICAgdHJhbnNpdGlvbjogMC41cyBvcGFjaXR5IGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIGgxLFxuICAgIGgzIHtcbiAgICAgICAgQGV4dGVuZCAudHMtc3VidGl0bGU7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIEBleHRlbmQgLnRzLWJvZHk7XG4gICAgfVxuXG4gICAgcDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteHM7XG4gICAgfVxuXG4gICAgJl9fc2VjdG9yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGV4dGVuZCAlZG90LS1zbWFsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2NrLS10ZXh0IHtcbiAgICBAZXh0ZW5kICVwYWRkaW5nO1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy14bDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmcteGw7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmcteGwgKiAzO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmcteGwgKiAzO1xuICAgIH1cblxuICAgIC5ibG9ja19faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIEBleHRlbmQgLnRzLWJvZHkteGw7XG4gICAgfVxufVxuXG4uYmxvY2stLWluZm8rLmJsb2NrLS10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygkc3BhY2luZy14bCAvIDIpO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy14bCAqIDEuNTtcbiAgICB9XG59XG5cbi5ibG9jay0taGFsZiB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxufVxuXG4uYmxvY2stLWNhcHRpb24gZmlnY2FwdGlvbixcbi5ibG9jay0taW5mbyB7XG4gICAgQGV4dGVuZCAlcGFkZGluZztcbn1cblxuLmJsb2NrLS1pbmZvID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAvIDEuNSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgICB9XG59XG5cbi5ibG9jay0tY2FwdGlvbiBmaWdjYXB0aW9uID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAxLjUpO1xuICAgIH1cbn1cblxuLmJsb2NrLS1mdWxsLmJsb2NrLS1jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmJsb2NrLS1oYWxmLmJsb2NrLS1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJsb2NrX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaWdjYXB0aW9uLFxuICAgIGltZyxcbiAgICB2aWRlbyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheTtcbiAgICB9XG59XG5cbi5ibG9jay0tYmxhY2sge1xuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIC5ibG9ja19fc2VjdG9yOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgfVxufVxuXG4uYmxvY2stLWZ1bGwge1xuICAgIGltZyxcbiAgICB2aWRlbyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLmlmcmFtZV9fY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogNTYuMjUlIDAgMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbi5ibG9jay0tY3JvcGVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBmaWd1cmUsXG4gICAgaW1nLFxuICAgIHZpZGVvIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICB9XG5cbiAgICAuaWZyYW1lX19jb250YWluZXIge1xuICAgICAgICAvLyBwYWRkaW5nOjA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgaGVpZ2h0OiA1Ni4yNXZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTc3Ljc3Nzc3Nzc4dmggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5ibG9jay0tdmlkZW9fZW1iZWQuYmxvY2stLWNhcHRpb24ge1xuICAgIGZpZ3VyZSB7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGJ1dHRvblxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogJHNwYWNpbmctbWQgMCAwIDA7XG4gIEBleHRlbmQgLnRzLWJ1dHRvbjtcbiAgQGV4dGVuZCAudHMtYm9sZDtcbiAgY29sb3I6ICRiYXNlLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRzcGFjaW5nLXh4cyAkc3BhY2luZy14cztcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRiYXNlLWNvbG9yO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIC5idXR0b25fX2lubmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIEBleHRlbmQgJWRvdDtcbiAgfVxuXG4gICYtLXdoaXRlIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgLmJ1dHRvbl9faW5uZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIC5idXR0b24ge1xuLy8gICAvLyByZXNldFxuLy8gICBiYWNrZ3JvdW5kOiBub25lO1xuLy8gICBib3JkZXI6IG5vbmU7XG4vLyAgIHBhZGRpbmc6IDA7XG4vLyAgIC8vIHByb3BlcnRpZXNcbi8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICBAZXh0ZW5kIC50cy1ib2R5O1xuLy8gICBjb2xvcjogJGJhc2UtY29sb3I7XG4vLyAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbi8vICAgcGFkZGluZy1ib3R0b206IC4zZW07XG4vLyAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGgtc20gc29saWQgJGJhc2UtY29sb3I7XG4vLyB9XG5cbi8vIC5idXR0b24uYnV0dG9uLS1hbGVydHtcbi8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICBAZXh0ZW5kICVmb250LXNpemUtc207XG4vLyAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4vLyAgIGxlZnQ6IDI1cHg7XG4vLyAgIC5idXR0b25fX2lubmVye1xuLy8gICAgIGJvcmRlcjogJGJvcmRlci13aWR0aC1zbSBzb2xpZCAkd2hpdGU7XG4vLyAgICAgcGFkZGluZzogJHNwYWNpbmcteHhzO1xuLy8gICB9XG4vLyAgICY6YmVmb3Jle1xuLy8gICAgIGNvbnRlbnQ6IFwi4pePXCI7XG4vLyAgICAgZm9udC1zaXplOiAzMnB4O1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICBsZWZ0OiAtMjVweDtcbi8vICAgICB0b3A6LThweDtcbi8vICAgfVxuLy8gfVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgdGF4b25vbXlcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIC50YXhvbm9teSB7XG4vLyAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4vLyAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgIGZsZXgtd3JhcDogd3JhcDtcbi8vIH1cbi8vIC50YXhvbm9teV9fbGlzdCB7XG4vLyAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4vLyB9XG4vLyAudGF4b25vbXlfX2l0ZW0ge1xuLy8gICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXh4cztcbi8vICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteHM7XG4vLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vIH1cbi8vIC50YXhvbm9teV9fbGluayB7XG4vLyAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbi8vICAgY29sb3I6ICR3aGl0ZTtcbi8vICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuLy8gICBAZXh0ZW5kIC50cy1sYWJlbDtcbi8vICAgcGFkZGluZzogLjJlbSAuNWVtO1xuLy8gICBib3JkZXItcmFkaXVzOiAzcHg7XG4vLyAgIGJvcmRlcjogJGJvcmRlci13aWR0aC1zbSBzb2xpZCB0cmFuc3BhcmVudDtcbi8vICAgJjpob3ZlciB7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktY29sb3IgIWltcG9ydGFudDtcbi8vICAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4vLyAgICAgYm9yZGVyLWNvbG9yOiAkZ3JheTtcbi8vICAgfVxuLy8gfSIsIi5oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAkYmFzZS1jb2xvcjtcbiAgcGFkZGluZy10b3A6IDExMi41JTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuICB9XG5cbiAgJl9fdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdmlkZW8ge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLWNvbG9yO1xuICAgIEBleHRlbmQgJXBhZGRpbmc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgaDEge1xuICAgICAgQGV4dGVuZCAudHMtYm9keS14bDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLmlzLXBsYXlpbmd7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGZvb3RlclxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5mb290ZXIge1xuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGV4dGVuZCAlaW5uZXI7XG4gICAgICAgIEBleHRlbmQgJXBhZGRpbmc7XG4gICAgICAgIEBleHRlbmQgJWZvbnQtc2l6ZS1sZztcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1kO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFzZS1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAmX19sZWZ0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1sZztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAuYm9keSBoMyB7XG4gICAgICAgIEBleHRlbmQgJWZvbnQtYm9keTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICBhLm5ld3Mge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAuaWNvbi0tMjQtNyB7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYW5pbWF0aW9uOiBibGluayAxcyBzdGVwLXN0YXJ0IGluZmluaXRlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2hvcCAuZm9vdGVyIHtcbiAgICAuZm9vdGVyX19yaWdodCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIGZvcm1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuLmZvcm0ge1xuICBsYWJlbCB7XG4gICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14cztcbiAgfVxuICAuaW5wdXQtZ3JvdXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGgtc20gc29saWQgJGdyYXk7XG4gICAgd2lkdGg6ICRjb250ZW50LW1heC13aWR0aDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaW5wdXQsXG4gICAgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGhlaWdodDogNDVweDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLXhzICRzcGFjaW5nLXhzO1xuICAgIH1cbiAgICBidXR0b257XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBmb250LXNpemU6IDA7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGJhY2tncm91bmQ6IHVybCgnaW1hZ2VzL2ljb24tY2hlY2suc3ZnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiAgLm5vLXRvdWNoZXZlbnRzIC5mb3JtIGJ1dHRvbjpob3ZlciB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIHBhZ2luYXRpb25cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcblxuICAmX19idXR0b24ge1xuICAgIEBleHRlbmQgLnRzLWJ1dHRvbjtcbiAgICBAZXh0ZW5kIC50cy1ib2xkO1xuICAgIEBleHRlbmQgJXBhZGRpbmc7XG4gICAgZmxleDogMTtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgY29sb3I6ICRiYXNlLWNvbG9yO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBtZWRpYShob3Zlcjpob3Zlcikge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFzZS1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIud3JhcHBlci0taG9tZXtcbiAgLmhlYWRlcntcbiAgICBjb2xvcjokd2hpdGU7XG4gIH1cblxuICAubWFpbntcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgLm1haW5fX2lubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gIH1cblxuICAuYmxvY2stLXRleHQge1xuICAgIGNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgfVxufVxuXG4ud3JhcHBlci0taG9tZTpub3QoLm1lbnUtb3Blbil7XG4gIC5oZWFkZXJ7XG4gICAgbWl4LWJsZW5kLW1vZGU6IGV4Y2x1c2lvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAuaGVhZGVyX19tZW51e1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIH1cbn1cbiIsIi5kZXRhaWwge1xuICAubWFpbl9faW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgfVxufSIsIi5leHBlcnRpc2Uge1xuICAgIC5tYWluX19pbm5lciB7XG4gICAgICAgIEBleHRlbmQgJXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy14bDtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhc2UtY29sb3I7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWxnO1xuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXNtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW50cm8ge1xuICAgICAgICAgICAgQGV4dGVuZCAudHMtYm9keS14bDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzVjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWJjb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW1kO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1sZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMjtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAkc3BhY2luZy1tZCAqIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZWRpYSB7XG4gICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnRzLWJvZHktbGluaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuY29udGFjdCB7XG5cbiAgLm1haW5fX2lubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFzZS1jb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmcteGw7XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuXG4gICAgJl9fYm9keSxcbiAgICAmX19tZWRpYSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gI3skc3BhY2luZy1tZH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgQGV4dGVuZCAudHMtYm9keS1sZztcbiAgICAgIEBleHRlbmQgJXBhZGRpbmc7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIud3JhcHBlci5zaG9we1xuICAuaGVhZGVyX19tZW51LFxuICAuZm9vdGVyX19pbm5lcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBhe1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cbiAgLmhlYWRlcl9fbWVudXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaGVhZGVye1xuICAgIC5tZW51X19uYXZ7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmljb24tLW1lbnV7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuaWNvbnNfX2xhc3R7XG4gICAgICAuY2FydF9fbGlua3tcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC5pY29ucyAuY2FydF9fbGlua3tcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICAgIC5pY29uLS1sb2dve1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gICAgfVxuICAgIC5pY29uLS1tZW51e1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZTtcbiAgICB9XG4gIH1cbn1cblxuXG4ud3JhcHBlci0tcHJvZHVjdHNfaW5kZXgge1xuICAuYmxvY2t7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgQGV4dGVuZCAlcGFkZGluZztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG4iLCIud3JhcHBlci0tcHJvZHVjdHtcblxuICAuc2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgJl9fYm9keSxcbiAgICAmX19tZWRpYSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYm9keXtcbiAgICAgIEBleHRlbmQgJXBhZGRpbmc7XG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgdG9wOiA5MHB4O1xuICAgICAgaDF7XG4gICAgICAgIEBleHRlbmQgLnRzLWJvZHkteGw7XG4gICAgICB9XG4gICAgICBoMyB7XG4gICAgICAgIEBleHRlbmQgLnRzLXN1YnRpdGxlO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2tfcHJpY2V7XG4gICAgICAuYnRfYnV5e1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc207XG4gICAgICAgIGNvbG9yOiAkcHVycGxlO1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn1cbiIsIi5zbmlwY2FydHtcbiAgKntcbiAgICBmb250LWZhbWlseTogXCJjZXJlYnJpX3NhbnNsaWdodFwiICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc25pcGNhcnRfX2FjdGlvbnMtLWxpbmt7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxuXG4gIC5zbmlwY2FydC1idXR0b24tbGlua3tcbiAgICBjb2xvcjogJHB1cnBsZTtcbiAgfVxuXG4gIC5zbmlwY2FydC1jYXJ0LWJ1dHRvbixcbiAgLnNuaXBjYXJ0LWJhc2UtYnV0dG9uLFxuICAuc25pcGNhcnRfX2JveC0tYmFkZ2UtaGlnaGxpZ2h0e1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zbmlwY2FydF9fYm94LS1iYWRnZXtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLnNuaXBjYXJ0X19ib3gtLWJhZGdlLnNuaXBjYXJ0X19mb250LS1zZWNvbmRhcnl7XG4gICAgY29sb3I6ICRwdXJwbGU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJleHRlcm5hbC9faW5jbHVkZS1tZWRpYS5zY3NzXCI7XG5AaW1wb3J0IFwiX3ZhcmlhYmxlcy5zY3NzXCI7XG5cbkBpbXBvcnQgXCJ1dGlscy9fcmVzZXQuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL19mb250cy5zY3NzXCI7XG5AaW1wb3J0IFwidXRpbHMvX21peGlucy5zY3NzXCI7XG5AaW1wb3J0IFwidXRpbHMvX3R5cG9ncmFwaHkuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL19tZWRpYXMuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL19taXNjLnNjc3NcIjtcbkBpbXBvcnQgXCJ1dGlscy9fZ2xvYmFsLnNjc3NcIjtcblxuLy8gY29tcG9uZW50c1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2hlYWRlci5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fYmxvY2suc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2J1dHRvbi5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fdGF4b25vbXkuc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2hlcm8uc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fZm9ybS5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzXCI7XG5cbi8vIHRlbXBsYXRlc1xuQGltcG9ydCBcInRlbXBsYXRlcy9faG9tZS5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL19kZXRhaWwuc2Nzc1wiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9fZXhwZXJ0aXNlLnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvX2NvbnRhY3Quc2Nzc1wiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9fc2hvcC5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL19zaG9wX2RldGFpbC5zY3NzXCI7XG5cbi8vIHNuaXBjYXJ0XG5AaW1wb3J0IFwic25pcGNhcnQvX3NuaXBjYXJ0LnNjc3NcIjtcbkBpbXBvcnQgXCJzbmlwY2FydC9fc25pcGNhcnQtbW9kYWwuc2Nzc1wiO1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCQVNFLVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogMTZcblxuMTQgPSAwLjg3NVxuMTggPSAxLjEyNVxuMjIgPSAxLjM3NVxuMzYgPSAyLjI1XG5cblxuKi9cblxuaHRtbCB7XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+bGdcIikge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gIGZvbnQtc2l6ZTogMThweDtcblxuICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICB9XG59XG5cbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIEBleHRlbmQgJWZvbnQtYm9keTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBjb2xvcjogJGJhc2UtY29sb3I7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXG4gIC8vIDo6c2VsZWN0aW9uLFxuICAvLyA6Oi1tb3otc2VsZWN0aW9uIHtcbiAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgLjIpO1xuICAvLyBjb2xvcjogJGJhc2UtY29sb3I7XG4gIC8vIH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQUklOVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5AaW1wb3J0IFwidXRpbHMvX3ByaW50LXN0eWxlLnNjc3NcIjtcblxuQG1lZGlhIHByaW50IHtcbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgcHJpbnQtc3R5bGU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICBwcmludCBzdHlsZVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5AbWl4aW4gcHJpbnQtc3R5bGUge1xuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAyY20gMi41Y207XG4gIH1cbiAgYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZwdDtcbiAgICBsaW5lLWhlaWdodDogMjJwdDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwLFxuICB1bCxcbiAgb2wge1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBzZXJpZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIFx0Zm9udC12YXJpYW50OiBub3JtYWw7XG4gIFx0Zm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICBoMSB7XG4gIFx0Zm9udC1zaXplOiAzMnB0O1xuICBcdGxpbmUtaGVpZ2h0OiA0MHB0O1xuICB9XG4gIGgyIHtcbiAgXHRmb250LXNpemU6IDI0cHQ7XG4gIFx0bGluZS1oZWlnaHQ6IDMwcHQ7XG4gIH1cbiAgaDMge1xuICBcdGZvbnQtc2l6ZTogMjBwdDtcbiAgXHRsaW5lLWhlaWdodDogMjZwdDtcbiAgfVxuICBoNCB7XG4gIFx0Zm9udC1zaXplOiAxNHB0O1xuICBcdGxpbmUtaGVpZ2h0OiAyMHB0O1xuICB9XG4gIHAsXG4gIHVsLFxuICBvbCxcbiAgYmxvY2txdW90ZSB7XG4gIFx0Zm9udC1zaXplOiAxMXB0O1xuICBcdGxpbmUtaGVpZ2h0OiAxNnB0O1xuICB9XG4gIGJsb2NrcXVvdGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA5cHQ7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHQ7XG4gIH1cbiAgcCB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDZ7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbiAgaHIge1xuICAgIGJvcmRlcjogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgICBtYXJnaW46IC4zY20gMDtcbiAgfVxuICAuYXJ0aWNsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAuaGVhZGVyLFxuICAuZm9vdGVyLFxuICAuc2VjdGlvbi5wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIGJvZHkge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuICAuYm9keSB7XG4gICAgcCB7d2lkb3dzIDozIDsgb3JwaGFucyA6IDMgOyB9XG4gICAgYSB7cGFnZS1icmVhay1pbnNpZGU6YXZvaWR9XG4gICAgYmxvY2txdW90ZSB7cGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO31cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsgcGFnZS1icmVhay1hZnRlcjphdm9pZDsgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQgfVxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOmF2b2lkOyBwYWdlLWJyZWFrLWFmdGVyOmF2b2lkOyB9XG4gICAgdGFibGUsIHByZSB7IHBhZ2UtYnJlYWstaW5zaWRlOmF2b2lkIH1cbiAgICB1bCwgb2wsIGRsICB7IHBhZ2UtYnJlYWstYmVmb3JlOmF2b2lkIH1cbiAgICBhOmxpbmssIGE6dmlzaXRlZCwgYSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjMkM1MURGO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIGFbaHJlZl49aHR0cF06YWZ0ZXIge2NvbnRlbnQ6XCIgPFwiIGF0dHIoaHJlZikgXCI+IFwiO31cbiAgICBhcnRpY2xlIGFbaHJlZl49XCIjXCJdOmFmdGVyIHsgY29udGVudDogXCJcIjt9XG4gICAgYTpub3QoOmxvY2FsLWxpbmspOmFmdGVyIHtjb250ZW50OlwiIDxcIiBhdHRyKGhyZWYpIFwiPiBcIjt9XG4gIH1cbn1cbiJdfQ== */
