/* Base styles */
:root {
    /* Базовые */
    --color-1: #fff;
    --color-2: #000;

    /* Фирменные */
    --color-3: #E65901;
    --color-4: #E24E2A;
    --color-5: #EEC479;
    --color-6: #D4D2D2;
    --color-7: #151515;
    --color-8: #EBEBEB;

    /* Служебные: ошибки, статусы, подписи */
    --color-error: #f44336;
    --color-error-bg: rgba(244, 67, 54, 0.05);
    --color-success: #4CAF50;
    --color-placeholder: #6C6B6B;
    --color-muted: #666;
    --color-border: #888;
    --gradient-1: linear-gradient(to bottom, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));
    --gradient-2: linear-gradient(to bottom, hsl(0, 0%, 0%), hsla(0, 0%, 0%, 0));
    --gradient-3: linear-gradient(to left, #F1ECE4, #DAD8D7);
}

:root {
    /* Семейство шрифтов TT Norms Pro (вариативный) */
    --font-1: "TT Norms Pro", sans-serif;
    --font-1-extended: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
}

:root {
    --header-fixed-height: 11.2rem;
}

@media (min-width: 1200px) {

:root {
        --header-fixed-height: 12rem;
}
    }

:root {
    --transition-1: 0.25s all ease-out;
    --transition-2: 0.5s all ease-out;
    --transition-3: 1s all ease-out;
}

:root {
    --z-index-1: 1000;
    --z-index-2: 990;
    --z-index-3: 980;
    --z-index-4: 970;
    --z-index-5: 960;
    --z-index-6: 950;
    --z-index-7: 940;
    --z-index-8: 930;
    --z-index-9: 920;
    --z-index-10: 910;
}
/* TT Norms Pro Expanded */
@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-DemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* TT Norms Pro Basic */
@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Thin.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-ExtraLight.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-DemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  height: 100%;

  /* Якорные переходы с отступом под липкую шапку */
  scroll-padding-top: calc(11.2rem + 1rem);
  scroll-padding-top: calc(var(--header-fixed-height) + 1rem);
}

body {
  position: relative;

  /* Без height: 100% скролл-контейнером остаётся документ. С ним контейнером
     становился body: scroll-padding на html игнорировался, window.scrollTo не
     работал, а на iOS после якорного перехода прокрутка «залипала». */
  min-height: 100vh;
  margin: 0;
  padding: 0;
  color: #000;
  color: var(--color-2);
  background-color: #fff;
  background-color: var(--color-1);
}

/* clip, а не hidden: hidden по одной оси делает элемент скролл-контейнером по
   другой — именно из-за этого ломался sticky и под него добавляли height: 100%. */
body,
html {
  overflow-x: clip;
}

[dir="ltr"] {
  direction: ltr;
  text-align: left;
}

[dir="rtl"] {
  direction: rtl;
  text-align: right;
}

span,
a,
strong,
em,
b,
i,
u,
mark,
small,
code,
label,
button,
input,
select,
textarea,
img,
sub,
sup,
abbr,
cite,
q,
time,
kbd,
var,
samp,
dfn,
bdo,
br,
wbr,
data,
meter,
progress,
ruby,
rt,
rp,
del,
ins,
s,
h1,
h2,
h3,
h4,
h5,
h6 {
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: top;
}

img {
  display: block;
  line-height: 1;
}

*::-webkit-scrollbar {
  width: .2rem;
  height: .2rem;
}



*::-webkit-scrollbar-thumb {
  background: hsla(0, 0%, 0%, 0.3);
  border-radius: 2rem;
}

*::-webkit-scrollbar-track {
  background: hsla(0, 0%, 0%, 0.1);
}
html {
  font-size: 10px;
}

* {
  font-size: 1em;
}

body,
input,
select,
textarea {
    font-size: 1.4rem;
    font-family: "TT Norms Pro", sans-serif;
    font-family: var(--font-1);
    font-weight: 300;
    line-height: 1.2;
}

@media (min-width: 1200px) {

body,
input,
select,
textarea {
        font-size: 1.6rem;
}
    }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 600;
  line-height: 1.1;
}

.h1 {
  font-size: 1.8em;
}

@media (min-width: 1200px) {

.h1 {
    font-size: 3.2em;
}
  }

.h2 {
  font-size: 1.6em;
}

@media (min-width: 1200px) {

.h2 {
    font-size: 2.8em;
}
  }

.h3 {
  font-size: 1.4em;
}

@media (min-width: 1200px) {

.h3 {
    font-size: 2.4em;
}
  }

.h4 {
  font-size: 1.2em;
}

@media (min-width: 1200px) {

.h4 {
    font-size: 2.0em;
}
  }

.h5 {
  font-size: 1em;
}

@media (min-width: 1200px) {

.h5 {
    font-size: 1.6em;
}
  }

.h6 {
  font-size: 0.9em;
}

@media (min-width: 1200px) {

.h6 {
    font-size: 1.2em;
}
  }

b,
strong {
  font-weight: 700;
}

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

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

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

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

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

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

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

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

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

.font-1 {
  font-family: "TT Norms Pro", sans-serif;
  font-family: var(--font-1);
}

.text-lg {
  font-size: 1.8em;
  line-height: 1.1em;
}

@media (min-width: 1200px) {

.text-lg {
    font-size: 2.4em;
}
  }

.text-md {
  font-size: 1.4em;
  line-height: 1.1em;
}

.desc {
  font-size: 1em;
}

@media (min-width: 1200px) {

.desc {
    font-size: 0.9em;
}
  }

.longread {
  font-size: 0.8em;
}
.container {
  position: relative;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}
@media (min-width: 1200px) {
.container {
    max-width: 1700px;
    margin-left: auto;
    margin-right: auto;
}
  }

.container-sm {
  position: relative;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}

@media (min-width: 1200px) {

.container-sm {
    max-width: 80rem;
    margin-left: calc((100vw - 80rem)/2);
    margin-right: calc((100vw - 80rem)/2);
}
  }

@media (min-width: 1441px) {

.container-sm {
    max-width: 80rem;
    margin-left: calc((100vw - 80rem)/2);
    margin-right: calc((100vw - 80rem)/2);
}
  }

.container-md {
  position: relative;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}

@media (min-width: 1200px) {

.container-md {
    max-width: 99.2rem;
    margin-left: calc((100vw - 99.2rem)/2);
    margin-right: calc((100vw - 99.2rem)/2);
}
  }

.container-left {
  width: 100%;
  padding-left: 1rem;
}

@media (min-width: 1200px) {

.container-left {
    width: calc(100vw - ((100vw - 1700px) / 2));
    margin-left: calc((100vw - 1700px) / 2);
}
  }

@media (min-width: 1441px) {

.container-left {
    width: calc(100vw - ((100vw - 1700px) / 2));
    margin-left: calc((100vw - 1700px) / 2);
    margin-right: calc((100vw - 1700px) / 2);
}
  }

.container-left.offset {
  padding-left: 2rem;
}

@media (min-width: 1200px) {

.container-left.offset {
    width: 100%;
    margin-left: 0;
    padding-left: max(2rem, calc((100vw - 1700px) / 2 + 2rem));
}
  }

@media (min-width: 1441px) {

.container-left.offset {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: max(2rem, calc((100vw - 1700px) / 2 + 2rem));
}
  }

.section {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

@media (min-width: 1200px) {

.section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
  }

.container-full {
  width: 100%;
}
/* ============================================
   Link — base
   ============================================ */

.link {
  position: relative;
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s ease-out;
  -webkit-tap-highlight-color: transparent;
}

.link:focus {
  outline: none;
}

.link:focus-visible {
  outline: 2px solid currentcolor;
  outline-offset: 2px;
}

.link:hover {
  opacity: 0.85;
}

.link:active {
  opacity: 0.7;
}

/* Override для button.link — без конфликта с hover кнопки */
.button.link,
.button.link:hover,
.button.link:active {
  opacity: 1;
  transition: background 0.25s all ease-out, border-color 0.25s all ease-out, color 0.25s all ease-out;
  transition: background var(--transition-1), border-color var(--transition-1), color var(--transition-1);
}

/* ============================================
   Link — modifiers
   ============================================ */

.link.inline {
  display: inline;
}

.link.underline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: currentcolor;
  transition: width 0.3s ease;
}

.link.underline:hover::after {
  width: 100%;
}

.link.disabled {
  opacity: 0.5;
  pointer-events: none;
}
/* ============================================
   Button — base
   ============================================ */

.button {
    position: relative;
    width: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    background: transparent;
    font-size: inherit;
    font-family: inherit;
    color: inherit;
    -webkit-text-decoration: none;
    text-decoration: none;
    border-width: .1rem;
    border-style: solid;
    border-color: transparent;
    cursor: pointer;
    transition: background 0.25s ease-out, background-color 0.25s ease-out, border-color 0.25s ease-out, color 0.25s ease-out;
    overflow: hidden;
    border-radius: 1rem;
    gap: 0.5rem;
}

/* ============================================
   Button — elements (component__element)
   ============================================ */

.button__icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button__item.content-wrap {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
    text-wrap: nowrap;
    transition: 0.5s all ease-out;
    transition: var(--transition-2);
}

.button__item.content-wrap::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.button__item.content-hidden {
    display: none;
}

.button__subitem.icon-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    transition: 0.25s all ease-out;
    transition: var(--transition-1);
    overflow: hidden;
}

/* ============================================
   Button — sizes
   ============================================ */

.button-sm {
    height: 4rem;
    gap: 1rem;
    padding: 0.75rem 2rem;
    font-size: 0.9em;
}

@media (min-width: 1200px) {

.button-sm {
        font-size: 1em;
}
    }

.button-md {
    height: 5rem;
    gap: 1rem;
    padding: 1rem 2rem;
}

.button-md .button__item.content-wrap::before {
    left: calc(-1 * (100% - 3rem));
}

.button-md .button__subitem.icon-wrap {
    height: 3rem;
    width: 3rem;
}

.button-md .button__icon {
    height: 1.4rem;
}

.button-md.button-circle {
    width: 5rem;
    justify-content: center;
    padding: 1rem;
}

.button-md.button-circle .button__subitem.icon-absolute {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    left: calc(-1 * (100% + 1rem));
}

.button-lg {
    height: 6rem;
    gap: 1rem;
    padding: 1rem;
    padding-right: 2rem;
    font-size: 1.1em;
}

.button-lg .button__item.content-wrap::before {
    left: calc(-1 * (100% - 4rem));
}

.button-lg .button__subitem.icon-wrap {
    height: 4rem;
    width: 4rem;
}

.button-lg .button__icon {
    width: 1.6rem;
}

/* ============================================
   Button — shapes
   ============================================ */

.button-circle {
    height: 4.6rem;
    width: 4.6rem;
    background: transparent;
    border: .1rem solid #fff;
    border: .1rem solid var(--color-1);
    border-radius: 50%;
}

.button.button-rounded {
    border-radius: 99rem;
}

/* ============================================
   Button — colors (background)
   ============================================ */

.button.bg-color-1 {
    background: #fff;
    background: var(--color-1);
    color: #000;
    color: var(--color-2);
}

.button.bg-color-1:hover {
    background: rgb(230, 230, 230);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-1:hover {
    background: color-mix(in srgb, var(--color-1), black 10%);
}
}

.button.bg-color-1:active,
.button.bg-color-1.active {
    background: rgb(204, 204, 204);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-1:active,
.button.bg-color-1.active {
    background: color-mix(in srgb, var(--color-1), black 20%);
}
}

.button.bg-color-2 {
    background: #000;
    background: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

.button.bg-color-2:hover {
    background: rgb(38, 38, 38);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-2:hover {
    background: color-mix(in srgb, var(--color-2), white 15%);
}
}

.button.bg-color-2:active,
.button.bg-color-2.active {
    background: rgb(77, 77, 77);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-2:active,
.button.bg-color-2.active {
    background: color-mix(in srgb, var(--color-2), white 30%);
}
}

.button.bg-color-3 {
    /* затемнённый оттенок бренд-оранжевого (--color-3) под белый текст: контраст 4.79:1 (WCAG AA) */
    background: #c44c01;
    color: #fff;
    color: var(--color-1);
}

.button.bg-color-3:hover {
    background: rgb(202, 94, 26);
}

.button.bg-color-3:active,
.button.bg-color-3.active {
    background: rgb(157, 61, 1);
}

.button.bg-color-6 {
    background: #D4D2D2;
    background: var(--color-6);
    color: #000;
    color: var(--color-2);
}

.button.bg-color-6:hover {
    background: rgb(42, 42, 42);
    color: #fff;
    color: var(--color-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-6:hover {
    background: color-mix(in srgb, var(--color-6), black 80%);
}
}

.button.bg-color-6:active,
.button.bg-color-6.active {
    background: #000;
    background: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

.button.bg-color-8 {
    background: #EBEBEB;
    background: var(--color-8);
    color: #000;
    color: var(--color-2);
}

.button.bg-color-8:hover {
    background: rgb(47, 47, 47);
    color: #fff;
    color: var(--color-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-8:hover {
    background: color-mix(in srgb, var(--color-8), black 80%);
}
}

.button.bg-color-8:active,
.button.bg-color-8.active {
    background: #000;
    background: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

/* ============================================
   Button — colors (outline)
   ============================================ */

.button.outline-color-1 {
    border-color: #fff;
    border-color: var(--color-1);
}

.button.outline-color-1:hover {
    border-color: #D4D2D2;
    border-color: var(--color-6);
}

.button.outline-color-1:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

.button.outline-color-2 {
    border-color: #000;
    border-color: var(--color-2);
}

.button.outline-color-2:hover {
    background: #000;
    background: var(--color-2);
    border-color: #000;
    border-color: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

.button.outline-color-2:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

/* Иконка-картинка совпадала бы с фоном при ховере (оба color-2) — инвертируем в белый */
.button.outline-color-2:hover .button__icon {
    filter: invert(1);
}

.button.outline-color-3 {
    border-color: #E65901;
    border-color: var(--color-3);
}

.button.outline-color-3:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

.button.outline-color-6 {
    border-color: #D4D2D2;
    border-color: var(--color-6);
}

.button.outline-color-6:hover {
    border-color: #fff;
    border-color: var(--color-1);
}

.button.outline-color-6:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

/* ============================================
   Button — animations
   ============================================ */

/* Стрелка через mask + currentColor — совпадает с color (важно для футера: белый текст на тёмном фоне) */
.button-animated.animation-shift:not(.loading)::after {
    content: "";
    display: block;
    flex-shrink: 0;
    right: 0;
    top: 0;
    width: 1.25rem;
    height: 1.25rem;
    background-color: currentcolor;
    -webkit-mask-image: url("/data/img/ui/icons/icon-arrow-right-sm-color-2.svg");
            mask-image: url("/data/img/ui/icons/icon-arrow-right-sm-color-2.svg");
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
    transition: transform 0.25s ease-out;
}

.button-animated.animation-shift:not(.loading):hover::after {
    transform: translateX(0.5rem);
}

.button-md.button-animated:hover .button__item.animation-shift {
    transform: translateX(calc(100% - 2rem));
}

.button-md.button-circle.button-animated:hover .button__item.animation-shift {
    transform: translateX(calc(100% + 1rem));
}

.button-md.button-circle.button-animated .button__subitem.icon-wrap.animation-rotate-90 {
    transition: 0.5s all ease-out;
    transition: var(--transition-2);
}

.button-md.button-circle.button-animated:hover .button__subitem.icon-wrap.animation-rotate-90 {
    transform: rotate(90deg);
}

.button-animated:hover .button__subitem.icon-wrap.animation-rotate-45 {
    transform: rotate(-45deg);
}

.button-animated:hover .button__subitem.icon-wrap.animation-fly .button__icon {
    animation: fly 0.5s ease-out forwards;
}

.button-animated:hover .button__subitem.icon-wrap.animation-top-to-down .button__icon {
    animation: top-to-down 0.5s ease-out forwards;
}

.button-animated:hover .button__subitem.icon-wrap.animation-scale .button__icon {
    animation: scale 0.5s ease-out forwards;
}

.button-animated:hover .button__subitem.icon-wrap.animation-icon-up .button__icon {
    animation: top-to-down 0.5s ease-out forwards;
}
.color-1 {
  color: #fff;
  color: var(--color-1);
}

.color-2 {
  color: #000;
  color: var(--color-2);
}

.color-3 {
  color: #E65901;
  color: var(--color-3);
}

.color-4 {
  color: #E24E2A;
  color: var(--color-4);
}

.color-5 {
  color: #EEC479;
  color: var(--color-5);
}

.color-6 {
  color: #D4D2D2;
  color: var(--color-6);
}

.color-8 {
  color: #EBEBEB;
  color: var(--color-8);
}

.bg-color-1 {
  background: #fff;
  background: var(--color-1);
}

.bg-color-2 {
  background: #000;
  background: var(--color-2);
}

.bg-color-3 {
  background: #E65901;
  background: var(--color-3);
}

.bg-color-4 {
  background: #E24E2A;
  background: var(--color-4);
}

.bg-color-5 {
  background: #EEC479;
  background: var(--color-5);
}

.bg-color-6 {
  background: #D4D2D2;
  background: var(--color-6);
}

.bg-color-7 {
  background: #151515;
  background: var(--color-7);
}

.bg-color-8 {
  background: #EBEBEB;
  background: var(--color-8);
}

.opacity-08 {
  opacity: 0.08;
}

.opacity-10 {
  opacity: 0.1;
}

.opacity-12 {
  opacity: 0.12;
}

.opacity-20 {
  opacity: 0.2;
}

.opacity-30 {
  opacity: 0.3;
}

.opacity-40 {
  opacity: 0.4;
}

.opacity-50 {
  opacity: 0.5;
}

.opacity-60 {
  opacity: 0.6;
}

.opacity-70 {
  opacity: 0.7;
}

.opacity-80 {
  opacity: 0.8;
}

.opacity-90 {
  opacity: 0.9;
}

.height-1 {
  height: 1px;
}

.height-2 {
  height: 2px;
}

.height-3 {
  height: 3px;
}

.height-4 {
  height: 4px;
}

.height-20 {
  height: 20px;
}

.height-46 {
  height: 46px;
}

.width-1 {
  width: 1px;
}

.width-100 {
  width: 100%;
}

.img-responsive {
  max-width: 100%;
  height: auto;
}

.nowrap {
  white-space: nowrap;
}

/* Утилита принудительного скрытия; !important — чтобы перебить контекстные display */
.hidden {
  display: none !important;
}

.flex-grow-1 {
  flex-grow: 1;
}

.custom-checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.custom-checkbox__input {
  display: none;
}

.custom-checkbox__box {
  width: 2rem;
  height: 2rem;
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  transition: border-color 0.3s ease;
  position: relative;
}

.custom-checkbox__box:hover {
  border-color: #888;
  border-color: var(--color-border);
}

.custom-checkbox__icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: #fff;
  stroke: var(--color-1);
  stroke-width: 0.2rem;
  visibility: hidden;
}

.custom-checkbox__input:checked+.custom-checkbox__box {
  background-color: #E24E2A;
  background-color: var(--color-4);
  border-color: #E24E2A;
  border-color: var(--color-4);
}

.custom-checkbox__input:checked+.custom-checkbox__box .custom-checkbox__icon {
  visibility: visible;
  transform: scale(1);
}

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

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

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

.uppercase {
  text-transform: uppercase;
}

.icon-sm-wrap {
  width: 3.6rem;
  height: 3.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

@media (min-width: 1200px) {

.icon-sm-wrap {
    width: 4.5rem;
    height: 4.5rem;
}
  }

.icon-sm-wrap:hover {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.icon-sm {
  width: auto;
  height: 3rem;
}

.animation-bw-color {
    filter: grayscale(100%);
    transition: filter 0.2s ease;
}

.animation-bw-color:hover {
    filter: grayscale(0%);
}

/* Затемнение: чёрный оверлей на hover, текст и иконки не закрывает */
.animation-darken {
    position: relative;
}

.animation-darken::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #000;
    opacity: 0;
    transition: opacity 0.25s ease-out;
    pointer-events: none;
}

.animation-darken:hover::after {
    opacity: 1;
}

/* Зум фона: помечает элемент. Реализация — рядом с конкретным компонентом
   (например, .card-gradient.animation-zoom:hover .card-gradient__cover) */
.animation-zoom {
    position: relative;
    overflow: hidden;
}

a.link.animation-zoom:hover {
    opacity: 1;
}

/* Сдвиг фона вниз на hover (реализация — рядом с конкретным компонентом) */
.animation-shift-down {
    position: relative;
    overflow: hidden;
}

a.link.animation-shift-down:hover {
    opacity: 1;
}

.no-zoom img {
  transform: scale(1);
}

/* Skip-link: скрыт до фокуса (доступность, WCAG) */
.skip-link {
  position: absolute;
  left: -9999px;
  z-index: 9999;
  padding: 0.5rem 1rem;
  background: #fff;
  background: var(--color-1, #000);
  color: #fff;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.skip-link:focus {
  left: 0.5rem;
  top: 0.5rem;
}
/* ============================================
   Keyframes — visibility
   ============================================ */

@keyframes fadein {
    from {
        opacity: 0;
        visibility: visible;
    }

    to {
        opacity: 1;
        visibility: visible;
    }
}

@keyframes fadeout {
    from {
        opacity: 1;
        visibility: visible;
    }

    to {
        opacity: 0;
        visibility: hidden;
    }
}

/* ============================================
   Keyframes — directional movement
   ============================================ */

@keyframes fly {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(150%, -150%);
        opacity: 1;
    }

    51% {
        transform: translate(-150%, 150%);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

@keyframes left-to-right {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(150%, 0);
        opacity: 1;
    }

    51% {
        transform: translate(-150%, 0);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

@keyframes top-to-down {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(0%, 150%);
        opacity: 1;
    }

    51% {
        transform: translate(0, -150%);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

@keyframes down-to-top {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(0%, -150%);
        opacity: 1;
    }

    51% {
        transform: translate(0, 150%);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

/* ============================================
   Keyframes — transform
   ============================================ */

@keyframes scale {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.5);
        opacity: 1;
    }

    51% {
        transform: scale(1.5);
        opacity: 1;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* ============================================
   Keyframes — loading / spinner
   ============================================ */

@keyframes spinner {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Sections */
.header {
  position: relative;
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
  z-index: 970;
  z-index: var(--z-index-4);
  background: linear-gradient(to bottom, hsl(0, 0%, 0%), hsla(0, 0%, 0%, 0));
  background: var(--gradient-2);
  box-shadow: 0 2px 5px transparent;
  transition: background 0.25s ease-out, box-shadow 0.25s ease-out;
}
@media (min-width: 1200px) {
.header {
    padding-top: 1.6rem;
    padding-bottom: 1.6rem;
}
  }

.header.fixed {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  background: #000;
  background: var(--color-2);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.header .section__item.logo-wrap {
  flex-shrink: 0;
  z-index: 970;
  z-index: var(--z-index-4);
  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.header.header-logo-visible {
  background: #000;
  background: var(--color-2);
}

.header.fixed .section__item.logo-wrap,
.header.header-logo-visible .section__item.logo-wrap {
  opacity: 1;
}

.header:has(.burger-icon.active) {
  background: #000;
  background: var(--color-2);
}

.header:has(.burger-icon.active) .section__item.logo-wrap {
  opacity: 1;
}

.header .section__item.logo-wrap a {
  display: flex;
  width: 9.4rem;
  height: auto;
  transition: all 0.5s ease-out;
}

@media (min-width: 1200px) {

.header .section__item.logo-wrap a {
    width: 14rem;
}
  }

.header .section__item.actions-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
  gap: 0.8rem;
  margin-left: auto;
}

.header .section__item.actions-wrap .section__subitem.actions-wrap__row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.header .section__item.actions-wrap .button {
  font-size: 0.85em;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.header .section__item.actions-wrap .bottom-row {
  display: flex;
}

.header .section__item.actions-wrap .section__inner.text-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-size: 0.85em;
  line-height: 1.15;
  color: #fff;
  color: var(--color-1);
  text-align: right;
}


/* Перетекание логотипа между интро и шапкой (включает logo-flow.twig).
   Пока скрипт не отработал, шапка ведёт себя как прежде. */
.logo-flow-on .header .section__item.logo-wrap {
  opacity: 1;
}

.logo-flow-on .header__logo {
  transform: translate3d(0, 0, 0) scale(1);
  transform: translate3d(var(--logo-flow-x, 0), var(--logo-flow-y, 0), 0) scale(var(--logo-flow-scale, 1));
  transform-origin: center center;
  will-change: transform;
}

/* Знак в интро гасим: на экране остаётся один логотип — тот, что переезжает */
.logo-flow-on .intro__logo {
  opacity: 0;
}

/* Пока логотип «в интро», он не должен перекрываться шапкой и ловить клики мимо */
.logo-flow-on .header .section__item.logo-wrap {
  pointer-events: none;
}

.logo-flow-on.logo-flow-docked .header .section__item.logo-wrap {
  pointer-events: auto;
}

/* Круг перетекающего знака повторяет состояние интро */
.logo-flow-on .header__logo .logo-mark,
.logo-flow-on .header__logo .logo-figure {
  /* Паузу перед перекраской держит скрипт: он ставит класс, когда знак уже замер. */
  transition: fill 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.logo-flow-on:not(.logo-flow-docked) .header__logo .logo-mark {
  fill: #fff;
}

.logo-flow-on:not(.logo-flow-docked) .header__logo .logo-figure {
  fill: #151515;
  fill: var(--color-7);
}

.logo-flow-on:not(.logo-flow-docked) .intro:hover ~ * .header__logo .logo-mark {
  fill: #c72229;
}

@media (prefers-reduced-motion: reduce) {
  .logo-flow-on .header__logo {
    transform: none;
  }

  .logo-flow-on .intro__logo {
    opacity: 1;
  }
}
.footer.section {
  position: relative;
  padding-top: 3rem;
  padding-bottom: 1rem;
  border-radius: 1rem 1rem 0 0;
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  z-index: 940;
  z-index: var(--z-index-7);
}
@media (min-width: 1200px) {
.footer.section {
    padding-top: 4rem;
    padding-bottom: 2rem;
}
  }

.footer .section__item.background-wrap {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 80%;
  height: 100%;
  z-index: -1;
}

@media (min-width: 1200px) {

.footer .section__item.background-wrap {
    bottom: -2rem;
    width: 40%;
}
  }

.footer .background {
  width: 100%;
  height: 100%;
  background-image: var(--bg-image);
  background-size: contain;
  background-position: bottom right;
  background-repeat: no-repeat;
}

.footer .container {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "form"
    "links"
    "bottom";
  grid-row-gap: 3rem;
  row-gap: 3rem;
}

@media (min-width: 992px) {

.footer .container {
    grid-template-columns: 30% 30%;
    justify-content: space-between;
    grid-template-areas:
      "form links"
      "bottom bottom";
    gap: 4rem 2rem;
}
  }

.footer .section__item.form-wrap {
  grid-area: form;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.footer .section__subitem.form-inner-wrap {
  width: 100%;
}

@media (min-width: 1200px) {

.footer .section__subitem.form-inner-wrap {
    width: 70%;
}
  }

.footer .section__subitem.heading-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.footer__heading {
  font-size: 1.2em;
  font-weight: 600;
}

.footer .section__item.links-wrap {
  grid-area: links;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.footer .section__subitem.nav-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 992px) {

.footer .section__subitem.nav-wrap {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(5, auto);
    justify-content: start;
    grid-gap: 0.5rem 2.5rem;
    gap: 0.5rem 2.5rem;
}
  }

.footer__link {
  font-size: 1em;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem; /* тап-зона ≥24px (a11y target-size) */
}

.footer .section__subitem.social-wrap {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

.footer .social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  background-color: #fff;
  background-color: var(--color-1);
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 50%;
  transition: background-color 0.25s all ease-out, border-color 0.25s all ease-out;
  transition: background-color var(--transition-1), border-color var(--transition-1);
}

.footer .social-link:hover {
  background-color: transparent;
}

.footer .social-link .icon-sm {
  width: auto;
  height: 1.6rem;
  max-width: 2.6rem;
  filter: invert(1);
  transition: filter 0.25s all ease-out;
  transition: filter var(--transition-1);
}

.footer .social-link:hover .icon-sm {
  filter: none;
}

.footer .social-link .icon-sm[src*="icon-vk"] {
  height: 1.3rem;
}

.footer__social-channel {
  border-radius: 1rem;
}

.footer .section__item.bottom-wrap {
  grid-area: bottom;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 992px) {

.footer .section__item.bottom-wrap {
    display: grid;
    grid-template-columns: 1fr 30%;
    grid-template-areas:
      "disclaimer copyright"
      "owner copyright";
    align-items: center;
    grid-gap: 0.5rem 2rem;
    gap: 0.5rem 2rem;
}
  }

.footer .section__subitem.disclaimer-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

@media (min-width: 992px) {

.footer .section__subitem.disclaimer-wrap {
    grid-area: disclaimer;
    flex-direction: row;
    gap: 2rem;
}
  }

@media (min-width: 992px) {
  .footer .section__subitem.owner-wrap {
    grid-area: owner;
  }

  .footer .section__subitem.copyright-wrap {
    grid-area: copyright;
  }
}

.footer__disclaimer-link {
  font-size: 0.8em;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem; /* тап-зона ≥24px (a11y target-size) */
}

.footer__owner {
  font-size: 0.8em;
  line-height: 1.3;
  margin-bottom: 0.6rem;
  opacity: 0.8;
}

.footer__copyright {
  font-size: 0.8em;
  line-height: 1.2;
}

.footer .form-callback__label {
  color: #fff;
  color: var(--color-1);
}

.footer .form-callback__required {
  color: #EEC479;
  color: var(--color-5);
}

.footer .form-callback__caption {
  color: #D4D2D2;
  color: var(--color-6);
}

.footer .form-callback .form-callback__input {
  color: #fff;
  color: var(--color-1);
  caret-color: #fff;
  caret-color: var(--color-1);
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

.footer .form-callback .form-callback__input::-moz-placeholder {
  color: #6C6B6B;
  color: var(--color-placeholder);
  opacity: 1;
}

.footer .form-callback .form-callback__input::placeholder {
  color: #6C6B6B;
  color: var(--color-placeholder);
  opacity: 1;
}

.footer .form-callback .form-callback__input:focus {
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

.footer .form-callback .form-callback__select {
  background-image: url("/data/img/ui/icons/icon-triangle-down-color-1.svg");
}

.footer .form-callback .form-callback__select:invalid {
  color: #6C6B6B;
  color: var(--color-placeholder);
}

.footer .form-callback .form-callback__select option {
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
}

.footer .form-callback__custom-checkbox {
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

.footer .form-callback__custom-checkbox .form-callback__checkmark {
  border-color: #fff;
  border-color: var(--color-1);
}

.footer .form-callback__checkmark::after {
  background: #fff;
  background: var(--color-1);
}

.footer .form-callback__placeholder {
  color: #D4D2D2;
  color: var(--color-6);
}

.footer .form-callback__rules {
  color: #D4D2D2;
  color: var(--color-6);
}
.burger-menu {
  /* Стили для burger-menu */
}

.burger-menu .container {
  /* Стили для контейнера в burger-menu */
}
.contacts {
  background-color: #fff;
  background-color: var(--color-1);
}
/* Справочник контактов: типографская сетка вместо карточек — это список для поиска
   нужной строки глазами, а не витрина. */

.contacts-hub {
  background-color: #fff;
  background-color: var(--color-1);
  color: #000;
  color: var(--color-2);
  padding-top: 0;
  padding-bottom: 8rem;
}

.contacts-hub .section__item + .section__item {
  margin-top: 7.2rem;
}

.contacts-hub__head {
  padding-top: calc(11.2rem + 2.4rem);
  padding-top: calc(var(--header-fixed-height) + 2.4rem);
  border-bottom: 1px solid #e2e0de;
  padding-bottom: 4rem;
}

.contacts-hub__h1 {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(4rem, min(9vw, 8rem));
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.contacts-hub__lead-copy {
  margin-top: 2.4rem;
  max-width: 58ch;
  font-size: max(1.6rem, min(2vw, 1.9rem));
  line-height: 1.5;
  color: #4a4a4a;
  text-wrap: pretty;
}

.contacts-hub__title,
.contacts-hub__subtitle {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  letter-spacing: -0.01em;
  line-height: 1.05;
  text-wrap: balance;
}

.contacts-hub__title {
  font-size: max(2.8rem, min(5vw, 4.4rem));
}

.contacts-hub__subtitle {
  font-size: max(2rem, min(3.4vw, 2.8rem));
  margin-bottom: 3.2rem;
}

/* --- Связь --- */

.contacts-hub__lead {
  display: grid;
  grid-gap: 3.2rem;
  gap: 3.2rem;
}

.contacts-hub__note {
  margin-top: 1.6rem;
  max-width: 52ch;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #4a4a4a;
  text-wrap: pretty;
}

.contacts-hub__email {
  display: inline-block;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: max(2rem, min(4vw, 3.2rem));
  font-weight: 400;
  letter-spacing: -0.02em;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  border-bottom: 1px solid rgba(230, 89, 1, 0.4);
  padding-bottom: 0.4rem;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.contacts-hub__email {
  border-bottom: 1px solid color-mix(in srgb, var(--color-3) 40%, transparent);
}
}

.contacts-hub__email:hover,
.contacts-hub__email:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

.contacts-hub__socials {
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem;
  margin-top: 2.4rem;
}

.contacts-hub__social {
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #4a4a4a;
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

.contacts-hub__social:hover,
.contacts-hub__social:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

/* --- Направления --- */

.contacts-hub__lines {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #e2e0de;
}

.contacts-hub__line {
  display: grid;
  grid-template-columns: minmax(18rem, 24rem) 1fr;
  grid-gap: 0.8rem 3.2rem;
  gap: 0.8rem 3.2rem;
  align-items: baseline;
  padding-top: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #e2e0de;
}

.contacts-hub__line-name {
  font-size: 1.8rem;
  font-weight: 500;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

a.contacts-hub__line-name:hover,
a.contacts-hub__line-name:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.contacts-hub__line-desc {
  font-size: 1.5rem;
  line-height: 1.55;
  color: #4a4a4a;
  text-wrap: pretty;
}

/* --- Точки --- */

.contacts-hub__city + .contacts-hub__city {
  margin-top: 4.8rem;
}

.contacts-hub__city-name {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #E65901;
  color: var(--color-3);
  margin-bottom: 1.6rem;
}

.contacts-hub__points {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #e2e0de;
}

.contacts-hub__point {
  display: grid;
  grid-template-columns: minmax(16rem, 1.1fr) minmax(18rem, 1.4fr) minmax(14rem, 0.8fr) auto;
  grid-gap: 0.6rem 2.4rem;
  gap: 0.6rem 2.4rem;
  align-items: baseline;
  padding-top: 1.8rem;
  padding-bottom: 1.8rem;
  border-bottom: 1px solid #e2e0de;
}

.contacts-hub__point-name {
  font-size: 1.7rem;
  font-weight: 500;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

.contacts-hub__point-name:hover,
.contacts-hub__point-name:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.contacts-hub__point-address {
  font-size: 1.5rem;
  color: #4a4a4a;
}

.contacts-hub__point-phone {
  font-size: 1.5rem;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

a.contacts-hub__point-phone:hover,
a.contacts-hub__point-phone:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.contacts-hub__point-map {
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #4a4a4a;
  -webkit-text-decoration: none;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

.contacts-hub__point-map:hover,
.contacts-hub__point-map:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

/* --- Реквизиты --- */

.contacts-hub__legal {
  font-size: 1.3rem;
  line-height: 1.6;
  color: #6a6a6a;
  max-width: 70ch;
}

.contacts-hub__legal p + p {
  margin-top: 0.8rem;
}

/* --- Адаптив --- */

@media (min-width: 768px) {
  .contacts-hub__lead {
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 4.8rem;
  }
}

@media (max-width: 900px) {
  .contacts-hub__point {
    grid-template-columns: 1fr auto;
    row-gap: 0.4rem;
  }

  .contacts-hub__point-name {
    grid-column: 1 / -1;
  }

  .contacts-hub__point-map {
    justify-self: end;
  }
}

@media (max-width: 600px) {
  .contacts-hub {
    padding-top: 4.8rem;
    padding-bottom: 6.4rem;
  }

  .contacts-hub .section__item + .section__item {
    margin-top: 5.6rem;
  }

  .contacts-hub__line {
    grid-template-columns: 1fr;
    gap: 0.6rem;
  }

  .contacts-hub__point {
    grid-template-columns: 1fr;
  }

  .contacts-hub__point-map {
    justify-self: start;
  }
}
.content {
  background-color: #fff;
  background-color: var(--color-1);
}

.content .container {
  /* Стили для контейнера в content */
}
.cookie-panel {
  position: fixed;
  bottom: 1rem;
  left: 0;
  right: 0;
  z-index: 980;
  z-index: var(--z-index-3);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.cookie-panel.hidden {
  display: none;
}

.cookie-panel.opening {
  opacity: 0;
  transform: translateY(100%);
}

.cookie-panel .section__item {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
  background-color: #fff;
  background-color: var(--color-1);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  border-radius: 2rem;
  margin: 0 1rem;
}

@media (min-width: 992px) {

.cookie-panel .section__item {
    padding: 3rem;
    flex-direction: row;
    align-items: center;
    margin: 0 2rem;
}
  }

.cookie-panel .desc-wrap {
  flex: 1;
}

.cookie-panel .desc {
  font-size: 1.4rem;
  line-height: 1.5;
  color: #000;
  color: var(--color-2);
}

.cookie-panel .button-wrap {
  flex-shrink: 0;
}

/* Тот же размер текста, что у кнопок шапки (.header .actions-wrap .button) —
   без override кнопка получала базовый 1em и выглядела крупнее остальных */
.cookie-panel .button {
  font-size: 0.85em;
}

/* Адаптация для мобильных устройств */
@media (max-width: 768px) {
  .cookie-panel {
    bottom: 0;
    left: 0;
    right: 0;
  }
  
  .cookie-panel .section__item {
    margin: 0;
    border-radius: 0;
    border-top-left-radius: 2rem;
    border-top-right-radius: 2rem;
  }
}
.intro {
  margin-top: -11.2rem;
}
@media (min-width: 1200px) {
.intro {
    margin-top: -12rem;
}
  }

.intro .swiper-container {
  width: 100%;
  height: 68.4rem;
  padding-bottom: 0;
  color: #fff;
  color: var(--color-1);
}

@media (min-width: 1200px) {

.intro .swiper-container {
    height: 83rem;
}
  }

.intro .section__item.slide-wrap.swiper-slide {
  position: relative;
  width: 100%;
  height: 100%;
  transition-property: opacity;
}

.intro .section__subitem.cover-wrap {
  position: relative;
  width: 100%;
  height: 100%;
}

.intro .section__subitem.cover-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: hsla(0, 0%, 0%, 0.2);
  z-index: 1;
}

.intro .cover {
  width: 100%;
  height: 100%;
  background-color: transparent;
  background-color: var(--bg-color, transparent);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.intro .section__item.logo-heading-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.intro .logo-heading-wrap .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  height: 100%;
  text-align: left;
  pointer-events: auto;
}

@media (min-width: 1200px) {

.intro .logo-heading-wrap .container {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 4rem;
}
  }

.intro .section__subitem.logo-wrap {
  width: 25rem;
  flex-shrink: 0;
}

@media (min-width: 1200px) {

.intro .section__subitem.logo-wrap {
    width: 42.5rem;
}
  }

@media (min-width: 1200px) {

.intro .section__subitem.empty-wrap {
    display: none;
}
  }

.intro .section__subitem.heading-wrap {
  padding-bottom: 4rem;
}

@media (min-width: 1200px) {

.intro .section__subitem.heading-wrap {
    padding-bottom: 0;
}
  }

.intro .section__subitem.logo-wrap img {
}

.intro .heading {
  font-size: 1.1em;

  /* На телефонах — текучий размер (vw), чтобы длинный заголовок интро ложился
     в 2 полные строки на ЛЮБОЙ ширине мобильного (ёмкость строки ~постоянна). */
}

@media (max-width: 539px) {

.intro .heading {
    font-size: max(1.05rem, min(3.4vw, 1.8rem));
}
  }

@media (min-width: 1200px) {

.intro .heading {
    font-size: 1.3em;
}
  }

.intro .swiper-pagination {
  z-index: 3;
  bottom: 2rem;
}

.intro .swiper-button-next,
.intro .swiper-button-prev {
  z-index: 3;

  --swiper-navigation-color: var(--color-1);

  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.intro:hover .swiper-button-next,
.intro:hover .swiper-button-prev {
  opacity: 0.5;
}

.intro:hover .swiper-button-next:hover,
.intro:hover .swiper-button-prev:hover {
  opacity: 1;
}

/* Переопределение цвета буллетов Swiper под фон секции */
.intro .swiper-pagination-bullet {
  background: #fff !important;
  background: var(--color-1) !important;
}

/* Логотип в интро — цветная версия из шапки: круг и фигурка отдельными элементами,
   поэтому при наведении их можно перекрасить, а не показывать сквозь вырез фон. */
.intro__logo {
  display: block;
  width: 100%;
  height: auto;
}

.intro__logo .logo-mark,
.intro__logo .logo-figure {
  transition: fill 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Покой: белый круг, тёмная фигурка */
.intro__logo .logo-mark {
  fill: #fff;
}

.intro__logo .logo-figure {
  fill: #151515;
  fill: var(--color-7);
}

/* Наведение: как в шапке — фирменный красный с белой фигуркой */
.intro:hover .intro__logo .logo-mark,
.intro:focus-within .intro__logo .logo-mark {
  fill: #c72229;
}

.intro:hover .intro__logo .logo-figure,
.intro:focus-within .intro__logo .logo-figure {
  fill: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .intro__logo .logo-mark,
  .intro__logo .logo-figure {
    transition-duration: 0.01ms;
  }
}
.headline {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.headline {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
  }

.headline .section__item.heading-wrap {
  --mouse-x: -100px;
  --mouse-y: -100px;
  --spotlight-radius: 6rem;

  background: radial-gradient(
    circle 6rem at -100px -100px,
    #E24E2A 0%,
    #E24E2A 40%,
    #000 100%
  );

  background: radial-gradient(
    circle var(--spotlight-radius) at var(--mouse-x) var(--mouse-y),
    var(--color-4) 0%,
    var(--color-4) 40%,
    var(--color-2) 100%
  );
  -webkit-background-clip: text;
          background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  cursor: default;
}

@media (min-width: 1200px) {

.headline .section__item.heading-wrap {
    --spotlight-radius: 9rem;
}
  }

.headline .title {
  font-size: 1.4em;
  line-height: 1.2;
}

@media (min-width: 1200px) {

.headline .title {
    font-size: 2.5em;
}
  }
.owners {
  position: relative;
  z-index: 1;
  color: #fff;
  color: var(--color-1);
}

.owners .section__item.block-wrap {
  padding: 2rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 2rem;
  background: #000;
  background: var(--color-2);
  border-radius: 2rem;
}

@media (min-width: 1200px) {

.owners .section__item.block-wrap {
    padding: 4rem;
    flex-direction: row;
    align-items: center;
    gap: 4rem;
}
  }

@media (min-width: 1200px) {

.owners .section__subitem.heading-wrap {
    flex: 0 0 40%;
    max-width: 40%;
    text-align: center;
}
  }

.owners .heading {
  font-size: 1.4em;
}

@media (min-width: 1200px) {

.owners .heading {
    font-size: 2.5em;
}
  }

.owners .section__subitem.cards-owner-wrap {
  width: 100%;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: nowrap;
}

@media (min-width: 1200px) {

.owners .section__subitem.cards-owner-wrap {
    flex: 1;
    justify-content: space-around;
}
  }

.owners .section__inner.card-owner-wrap {
  width: 50%;
}

@media (min-width: 1200px) {

.owners .section__inner.card-owner-wrap {
    width: auto;
}
  }

.owners .section__inner.card-owner-wrap {
}
.us {
  position: relative;
  overflow-x: clip;
  display: flex;
  flex-direction: column;
  gap: 6rem;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.us {
    gap: 20rem;
}
  }

.us .section__item.bg-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
  z-index: 0;
  overflow: visible;
}

.us .section__subitem.bg-top,
.us .section__subitem.bg-bottom {
  position: absolute;
  will-change: transform;
  transition: transform 0.1s linear;
}

.us .section__subitem.bg-top {
  z-index: 2;
  width: 65rem;
  height: 65rem;
  top: -13rem;
  right: -5rem;
}

@media (min-width: 1200px) {

.us .section__subitem.bg-top {
    width: 126rem;
    height: 126rem;
    top: -45rem;
    right: -10rem;
}
  }

.us .section__subitem.bg-bottom {
  z-index: 1;
  width: 55rem;
  height: 55rem;
  top: 20rem;
  left: -18rem;
}

@media (min-width: 1200px) {

.us .section__subitem.bg-bottom {
    width: 151rem;
    height: 151rem;
    bottom: -51rem;
    left: 3rem;
}
  }

.us .section__subitem.bg-top img,
.us .section__subitem.bg-bottom img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.us .container {
  position: relative;
  z-index: 1;
}

.us .section__item.visual-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

@media (min-width: 1200px) {

.us .section__item.visual-wrap {
    display: block;
    height: 65rem;
}
  }

.us .section__subitem.cover-wrap {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}

@media (min-width: 1200px) {

.us .section__subitem.cover-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 65rem;
    height: 65rem;
    aspect-ratio: auto;
    transition: transform 0.35s ease-out;
    will-change: transform;
}
  }

.us .section__subitem.cover-wrap img,
.us .section__subitem.cover-wrap video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.us .section__subitem.card-text-wrap {
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding: 2rem;
  border-radius: 1.5rem;
  text-align: center;
}

@media (min-width: 1200px) {

.us .section__subitem.card-text-wrap {
    position: absolute;
    width: 40rem;
    padding: 2.5rem 3rem;
    border-radius: 2rem;
    z-index: 1;
    transition: transform 0.35s ease-out;
    will-change: transform;
}
  }

@media (min-width: 1200px) {

.us .section__subitem.card-text-1 {
    top: 5rem;
    left: 0;
}
  }

@media (min-width: 1200px) {

.us .section__subitem.card-text-2 {
    bottom: 5rem;
    right: 0;
}
  }

.us .card-text {
  font-size: 1.1em;
  font-weight: 300;
  line-height: 1.3;
}

@media (min-width: 1200px) {

.us .card-text {
    font-size: 1.4em;
}
  }

.us .section__item.cards-number-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 5rem;
}

@media (min-width: 1200px) {

.us .section__item.cards-number-wrap {
    flex-direction: row;
    justify-content: space-between;
}
  }
.navigation {
  background-color: #fff;
  background-color: var(--color-1);
}

.navigation .section__item.items-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

@media (min-width: 1200px) {

.navigation .section__item.items-wrap {
    gap: 2rem;
}
  }

.navigation .section__subitem.item-wrap.size-half {
  width: 100%;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-half {
    width: calc(50% - 1rem);
}
  }

.navigation .section__subitem.item-wrap.size-third {
  width: 100%;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-third {
    width: calc(33.333% - 1.334rem);
}
  }

.navigation .section__subitem.item-wrap.size-full {
  width: 100%;
}

.navigation .section__subitem.item-wrap.size-half .card-nav {
  height: 15rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-half .card-nav {
    height: 26rem;
}
  }

.navigation .section__subitem.item-wrap.size-third .card-nav {
  height: 15rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-third .card-nav {
    height: 22rem;
}
  }

.navigation .section__subitem.item-wrap.size-full .card-nav {
  height: 15rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-full .card-nav {
    height: 46rem;
}
  }

.navigation .section__subitem.item-wrap .card-gradient {
  height: 15rem;
}

.navigation .section__subitem.item-wrap:has(.card-slider) {
  margin-top: 1.6rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap:has(.card-slider) {
    margin-top: 0;
}
  }

.navigation .card-slider {
  width: 100%;
  height: 24rem;
  border-radius: 2rem;
  overflow: hidden;
}

@media (min-width: 768px) {

.navigation .card-slider {
    height: 50rem;
}
  }

@media (min-width: 1200px) {

.navigation .card-slider {
    height: 50rem;
    border-radius: 4rem;
}
  }

/* lottery.png (4080×1380): пропорции как у картинки; без padding-bottom слайдера — иначе cover режет низ */
.navigation [id="lotterySlider"].card-slider {
  padding-bottom: 0;
}
@media (min-width: 768px) {
.navigation [id="lotterySlider"].card-slider {
    height: auto;
    aspect-ratio: 4080 / 1380;
}
  }

/* Компенсация из components/slider.css (margin-top -2rem) рассчитана на padding-bottom — не нужна */
.navigation [id="lotterySlider"].card-slider .swiper-button-next,
.navigation [id="lotterySlider"].card-slider .swiper-button-prev {
  margin-top: 0 !important;
}

/* Цепочка высоты под Swiper (локальный slider.css не задаёт slide height) */
.navigation [id="lotterySlider"] .swiper-wrapper,
.navigation [id="lotterySlider"] .swiper-slide {
  height: 100%;
}

.navigation .card-slider .swiper-slide {
  width: 100%;
  height: 100%;
}

.navigation .card-slider__link {
  display: block;
  width: 100%;
  height: 100%;
}

.navigation .card-slider__cover {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* lotterySlider: заполнение как у остальных карточек (cover), без обрезки за счёт aspect-ratio */
.navigation [id="lotterySlider"] .card-slider__cover {
  background-size: cover;
  background-position: center;
}

.navigation .card-slider .swiper-pagination {
  z-index: 3;
  bottom: 1rem;
}

.navigation .card-slider .swiper-pagination-bullet {
  background: #fff !important;
  background: var(--color-1) !important;
}

.navigation .card-slider .swiper-button-next,
.navigation .card-slider .swiper-button-prev {
  z-index: 3;

  --swiper-navigation-color: var(--color-1);

  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.navigation .card-slider:hover .swiper-button-next,
.navigation .card-slider:hover .swiper-button-prev {
  opacity: 0.5;
}

.navigation .card-slider:hover .swiper-button-next:hover,
.navigation .card-slider:hover .swiper-button-prev:hover {
  opacity: 1;
}

/* 4.8rem только до и после ряда кнопок: к row-gap/column-gap сетки добавляем недостающее */
.navigation .section__subitem.item-wrap:has(.buttons-wrap) {
  margin-top: calc(4.8rem - 1.6rem);
  margin-bottom: calc(4.8rem - 1.6rem);
}
@media (min-width: 1200px) {
.navigation .section__subitem.item-wrap:has(.buttons-wrap) {
    margin-top: calc(4.8rem - 2rem);
    margin-bottom: calc(4.8rem - 2rem);
}
  }

.navigation .buttons-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.8rem;
}

@media (min-width: 1200px) {

.navigation .buttons-wrap {
    gap: 2rem;
}
  }

.navigation .buttons-wrap .button-section {
  width: calc(50% - 0.4rem);
}

@media (min-width: 1200px) {

.navigation .buttons-wrap .button-section {
    width: calc(33.333% - 1.334rem);
}
  }

/* Плавное затемнение карточек при нажатии */
.navigation .card-nav {
  transition: filter 0.6s ease-out;
}

.navigation .card-gradient {
  transition: all 0.25s ease-out, filter 0.6s ease-out;
}

.navigation .card-nav:active,
.navigation .card-gradient:active {
  filter: brightness(0.9);
}
.restaurants {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 2rem;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.restaurants {
    gap: 6rem;
}
  }

.restaurants .section__item.heading-wrap {
}

.restaurants .heading {
  font-size: 2em;
}

@media (min-width: 1200px) {

.restaurants .heading {
    font-size: 3.2em;
}
  }

.restaurants .section__item.tags-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
  overflow-x: scroll;
}

@media (min-width: 1200px) {

.restaurants .section__item.tags-wrap {
    margin-top: -4rem;
    overflow-x: visible;
    overflow-x: initial;
}
  }

.restaurants .section__item.cards-restaurant-wrap {
  display: grid;
  grid-template-columns: 1fr;
  grid-row-gap: 4rem;
  row-gap: 4rem;
}

@media (min-width: 768px) {

.restaurants .section__item.cards-restaurant-wrap {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
  }

@media (min-width: 1200px) {

.restaurants .section__item.cards-restaurant-wrap {
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem 2rem;
}
  }

.restaurants .section__subitem.card-restaurant-wrap {
  min-width: 0;
}

.restaurants .section__subitem.card-restaurant-wrap .card-restaurant {
  min-width: 0;
  height: 26rem;
}

@media (min-width: 1200px) {

.restaurants .section__subitem.card-restaurant-wrap .card-restaurant {
    height: 30rem;
}
  }
/* Соседи по городу на карточке ресторана: список-навигация, не витрина —
   гость уже внутри бренда, ему нужен быстрый переход, а не второй ряд обложек. */

.restaurant-nearby {
  /* Карточка ресторана — тёмная страница: цвет задаём явно, иначе текст наследует чёрный */
  color: #fff;
  color: var(--color-1);
  padding-top: 6.4rem;
  padding-bottom: 6.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-nearby__heading {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(1.8rem, min(3vw, 2.6rem));
  letter-spacing: -0.01em;
  margin-bottom: 3.2rem;
}

.restaurant-nearby__list {
  list-style: none;
  margin: 0 0 3.2rem;
  padding: 0;
  display: grid;
  grid-gap: 0;
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-nearby__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-nearby__link {
  display: grid;
  grid-template-columns: minmax(16rem, 22rem) 1fr;
  grid-gap: 0.4rem 3.2rem;
  gap: 0.4rem 3.2rem;
  align-items: baseline;
  padding-top: 1.8rem;
  padding-bottom: 1.8rem;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: inherit;
  transition: text-decoration-color 0.25s all ease-out;
  transition: text-decoration-color var(--transition-1);
}

/* Подчёркиваем только название: строка целиком, вместе с описанием, читается как помарка. */
.restaurant-nearby__link:hover .restaurant-nearby__name,
.restaurant-nearby__link:focus-visible .restaurant-nearby__name {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.restaurant-nearby__name {
  font-size: 1.7rem;
  font-weight: 500;
}

.restaurant-nearby__desc {
  font-size: 1.5rem;
  line-height: 1.5;
  opacity: 0.7;
  text-wrap: pretty;
}

.restaurant-nearby__all {
  display: inline-block;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid rgba(230, 89, 1, 0.4);
  padding-bottom: 0.4rem;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.restaurant-nearby__all {
  border-bottom: 1px solid color-mix(in srgb, var(--color-3) 40%, transparent);
}
}

.restaurant-nearby__all:hover,
.restaurant-nearby__all:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

@media (max-width: 600px) {
  .restaurant-nearby {
    padding-top: 4.8rem;
    padding-bottom: 4.8rem;
  }

  .restaurant-nearby__link {
    grid-template-columns: 1fr;
  }
}
/* Рассказ о ресторане и вопросы гостей стоят рядом, поэтому оформлены по-разному:
   рассказ — разворотом с подзаголовком на полях, вопросы — плотным списком в колонку.
   Раньше оба выглядели как «заголовок и абзац» и сливались в одну простыню. */

.restaurant-story {
  color: #fff;
  color: var(--color-1);
}

.restaurant-story__block + .restaurant-story__block {
  margin-top: 3.2rem;
}

@media (min-width: 992px) {

.restaurant-story__block {
    display: grid;
    grid-template-columns: minmax(18rem, 24%) 1fr;
    grid-gap: 0 4rem;
    gap: 0 4rem;
    align-items: start;
}
  }

.restaurant-story__heading {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(1.9rem, min(2.6vw, 2.2rem));
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 1.2rem;

  /* Фирменный цвет подзаголовка — то, чем рассказ отличается от вопросов на любом экране. */
  color: #E65901;
  color: var(--color-3);
  text-wrap: balance;
}

@media (min-width: 992px) {

.restaurant-story__heading {
    position: sticky;
    top: 12rem;
    margin-bottom: 0;
}
  }

.restaurant-story__text {
  max-width: 68ch;
  font-size: 1.7rem;
  line-height: 1.7;
  text-wrap: pretty;
}

.restaurant-story__text + .restaurant-story__text {
  margin-top: 1.4rem;
}

/* --- Вопросы: сухой список, а не продолжение рассказа --- */

.restaurant-faq {
  color: #fff;
  color: var(--color-1);
  max-width: 68ch;
}

.restaurant-faq__heading {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.55;
  margin-bottom: 1.6rem;
}

.restaurant-faq__list {
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-faq__item {
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-faq__q {
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 0.6rem;
}

.restaurant-faq__a {
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.55;
  opacity: 0.7;
  text-wrap: pretty;
}
/* Рассказ о группе на главной. Две колонки на широком экране: текст читается блоками,
   а не одной простынёй во всю ширину. */

.group-story {
  /* Фон задаём явно: секция стоит между светлыми блоками главной,
     без него белый текст ложится на белое. */
  background-color: #151515;
  background-color: var(--color-7);
  color: #fff;
  color: var(--color-1);
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.group-story__title {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(2.4rem, min(4.5vw, 4rem));
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 4.8rem;
  max-width: 24ch;
  text-wrap: balance;
}

.group-story__grid {
  display: grid;
  grid-gap: 4rem 6.4rem;
  gap: 4rem 6.4rem;
}

.group-story__heading {
  font-size: max(1.7rem, min(2.2vw, 2rem));
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 1.4rem;
  text-wrap: balance;
}

.group-story__text {
  font-size: 1.6rem;
  line-height: 1.65;
  opacity: 0.82;
  max-width: 62ch;
  text-wrap: pretty;
}

.group-story__text + .group-story__text {
  margin-top: 1.2rem;
}

/* Ссылки внутри текста: наследуют цвет, а не уходят в браузерный синий на тёмном фоне */
.group-story__text a {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  transition: color 0.25s all ease-out, border-color 0.25s all ease-out;
  transition: color var(--transition-1), border-color var(--transition-1);
}

.group-story__text a:hover,
.group-story__text a:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

.group-story__links {
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem 3.2rem;
  margin-top: 4.8rem;
  padding-top: 3.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.group-story__link {
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid transparent;
  transition: color 0.25s all ease-out, border-color 0.25s all ease-out;
  transition: color var(--transition-1), border-color var(--transition-1);
}

.group-story__link:hover,
.group-story__link:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

@media (min-width: 900px) {
  .group-story__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .group-story {
    padding-top: 5.6rem;
    padding-bottom: 5.6rem;
  }

  .group-story__title {
    margin-bottom: 3.2rem;
  }
}
/* Блок вопросов и ответов. Две темы: тёмная по умолчанию и светлая для страниц на белом. */

.faq-block {
  background-color: #151515;
  background-color: var(--color-7);
  color: #fff;
  color: var(--color-1);
  padding-top: 7.2rem;
  padding-bottom: 7.2rem;
}

.faq-block--light {
  background-color: #fff;
  background-color: var(--color-1);
  color: #000;
  color: var(--color-2);
}

.faq-block__title {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(2.2rem, min(4vw, 3.2rem));
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 3.6rem;
}

.faq-block__list {
  margin: 0;
  max-width: 78ch;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.faq-block--light .faq-block__list {
  border-top-color: #e2e0de;
}

.faq-block__item {
  padding-top: 2.2rem;
  padding-bottom: 2.2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.faq-block--light .faq-block__item {
  border-bottom-color: #e2e0de;
}

.faq-block__q {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.3;
  margin-bottom: 0.9rem;
  text-wrap: balance;
}

.faq-block__a {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.65;
  opacity: 0.82;
  text-wrap: pretty;
}

.faq-block--light .faq-block__a {
  opacity: 1;
  color: #4a4a4a;
}

@media (max-width: 600px) {
  .faq-block {
    padding-top: 5.6rem;
    padding-bottom: 5.6rem;
  }
}
/* ============================================
   Section: events (афиша)
   ============================================ */

.events {
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
}

.events .heading-wrap {
  text-align: center;
}

.events .heading {
  font-size: 2em;
}

@media (min-width: 1200px) {

.events .heading {
    font-size: 3.2em;
}
  }

/* Страница афиши тёмная целиком — без белых уголков за скруглением футера */
#page-content:has(.events) {
  background: #000;
  background: var(--color-2);
}

.events__lead-wrap {
  max-width: 68rem;
  margin: 1.6rem auto 0;
  text-align: center;
}

.events__lead {
  font-size: 1.7rem;
  line-height: 1.6;
  color: #D4D2D2;
  color: var(--color-6);
}

.events__grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 2.4rem;
  gap: 2.4rem;
  margin-top: 4rem;
}

@media (min-width: 540px) {

.events__grid {
    grid-template-columns: repeat(2, 1fr);
}
  }

@media (min-width: 992px) {

.events__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
}
  }

.events__cell {
  display: flex;
}

.events__empty {
  margin-top: 3rem;
  text-align: center;
  font-size: 1.7rem;
  color: #D4D2D2;
  color: var(--color-6);
}

/* Components */
.analytics {
  /* Стили для analytics */
}

.analytics .container {
  /* Стили для контейнера в analytics */
}
blockquote {
  width: 100%;
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
}

.blockquote-border {
  padding: 2rem 0;
  border-top: 1px solid #D4D2D2;
  border-top: 1px solid var(--color-6);
  border-bottom: 1px solid #D4D2D2;
  border-bottom: 1px solid var(--color-6);
}

.blockquote-sm {
  font-size: 1.2em;
  line-height: 1.3;
}

.blockquote-md {
  font-size: 1.8em;
  line-height: 1.3;
}

.blockquote-lg {
  font-size: 2.4em;
  line-height: 1.3;
}
.burger-icon {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
  z-index: 970;
  z-index: var(--z-index-4);
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  background: none;
}

.burger-icon__container {
  position: relative;
  flex-shrink: 0;
  width: 2.4rem;
  height: 1.6rem;
}

.burger-icon__item {
  position: absolute;
  left: 0;
  width: 100%;
  height: 0.2rem;
  background-color: #fff;
  background-color: var(--color-1);
  transition: 0.2s ease-out;
  transition-property: top, transform, opacity;
}

.burger-icon__item:nth-child(1) {
  top: 0;
}

.burger-icon__item:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}

.burger-icon__item:nth-child(3) {
  top: 100%;
  transform: translateY(-100%);
}

.burger-icon.active .burger-icon__item:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

.burger-icon.active .burger-icon__item:nth-child(2) {
  opacity: 0;
}

.burger-icon.active .burger-icon__item:nth-child(3) {
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}
.burger-menu {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100dvh;
  overflow-y: auto;
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  z-index: 960;
  z-index: var(--z-index-5);
}
@media (min-width: 768px) {
.burger-menu {
    width: 39rem;
}
  }

.burger-menu.active {
  display: block;
}

.burger-menu .container {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 2.13rem;
  padding: 9.5rem 2.6rem 3rem;
  background-color: transparent;
}

@media (min-width: 1200px) {

.burger-menu .container {
    padding-top: 12.8rem;
}
  }

.burger-menu__item {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 0;
  font-size: 2.33rem;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  color: var(--color-1);
  border: 0;
}

.burger-menu__title {
  color: #fff;
  color: var(--color-1);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.burger-menu__item:hover .burger-menu__title,
.burger-menu__item:focus-visible .burger-menu__title {
  opacity: 0.7;
}
.button {
  /* Стили для button */
}

.button .container {
  /* Стили для контейнера в button */
}
.cover {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}

.cover__image {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all 0.3s ease;
}

.cover:hover img {
  transform: scale(1.025);
}

.cover__icon-wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6rem;
  height: 6rem;
  padding: 1.75rem;
  transform: translate(-50%, -50%);
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 50%;
  z-index: 2;
  transition: all 0.3s ease;
}

.cover:hover .cover__icon-wrap {
  opacity: 0.9;
}
.custom-checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.custom-checkbox__input {
  display: none;
}

.custom-checkbox__box {
  width: 2rem;
  height: 2rem;
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  transition: border-color 0.3s ease;
  position: relative;
}

.custom-checkbox__box:hover {
  border-color: #888;
  border-color: var(--color-border);
}

.custom-checkbox__icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: #fff;
  stroke: var(--color-1);
  stroke-width: 0.2rem;
  visibility: hidden;
}

.custom-checkbox__input:checked+.custom-checkbox__box {
  background-color: #E24E2A;
  background-color: var(--color-4);
  border-color: #E24E2A;
  border-color: var(--color-4);
}

.custom-checkbox__input:checked+.custom-checkbox__box .custom-checkbox__icon {
  visibility: visible;
  transform: scale(1);
}
.custom-list {}

.custom-list {
  margin: 0;
  margin-left: 1.5rem;
  padding: 0;
  font-size: 1em;
}

@media (min-width: 1200px) {

.custom-list {
    font-size: 0.9em;
}
  }

.custom-list__item {
  padding-top: 0.5rem;
}
.features-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.features-list__item {
  padding: 1rem 0;
  font-size: 0.8em;
  color: #EEC479;
  color: var(--color-5);
  border-bottom: 1px solid #EEC479;
  border-bottom: 1px solid var(--color-5);
}

@media (min-width: 1200px) {

.features-list__item {
    padding: 1.25rem 0;
}
  }
/* ==========================================================================
   form-callback — современная форма обратной связи
   Floating labels, анимации, единообразные поля, drag-and-drop зона файлов
   Базовый размер: 1rem = 10px
   ========================================================================== */

.form-callback__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-callback {
  --fc-radius: 0.4rem;
  --fc-border: 1px solid rgba(0, 0, 0, 0.06);
  --fc-border-error: 1px solid var(--color-error);
  --fc-bg: rgba(0, 0, 0, 0.02);
  --fc-bg-hover: rgba(0, 0, 0, 0.04);
  --fc-font: var(--font-1);
  --fc-text: var(--color-2);
  --fc-label: var(--color-5);

  /* Состояния вынесены в переменные: площадка с тёмной темой не может переопределить
     жёстко прописанный цвет, и у неё метка светилась жёлтым, а галочка терялась. */
  --fc-label-active: var(--color-5);
  --fc-border-hover: rgba(0, 0, 0, 0.15);
  --fc-checked-bg: var(--color-6);
  --fc-checked-border: var(--color-6);
  --fc-checked-mark: var(--color-1);
  --fc-accent: var(--color-5);
  --fc-muted: var(--color-6);
  --fc-focus-ring: var(--color-5);
  --fc-speed: 0.2s;
  --fc-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --fc-height: 5.6rem;
  --fc-gap: 2rem;
  --fc-font-size: 1.6rem;
  --fc-font-size-sm: 1.3rem;
  --fc-font-size-xs: 1.2rem;
  --fc-success: #2e7d32;
  --fc-success-bg: #e8f5e9;

  width: 100%;
  position: relative;
}

/* ==========================================================================
   Grid
   ========================================================================== */

.form-callback__grid {
  display: grid;
  grid-gap: var(--fc-gap);
  gap: var(--fc-gap);
  grid-template-columns: 1fr;
  transition: opacity 0.4s var(--fc-ease), filter 0.4s var(--fc-ease);
}

@media (min-width: 768px) {

.form-callback__grid {
    grid-template-columns: repeat(2, 1fr);
}
  }

/* Grid dimmed during loading */
.form-callback.is-loading .form-callback__grid {
  opacity: 0.5;
  filter: grayscale(0.3);
  pointer-events: none;
}

/* ==========================================================================
   Success overlay — появляется поверх формы после отправки
   ========================================================================== */

.form-callback__success {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  border-radius: var(--fc-radius);
  opacity: 0;
  visibility: hidden;
  transform: scale(0.95);
  transition:
    opacity 0.5s var(--fc-ease), visibility 0.5s var(--fc-ease), transform 0.5s var(--fc-ease);
  z-index: 10;
}

.form-callback.is-success .form-callback__success {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.form-callback.is-success .form-callback__grid {
  opacity: 0;
  pointer-events: none;
}

.form-callback__success-icon {
  width: 6.4rem;
  height: 6.4rem;
  border-radius: 50%;
  background: var(--fc-success-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fcSuccessPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.form-callback__success-icon svg {
  width: 3.2rem;
  height: 3.2rem;
  color: var(--fc-success);
}

.form-callback__success-icon svg path {
  stroke-dasharray: 30;
  stroke-dashoffset: 30;
  animation: fcCheckDraw 0.5s 0.3s var(--fc-ease) forwards;
}

.form-callback__success-title {
  font-family: var(--fc-font);
  font-size: 2rem;
  font-weight: 600;
  color: var(--fc-text);
  opacity: 0;
  transform: translateY(1rem);
  animation: fcFadeUp 0.4s 0.4s var(--fc-ease) forwards;
}

.form-callback__success-text {
  font-family: var(--fc-font);
  font-size: 1.5rem;
  color: var(--fc-label);
  opacity: 0;
  transform: translateY(1rem);
  animation: fcFadeUp 0.4s 0.55s var(--fc-ease) forwards;
}

@keyframes fcSuccessPop {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  60% {
    transform: scale(1.15);
    opacity: 1;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes fcCheckDraw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes fcFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-callback__field.field-full,
.form-callback__field.field-submit,
.form-callback__field.field-rules,
.form-callback__field.field-checkbox {
  grid-column: 1 / -1;
}

/* ==========================================================================
   Input wrapper — содержит control + floating label
   ========================================================================== */

.form-callback__input-wrap {
  position: relative;
}

/* ==========================================================================
   Контролы: input, select, textarea — ЕДИНЫЙ РАЗМЕР
   ========================================================================== */

.form-callback__control {
  display: block;
  width: 100%;
  height: var(--fc-height);
  padding: 2rem 1.6rem 0.8rem;
  font-family: var(--fc-font);
  font-size: var(--fc-font-size);
  font-weight: 400;
  line-height: 1.4;
  color: var(--fc-text);
  background: var(--fc-bg);
  border: var(--fc-border);
  border-radius: var(--fc-radius);
  outline: none;
  transition:
    border-color var(--fc-speed) var(--fc-ease), background-color var(--fc-speed) var(--fc-ease), box-shadow var(--fc-speed) var(--fc-ease);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.form-callback__control:hover {
  background: var(--fc-bg-hover);
}

/* Фокус меняет цвет самой границы. Кольцо box-shadow поверх неё читается как вторая рамка —
   поле выглядит обведённым дважды, особенно на select со стрелкой. */
.form-callback__control:focus {
  border-color: rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   Floating label
   ========================================================================== */

.form-callback__label {
  position: absolute;
  top: 50%;
  left: 1.6rem;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  font-weight: 400;
  color: var(--fc-label);
  pointer-events: none;
  transition:
    top var(--fc-speed) var(--fc-ease), font-size var(--fc-speed) var(--fc-ease), color var(--fc-speed) var(--fc-ease), transform var(--fc-speed) var(--fc-ease);
  transform-origin: left center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(100% - 3.2rem);
}

/* Label активный: при фокусе или заполненности */
.form-callback__control:not(:-moz-placeholder) ~ .form-callback__label {
  top: 1rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
  color: var(--fc-label-active);
}
.form-callback__control:focus ~ .form-callback__label,
.form-callback__control:not(:placeholder-shown) ~ .form-callback__label {
  top: 1rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
  color: var(--fc-label-active);
}

/* Label для select — всегда поднят */
.form-callback__control.control-select ~ .form-callback__label {
  top: 1rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
}

/* Для textarea label позиционирование */
.form-callback__control.control-textarea ~ .form-callback__label {
  top: 1.6rem;
  transform: translateY(0);
}

.form-callback__control.control-textarea:not(:-moz-placeholder) ~ .form-callback__label {
  top: 0.8rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
}

.form-callback__control.control-textarea:focus ~ .form-callback__label,
.form-callback__control.control-textarea:not(:placeholder-shown) ~ .form-callback__label {
  top: 0.8rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
}

.form-callback__asterisk {
  color: #f44336;
  color: var(--color-error);
  margin-left: 0.2rem;
}

/* ==========================================================================
   Select
   ========================================================================== */

/* Стрелка селекта рисуется отдельным элементом поверх поля, а не фоном.
   Фоном она уже дважды ломалась: любая площадка, переопределившая background
   сокращённой записью, сбрасывала background-repeat — и стрелка размножалась
   по всей ширине поля. Здесь её нельзя сбросить случайно. */
.form-callback__control.control-select {
  cursor: pointer;
  padding-right: 4rem;
}

.form-callback__input-wrap:has(.control-select)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.6rem;
  width: 1.2rem;
  height: 0.7rem;
  pointer-events: none;
  background-color: currentcolor;
  opacity: 0.55;
  transform: translateY(-50%);
  transition: opacity var(--fc-speed) var(--fc-ease);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

.form-callback__input-wrap:has(.control-select:hover)::after,
.form-callback__input-wrap:has(.control-select:focus)::after {
  opacity: 1;
}

/* ==========================================================================
   Textarea
   ========================================================================== */

.form-callback__control.control-textarea {
  height: auto;
  min-height: 12rem;
  padding-top: 2.4rem;
  resize: vertical;
}

/* ==========================================================================
   File upload — drag & drop зона
   ========================================================================== */

.form-callback__file-zone {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding: 2rem 2.4rem;
  border: 1px dashed rgba(0, 0, 0, 0.1);
  border-radius: var(--fc-radius);
  background: var(--fc-bg);
  cursor: pointer;
  transition:
    border-color var(--fc-speed) var(--fc-ease), background-color var(--fc-speed) var(--fc-ease), transform var(--fc-speed) var(--fc-ease);
}

.form-callback__file-zone:hover {
  border-color: rgba(0, 0, 0, 0.2);
  background: var(--fc-bg-hover);
}

.form-callback__file-zone:active {
  transform: scale(0.99);
}

.form-callback__file-zone.dragover {
  border-color: var(--fc-accent);
  background: rgba(0, 0, 0, 0.03);
}

.form-callback__file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
  clip-path: inset(50%);
}

.form-callback__file-icon {
  flex-shrink: 0;
  width: 4.8rem;
  height: 4.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fc-accent);
  background: rgba(0, 0, 0, 0.04);
  border-radius: 0.8rem;
  transition: color var(--fc-speed) var(--fc-ease), background-color var(--fc-speed) var(--fc-ease);
}

.form-callback__file-icon svg {
  width: 2.4rem;
  height: 2.4rem;
}

.form-callback__file-zone:hover .form-callback__file-icon {
  color: var(--fc-muted);
  background: rgba(0, 0, 0, 0.08);
}

.form-callback__file-text {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.form-callback__file-title {
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--fc-text);
}

.form-callback__file-hint {
  font-size: var(--fc-font-size-sm);
  color: var(--fc-label);
}

.form-callback__file-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.4rem;
  font-size: var(--fc-font-size-sm);
  color: var(--fc-accent);
}

.form-callback__file-list:empty {
  display: none;
}

.form-callback__file-item {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 1rem;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 0.4rem;
  font-size: var(--fc-font-size-sm);
  color: var(--fc-text);
  line-height: 1.4;
}

/* ==========================================================================
   Checkbox
   ========================================================================== */

.form-callback__checkbox-wrap {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  padding: 0.4rem 0;
}

.form-callback__checkbox-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
}

.form-callback__checkbox-box {
  flex-shrink: 0;
  width: 2.2rem;
  height: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: var(--fc-border);
  border-radius: 0.6rem;
  background: var(--fc-bg);
  color: transparent;
  transition:
    background-color var(--fc-speed) var(--fc-ease), border-color var(--fc-speed) var(--fc-ease), color var(--fc-speed) var(--fc-ease), transform var(--fc-speed) var(--fc-ease);
}

.form-callback__checkbox-icon {
  width: 1.2rem;
  height: 1.2rem;
}

.form-callback__checkbox-input:checked + .form-callback__checkbox-box {
  background: var(--fc-checked-bg);
  border-color: var(--fc-checked-border);
  color: var(--fc-checked-mark);
  animation: checkPop 0.3s var(--fc-ease);
}

.form-callback__checkbox-input:focus-visible + .form-callback__checkbox-box {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

.form-callback__checkbox-wrap:hover .form-callback__checkbox-box {
  border-color: var(--fc-border-hover);
}

.form-callback__checkbox-text {
  font-size: 1.4rem;
  color: var(--fc-muted);
  line-height: 1.5;
  padding-top: 0.2rem;
}

.form-callback__checkbox-text a {
  color: var(--fc-accent);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
  transition: color var(--fc-speed) var(--fc-ease);
}

.form-callback__checkbox-text a:hover {
  color: var(--fc-accent-hover, var(--fc-accent));
}

@keyframes checkPop {
  0% {
    transform: scale(1);
  }

  40% {
    transform: scale(1.15);
  }

  100% {
    transform: scale(1);
  }
}

/* ==========================================================================
   Radio
   ========================================================================== */

.form-callback__legend {
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--fc-text);
  margin-bottom: 1.2rem;
}

.form-callback__radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

.form-callback__radio-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
}

.form-callback__radio-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.form-callback__radio-dot {
  position: relative;
  width: 2rem;
  height: 2rem;
  border: var(--fc-border);
  border-radius: 50%;
  flex-shrink: 0;
  transition: border-color var(--fc-speed) var(--fc-ease);
}

.form-callback__radio-dot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: var(--fc-muted);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width var(--fc-speed) var(--fc-ease), height var(--fc-speed) var(--fc-ease);
}

.form-callback__radio-input:checked + .form-callback__radio-dot {
  border-color: var(--fc-muted);
}

.form-callback__radio-input:checked + .form-callback__radio-dot::after {
  width: 1rem;
  height: 1rem;
}

.form-callback__radio-input:focus-visible + .form-callback__radio-dot {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.12);
}

.form-callback__radio-text {
  font-size: 1.5rem;
  color: var(--fc-text);
}

/* ==========================================================================
   Submit button
   ========================================================================== */

.form-callback__submit {
  height: var(--fc-height);
  padding: 0 3.2rem;
  font-family: var(--fc-font);
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-radius: var(--fc-radius);
  transition:
    background-color var(--fc-speed) var(--fc-ease), box-shadow var(--fc-speed) var(--fc-ease);
}

.form-callback__submit:hover {
  box-shadow: inset 0 0 0 100rem rgba(0, 0, 0, 0.08);
}

.form-callback__submit:active {
  box-shadow: inset 0 0 0 100rem rgba(0, 0, 0, 0.16);
}

.form-callback__submit-icon {
  display: flex;
  transition: transform var(--fc-speed) var(--fc-ease);
}

.form-callback__submit-icon svg {
  width: 2rem;
  height: 2rem;
}

.form-callback__submit:hover .form-callback__submit-icon {
  transform: translateX(4px);
}

/* Loading & submit inner transitions */
.form-callback__submit-text,
.form-callback__submit-icon {
  transition: opacity 0.3s var(--fc-ease), transform 0.3s var(--fc-ease);
}

.form-callback__submit-spinner {
  position: absolute;
  width: 2rem;
  height: 2rem;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-top-color: var(--color-1);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.3s var(--fc-ease), transform 0.3s var(--fc-ease);
  pointer-events: none;
}

.form-callback__submit.loading {
  pointer-events: none;
}

.form-callback__submit.loading .form-callback__submit-text {
  opacity: 0;
  transform: translateY(-0.8rem);
}

.form-callback__submit.loading .form-callback__submit-icon {
  opacity: 0;
  transform: translateX(1rem);
}

.form-callback__submit.loading .form-callback__submit-spinner {
  opacity: 1;
  transform: scale(1);
  animation: fcSpin 0.7s linear infinite;
}

@keyframes fcSpin {
  to {
    transform: rotate(360deg);
  }
}

/* ==========================================================================
   Rules text
   ========================================================================== */

.form-callback__field.field-rules {
  padding-top: 0.4rem;
}

.form-callback__rules-text {
  display: block;
  font-size: var(--fc-font-size-sm);
  line-height: 1.5;
  color: var(--fc-accent);
}

.form-callback__rules-text a {
  color: var(--fc-muted);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
  transition: color var(--fc-speed) var(--fc-ease);
}

.form-callback__rules-text a:hover {
  color: #E65901;
  color: var(--color-3);
}

/* ==========================================================================
   Error states
   ========================================================================== */

/* Per-field error message */
.form-callback__error-msg {
  display: block;
  min-height: 0;
  overflow: hidden;
  font-size: var(--fc-font-size-xs);
  color: #f44336;
  color: var(--color-error);
  padding-top: 0.4rem;
  transition: min-height var(--fc-speed) var(--fc-ease), margin var(--fc-speed) var(--fc-ease);
}

.form-callback__error-msg:empty {
  display: none;
}

/* Error state on field wrapper */
.form-callback__field.error .form-callback__control {
  border-color: #f44336;
  border-color: var(--color-error);
  background-color: rgba(244, 67, 54, 0.05);
  background-color: var(--color-error-bg);
  animation: fcShake 0.4s var(--fc-ease);
}

/* У поля с ошибкой граница и так красная — кольцо поверх неё давало вторую рамку. */
.form-callback__field.error .form-callback__control:focus {
  border-color: #f44336;
  border-color: var(--color-error);
}

.form-callback__field.error .form-callback__label {
  color: #f44336;
  color: var(--color-error);
}

.form-callback__field.error .form-callback__checkbox-box {
  border-color: #f44336;
  border-color: var(--color-error);
  animation: fcShake 0.4s var(--fc-ease);
}

.form-callback__field.error .form-callback__checkbox-text {
  color: #f44336;
  color: var(--color-error);
}

.form-callback__field.error .form-callback__file-zone {
  border-color: #f44336;
  border-color: var(--color-error);
  background-color: rgba(244, 67, 54, 0.05);
  background-color: var(--color-error-bg);
  animation: fcShake 0.4s var(--fc-ease);
}

.form-callback__field.error .form-callback__radio-dot {
  border-color: #f44336;
  border-color: var(--color-error);
}

/* Error banner */
.form-callback__error-banner {
  padding: 1.2rem 1.6rem;
  background: rgba(244, 67, 54, 0.05);
  background: var(--color-error-bg);
  border: 1px solid rgba(244, 67, 54, 0.2);
  border-radius: var(--fc-radius);
  transition: opacity 0.3s var(--fc-ease), transform 0.3s var(--fc-ease);
}

.form-callback__error-banner.hidden {
  opacity: 0;
  transform: translateY(-0.8rem);
}

.form-callback__error-banner:not(.hidden) {
  animation: fcSlideDown 0.35s var(--fc-ease);
}

@keyframes fcSlideDown {
  from {
    opacity: 0;
    transform: translateY(-1.2rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-callback__error-text {
  font-size: 1.4rem;
  color: #f44336;
  color: var(--color-error);
}

@keyframes fcShake {
  0%,
  100% {
    transform: translateX(0);
  }

  20% {
    transform: translateX(-4px);
  }

  40% {
    transform: translateX(4px);
  }

  60% {
    transform: translateX(-2px);
  }

  80% {
    transform: translateX(2px);
  }
}

/* ==========================================================================
   Focus-visible
   ========================================================================== */

/* Фокус у поля показывает его собственная граница. Отдельный outline с отступом ложился
   поверх неё второй рамкой — на мобильных особенно заметно. У кнопки outline остаётся:
   границы у неё нет, и без него фокус с клавиатуры не виден. */
.form-callback__control:focus-visible {
  border-color: var(--fc-accent);
}

.form-callback__submit:focus-visible {
  outline: 1px solid var(--fc-accent);
  outline-offset: 2px;
}

/* ==========================================================================
   Accessibility: prefers-reduced-motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .form-callback *,
  .form-callback *::before,
  .form-callback *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ==========================================================================
   Подсказка вместо плавающей метки
   Часть площадок так задумана дизайном: подпись стоит внутри поля и исчезает,
   когда человек начинает писать. Разметка та же, меняется только оформление.
   ========================================================================== */

.form-callback--hint .form-callback__label {
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  color: var(--fc-label);
}

.form-callback--hint .form-callback__control:not(:-moz-placeholder) ~ .form-callback__label {
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  opacity: 0;
}

.form-callback--hint .form-callback__control:focus ~ .form-callback__label,
.form-callback--hint .form-callback__control:not(:placeholder-shown) ~ .form-callback__label {
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  opacity: 0;
}

/* Поле в этом режиме не оставляет места под поднятую подпись. */
.form-callback--hint .form-callback__control {
  padding-top: 0;
  padding-bottom: 0;
}

/* Обязательность в таком оформлении не показывают звёздочкой: подпись исчезает при вводе. */
.form-callback--hint .form-callback__asterisk {
  display: none;
}

/* Порядок «кнопка, затем согласие» — так свёрстаны площадки, где подпись стоит подсказкой:
   действие ближе к полям, юридический текст уходит вниз. */
.form-callback--hint .form-callback__grid {
  display: flex;
  flex-direction: column;
}

.form-callback--hint .form-callback__field.field-submit {
  order: 1;
}

.form-callback--hint .form-callback__field.field-checkbox,
.form-callback--hint .form-callback__field.field-rules {
  order: 2;
}

/* Палитра площадки. Посадка тёмная, акцент — оранжевый как у кнопок, скругление тоже их.
   Правила приходят из ядра, здесь только цвета и геометрия. */
.form-callback {
  --fc-bg: transparent;
  --fc-bg-hover: rgba(255, 255, 255, 0.06);
  --fc-border: 1px solid rgba(255, 255, 255, 0.25);
  --fc-border-hover: rgba(255, 255, 255, 0.55);
  --fc-text: var(--color-1);
  --fc-label: rgba(255, 255, 255, 0.6);
  --fc-label-active: rgba(255, 255, 255, 0.75);
  --fc-accent: var(--color-3);
  --fc-muted: rgba(255, 255, 255, 0.7);
  --fc-focus-ring: var(--color-3);
  --fc-checked-bg: var(--color-3);
  --fc-checked-border: var(--color-3);
  --fc-checked-mark: var(--color-1);
  --fc-radius: 0;

  /* Поля без рамки занимают меньше места, чем коробки: высота и просвет между ними
     возвращены к прежним — иначе форма растягивается на лишний экран. */
  --fc-height: 4.4rem;
  --fc-gap: 1.2rem;
}

.form-callback__grid {
  grid-template-columns: 1fr;
}

/* Поля этой площадки — линия под текстом, а не рамка по периметру: так форма выглядела
   до перевода на общий компонент и так она держится рядом с остальной вёрсткой сайта.
   Переопределяем только сами контролы: рамка чекбокса и зоны файлов приходит из ядра. */
.form-callback__control {
  padding-left: 0;
  padding-right: 0;

  /* Только цвет: background-сокращение сбросило бы background-repeat, и стрелка селекта
     размножилась бы по всей ширине поля. */
  background-color: transparent;
  border: none;
  border-bottom: var(--fc-border);
  border-radius: 0;
}

.form-callback__control:hover {
  background-color: transparent;
  border-bottom-color: var(--fc-border-hover);
}

.form-callback__control:focus {
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

/* Подсказка внутри поля начинается от того же края, что и вводимый текст. */
.form-callback--hint .form-callback__label {
  left: 0;
  max-width: calc(100% - 4rem);
}

/* Стрелка прижимается к правому краю поля: у полей без рамки внутреннего отступа нет. */
.form-callback__control.control-select {
  padding-right: 2.4rem;
}

.form-callback__input-wrap:has(.control-select)::after {
  right: 0;
}
/* Стили для GLightbox. !important — переопределение стилей библиотеки. */

/* Блокировка скролла при открытом лайтбоксе */
body.glightbox-open {
  overflow: hidden !important;
  height: 100vh;
  width: 100%;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
}

/* Дополнительные стили для GLightbox */
.glightbox-container {
  z-index: 9999;
}

.glightbox-clean .gclose {
  background-color: #000 !important;
  background-color: var(--color-2) !important;
  opacity: 0.6;
  backdrop-filter: blur(5px);
}

/* Анимации для плавного появления/исчезновения */
.glightbox-closing .glightbox-container,
.glightbox-closing .glightbox-container .goverlay {
  animation: fadeOut 0.5s ease;
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

/* Улучшенные стили навигации */
.glightbox-clean .gnext,
.glightbox-clean .gprev {
  background-color: #000 !important;
  background-color: var(--color-2) !important;
  opacity: 0.6;
  backdrop-filter: blur(5px);
  border-radius: 5px;
}

.glightbox-clean .gnext:hover,
.glightbox-clean .gprev:hover {
  background-color: #000 !important;
  background-color: var(--color-2) !important;
  opacity: 0.85;
}

.goverlay {
  background-color: rgba(0, 0, 0, 0.92) !important;
}

/* Фон модального окна */
.glightbox-clean {
  background-color: transparent !important;
}

/* Скрываем описание в модальном окне */
.glightbox-clean .gslide-description,
.glightbox-clean .description-bottom {
  display: none !important;
}

/* Фон для контента модального окна */
.ginlined-content {
  background-color: transparent !important;
}

.glightbox-clean .gprev svg path,
.glightbox-clean .gnext svg path,
.glightbox-clean .gclose svg path {
  fill: #fff !important;
  fill: var(--color-1) !important;
}

.glightbox-clean .gslide-media {
  box-shadow: none !important;
}

/* Стили для VK видео контейнера */
.vk-video-container {
  max-width: 90vw;
  max-height: 90vh;
  margin: 0 auto;
}

.vk-video-container iframe {
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* Адаптивность для мобильных устройств */
@media (max-width: 768px) {
  .vk-video-container {
    max-width: 95vw;
    max-height: 80vh;
  }
  
  .vk-video-container iframe {
    border-radius: 4px;
  }
}

/* Обеспечиваем корректное отображение контента в GLightbox */
.glightbox-clean .gslide-inner-content {
  display: flex;
  align-items: center;
  justify-content: center;
}
.heading {
  /* Стили для heading */
}

.heading-flex {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}
.numbered-list {
  margin: 0;
  margin-left: 1.5rem;
  padding: 0;
  font-size: 1em;
  list-style: decimal;
}
@media (min-width: 1200px) {
.numbered-list {
    font-size: 0.9em;
}
  }

.numbered-list__item {
  padding-top: 0.5rem;
}
.slider {
  width: 100%;
  height: 100%;
}

.slider .swiper-container {
  width: 100%;
  height: 100%;
}

/**
 * Базовые стили для слайдеров Swiper.
 * !important — только для переопределения стилей библиотеки (инлайн/высокая специфичность).
 */

/* Контейнер слайдера */
.swiper-container {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
  padding-bottom: 3rem;
}

/* Обертка слайдера */
.swiper-wrapper {
  display: flex;
  width: 100%;
  transition-property: transform;
}

/* Стили слайда */
.swiper-slide {
  display: flex;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  width: 100%;
}

/* Стили для навигационных кнопок */
.swiper-button-next,
.swiper-button-prev {
  --swiper-navigation-top-offset: 50%;
  --swiper-navigation-sides-offset: 0;
  --swiper-navigation-size: 3rem;

  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 3rem !important;
  height: 3rem !important;
  color: var(--swiper-navigation-color);
  opacity: 0;
  transition: opacity 0.25s ease-out;
  z-index: 10;
  cursor: pointer;
  display: none !important;
  align-items: center;
  justify-content: center;
}
@media (min-width: 1200px) {
.swiper-button-next,
.swiper-button-prev {
    display: flex !important;
}
  }

.swiper-button-next {
  right: 0 !important;
  left: auto !important;
}

.swiper-button-prev {
  left: 0 !important;
  right: auto !important;
}

.swiper-container:hover .swiper-button-next,
.swiper-container:hover .swiper-button-prev {
  opacity: 0.5;
}

.swiper-container:hover .swiper-button-next:hover,
.swiper-container:hover .swiper-button-prev:hover {
  opacity: 1 !important;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: var(--swiper-navigation-size) !important;
  font-weight: bold;
  margin: 0 !important;
}

/* Стили для пагинации */
.swiper-pagination {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
}

.swiper-pagination-bullet {
  width: 2rem !important;
  height: 0.1rem !important;
  background: var(--swiper-pagination-color) !important;
  opacity: 0.3 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  transition: opacity 0.25s ease-out !important;
}

.swiper-pagination-bullet-active {
  opacity: 1 !important;
}

/* Стили для отключенных кнопок */
.swiper-button-disabled {
  opacity: 0.35 !important;
  cursor: default !important;
  pointer-events: none !important;
}

/* Компенсация отступа для всех слайдеров с padding-bottom */
.swiper-container .swiper-button-next,
.swiper-container .swiper-button-prev {
  margin-top: calc(-2rem) !important;
}

/* Убираем padding, когда пагинация отключена */
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"],
.swiper-container.no-pagination {
  padding-bottom: 0;
}

/* Скрываем пагинацию полностью, когда она отключена */
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"] .swiper-pagination,
.swiper-container.no-pagination .swiper-pagination {
  display: none;
}

/* Сбрасываем отступ для кнопок, когда пагинация отключена */
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"] .swiper-button-next,
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"] .swiper-button-prev,
.swiper-container.no-pagination .swiper-button-next,
.swiper-container.no-pagination .swiper-button-prev {
  margin-top: 0 !important;
}
.spoiler {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
  font-size: 1em;
  border-bottom: 0.1rem solid #D4D2D2;
  border-bottom: 0.1rem solid var(--color-6);
}
@media (min-width: 1200px) {
.spoiler {
    font-size: 0.9em;
}
  }

.spoiler__item {
  width: 100%;
}

.spoiler__item.title-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-bottom: 0.25rem;
  cursor: pointer;
}

.spoiler__item.title-wrap .spoiler__item-icon-wrap {
  width: 0.75rem;
  height: auto;
  transition: all 0.3s ease-in-out;
  flex-shrink: 0;
}

.spoiler__item.title-wrap.active .spoiler__item-icon-wrap{
  transform: rotate(180deg);
}

.spoiler__item.desc-wrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.25rem;
  padding-bottom: 0.5rem;
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;

  /* Предотвращаем наезжание текста */
  position: relative;
  z-index: 1;

  /* Дополнительная защита от наезжания */
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Убираем ограничение max-height для активных спойлеров */
.spoiler.active .spoiler__item.desc-wrap {
  max-height: none;
  overflow: visible;
  opacity: 1;
}

/* Стили для неактивных спойлеров */
.spoiler:not(.active) .spoiler__item.desc-wrap {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
}

/* Стили для описания внутри спойлера */
.spoiler__desc {
  width: 100%;
  line-height: 1.5;

  /* Предотвращаем наезжание */
  margin-bottom: 0.25rem;

  /* Дополнительная защита */
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Дополнительная защита от наезжания */
.spoiler__desc:last-child {
  margin-bottom: 0;
}

/* Предотвращаем наезжание во время анимации */
.spoiler__item.desc-wrap[style*="max-height"] {
  will-change: max-height;
}

/* Улучшенная анимация для плавного сворачивания */
.spoiler__item.desc-wrap {
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-owner {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
}
@media (min-width: 1200px) {
.card-owner {
    gap: 3rem;
}
  }

.card-owner .card__item.cover-wrap {
  width: 7rem;
  border-radius: 50%;
  overflow: hidden;
  transition: transform 0.4s ease-out;
}

@media (min-width: 1200px) {

.card-owner .card__item.cover-wrap {
    width: 17rem;
}
  }

.card-owner .card__item.cover-wrap img {
}

.card-owner .card__item.title-wrap {
  transition: transform 0.4s ease-out;
}

.card-owner:hover .card__item.cover-wrap {
  transform: translateX(-0.5rem);
}

.card-owner:hover .card__item.title-wrap {
  transform: translateX(0.5rem);
}

.card-owner .title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  font-size: 1.1em;
  line-height: 1.1;
}

@media (min-width: 1200px) {

.card-owner .title {
    font-size: 1.4em;
}
  }
.card-nav {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 2rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  border-radius: 2rem;
  -webkit-text-decoration: none;
  text-decoration: none;
  overflow: hidden;
  container-type: inline-size;
  container-name: card-nav;
}
@container card-nav (min-width: 75rem) {
.card-nav {
    padding: 4rem;
    border-radius: 4rem;
}
  }

.card-nav .card__item.cover-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.card-nav .card__item.cover-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: hsla(0, 0%, 0%, 0.2);
  z-index: 1;
}

.card-nav .card__cover {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  transition: transform 3s ease-out;
}

.card-nav.animation-zoom:hover .card__cover {
  transform: scale(1.05);
}
  
.card-nav .card__item.title-wrap {
  position: relative;
  width: 100%;
  z-index: 1;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.9em;
  text-align: center;
}

.card-nav .card__separator {
  width: 0.1rem;
  height: 4rem;
  background-color: currentcolor;
  font-size: 0;
  align-self: center;
}

@container card-nav (min-width: 75rem) {

.card-nav .card__separator {
    height: 5.33rem;
}
  }

@media not (min-width: 768px) {
  .card-nav .card__item.title-wrap {
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
  }

  .card-nav .card__separator {
    width: 8rem;
    height: 0.1rem;
  }
}

@container card-nav (min-width: 75rem) {

.card-nav.text-center .card__item.title-wrap {
    text-align: center;
}
  }

.card-nav .card__item.title-wrap .card__title {
  font-size: 2em;
}

@container card-nav (min-width: 75rem) {

.card-nav .card__item.title-wrap .card__title {
    font-size: 2.5em;
}
  }
.button-section {
  position: relative;
  width: 100%;
  height: 5rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 2rem;
  border-radius: 2rem;
  background: linear-gradient(to left, #000, #000);
  color: #fff;
  color: var(--color-1);
  overflow: hidden;
  transition: color 0.4s ease-out;
}
@media (min-width: 1200px) {
.button-section {
    height: 11rem;
    padding: 1.4rem 3rem;
    border-radius: 4rem;
    background: linear-gradient(to left, #F1ECE4, #DAD8D7);
    background: var(--gradient-3);
    color: #000;
    color: var(--color-2);
}
  }

.button-section::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #000;
  opacity: 0;
  border-radius: inherit;
  transition: opacity 0.4s ease-out;
  pointer-events: none;
  z-index: 0;
}

@media (hover: hover) and (pointer: fine) {
  .button-section:hover::before {
    opacity: 1;
  }

  .button-section:hover {
    color: #fff;
    color: var(--color-1);
    opacity: 1;
  }
}

.button-section__item {
  position: relative;
  z-index: 1;
}

.button-section__item.title-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.button-section__title {
  font-size: 1em;
  font-weight: 400;
}

@media (min-width: 1200px) {

.button-section__title {
    font-size: 1.8em;
}
  }

.button-section__item.icon-wrap {
  width: 2.4rem;
  height: 2.4rem;
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  background: #000;
  background: var(--color-2);
  overflow: hidden;
  transition: background 0.15s ease-out;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap {
    width: 4rem;
    height: 4rem;
    padding: 1rem;
}
  }

.button-section__item.icon-wrap img {
  width: 100%;
  height: 100%;
}

.button-section__item.icon-wrap.green {
  background: #3A9550;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap.green {
    background: #000;
    background: var(--color-2);
}
  }

.button-section__item.icon-wrap.blue {
  background: #008ACF;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap.blue {
    background: #000;
    background: var(--color-2);
}
  }

.button-section__item.icon-wrap.red {
  background: #C72229;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap.red {
    background: #000;
    background: var(--color-2);
}
  }

@media (hover: hover) and (pointer: fine) {
  .button-section:hover .button-section__item.icon-wrap.green {
    background: #3A9550;
  }

  .button-section:hover .button-section__item.icon-wrap.blue {
    background: #008ACF;
  }

  .button-section:hover .button-section__item.icon-wrap.red {
    background: #C72229;
  }
}
.card-gradient {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  border-radius: 2rem;
  background: linear-gradient(to left, #F1ECE4, #DAD8D7);
  background: var(--gradient-3);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: #fff;
  color: var(--color-1);
  overflow: hidden;
  transition: all 0.25s ease-out;
  container-type: inline-size;
  container-name: card-gradient;
}
@container card-gradient (min-width: 75rem) {
.card-gradient {
    padding: 4rem;
    gap: 1.25rem;
    border-radius: 4rem;
}
  }

.card-gradient__cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
  transition: transform 0.6s ease-out;
}

/* CSS-радиальные градиенты как замена PNG */
.card-gradient__cover.gradient-red {
  background:
    radial-gradient(ellipse 70% 130% at 100% 110%,
      #e21100 0%,
      #8a0700 18%,
      #2a0300 45%,
      #000 80%);
}

.card-gradient__cover.gradient-sunset {
  background:
    radial-gradient(circle 330px at 50% 100%,
      #000 0%, #2a0900 25%, #7a1f02 55%, transparent 90%),
    radial-gradient(circle 240px at 22% 0%,
      #000 0%, #2a0900 25%, #7a1f02 55%, transparent 90%),
    radial-gradient(circle 240px at 78% 0%,
      #000 0%, #2a0900 25%, #7a1f02 55%, transparent 90%),
    #ff561e;
}

.card-gradient.animation-zoom .card-gradient__cover {
  transform-origin: 100% 100%;
}

.card-gradient.animation-zoom:hover .card-gradient__cover {
  transform: scale(1.6);
}

.card-gradient.animation-shift-down .card-gradient__cover {
  top: -25%;
  right: 0;
  bottom: -25%;
  left: 0;
  transition: transform 0.3s ease-out;
}

.card-gradient.animation-shift-down:hover .card-gradient__cover {
  transform: translateY(10%);
}

/* Параллакс фона за курсором (логика — в js/components/card-gradient-parallax.js) */
.card-gradient.animation-parallax .card-gradient__cover {
  top: -8%;
  right: -4%;
  bottom: -8%;
  left: -4%;
  transition: transform 0.25s ease-out;
}

.card-gradient.animation-parallax.link:hover,
.card-gradient.animation-parallax.link:active {
  opacity: 1;
}

.card-gradient .card__item.title-wrap {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.9em;
  text-align: center;
}

.card-gradient .card__item.title-wrap .card__title {
  font-size: 2em;
}

@container card-gradient (min-width: 75rem) {

.card-gradient .card__item.title-wrap .card__title {
    font-size: 2.5em;
}
  }

.card-gradient .card__separator {
  width: 0.1rem;
  height: 4rem;
  background-color: currentcolor;
  font-size: 0;
  align-self: center;
}

@container card-gradient (min-width: 75rem) {

.card-gradient .card__separator {
    height: 5.33rem;
}
  }

/* Мобильная версия: заголовки в колонку, разделитель — горизонтальная линия */
@media not (min-width: 768px) {
  .card-gradient .card__item.title-wrap {
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
  }

  .card-gradient .card__separator {
    width: 8rem;
    height: 0.1rem;
  }

  .card-gradient .card__item.icon-wrap img {
    width: 6rem;
    height: 6rem;
  }
}

.card-gradient .card__item.icon-wrap {
  flex-shrink: 0;
  z-index: 1;
}

.card-gradient .card__item.icon-wrap img {
  width: 2rem;
  height: 2rem;
}

@container card-gradient (min-width: 75rem) {

.card-gradient .card__item.icon-wrap img {
    width: 3.2rem;
    height: 3.2rem;
}
  }
.card-number {
  display: flex;
  flex-direction: column;
  color: #000;
  color: var(--color-2);
}
@media (min-width: 1200px) {
.card-number {
}
  }

.card-number__item.title-wrap {
  display: flex;
  align-items: baseline;
}

.card-number__title {
  display: inline-block;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 500;
  font-size: 6em;
  line-height: 0.9;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

@media (min-width: 1200px) {

.card-number__title {
    font-size: 8em;
}
  }

.card-number__title::before {
  content: attr(data-final);
  display: block;
  height: 0;
  visibility: hidden;
}

.card-number__plus {
  opacity: 0;
  transition: opacity 0.4s ease-out;
}

.card-number__plus.visible {
  opacity: 1;
}

.card-number__item.label-wrap {
  display: flex;
  opacity: 0;
  transition: opacity 0.4s ease-out;
}

.card-number__item.label-wrap.visible {
  opacity: 1;
}

.card-number__label {
  font-size: 2.4em;
  font-weight: 200;
}
.card-restaurant {
  position: relative;
  width: 100%;
  border-radius: 2rem;
  background: #151515;
  background: var(--color-7);
  overflow: hidden;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.card-restaurant .card__item.bg-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

@media (min-width: 1200px) {

.card-restaurant .card__item.bg-wrap {
    height: 30rem;
}
  }

.card-restaurant .card-restaurant-slider {
  width: 100%;
  height: 100%;
  padding-bottom: 0;
}

.card-restaurant .card-restaurant-slider .swiper-wrapper {
  width: 100%;
  height: 100%;
}

.card-restaurant .card-restaurant-slider .swiper-slide {
  width: 100%;
  height: 100%;
}

.card-restaurant .card-restaurant-slide {
  position: relative;
  background: #000;
  background: var(--color-2);
  overflow: hidden;
}

.card-restaurant .card-restaurant-slide--cover .card__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.card-restaurant .card-restaurant-slide--cover .card__icon {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  width: 18rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  z-index: 1;
}

@media (min-width: 1200px) {

.card-restaurant .card-restaurant-slide--cover .card__icon {
    bottom: 3rem;
    right: 3rem;
}
  }

.card-restaurant .card__badge {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  width: 8.6rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 8.25rem;
  background: #fff;
  background: var(--color-1);
  color: #000;
  color: var(--color-2);
  z-index: 1;
}

@media (min-width: 1200px) {

.card-restaurant .card__badge {
    bottom: 3rem;
    left: 3rem;
}
  }

.card-restaurant .card-restaurant-slide .card__logo {
  position: absolute;
  top: 2rem;
  left: 2rem;
  width: auto;
  max-width: calc(100% - 4rem);
  height: 7rem;
  height: var(--logo-height, 7rem);
  -o-object-fit: contain;
     object-fit: contain;
  z-index: 1;
}

@media (min-width: 1200px) {

.card-restaurant .card-restaurant-slide .card__logo {
    top: 3rem;
    left: 3rem;
    max-width: calc(100% - 6rem);
}
  }

.card-restaurant .card-restaurant-slide--desc,
.card-restaurant .card-restaurant-slide--info {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  padding-top: calc(1.5rem + 7rem + 1rem);
  padding-top: calc(1.5rem + var(--logo-height, 7rem) + 1rem);
  color: #fff;
  color: var(--color-1);
}

@media (min-width: 1200px) {

.card-restaurant .card-restaurant-slide--desc,
.card-restaurant .card-restaurant-slide--info {
    padding: 3rem;
    padding-top: calc(3rem + 7rem + 1rem);
    padding-top: calc(3rem + var(--logo-height, 7rem) + 1rem);
}
  }

/* Кламп длинных описаний: текст длиннее ~6 строк (Joli СПб, Salone — 500+ симв.)
   при justify-content: flex-end переполнял слайд вверх — накрывал лого и обрезался
   краем карточки. 6 строк влезают на всех брейкпоинтах при самом высоком лого (7.4rem);
   полный текст остаётся на странице ресторана (кнопка «Подробнее»). */
.card-restaurant .card-restaurant-slide__desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  min-height: 0;
  overflow: hidden;
}

.card-restaurant .card-restaurant-slide__text {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.45;
  color: #fff;
  color: var(--color-1);
}

.card-restaurant .card-restaurant-slide__text + .card-restaurant-slide__text {
  margin-top: 0.8rem;
}

.card-restaurant .card-restaurant-slide__info {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.card-restaurant .card-restaurant-slide__line {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.4;
  color: #fff;
  color: var(--color-1);
}

.card-restaurant .card-restaurant-slide--photo .card-restaurant-slide__photo {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.card-restaurant .card-restaurant-slider .swiper-button-prev,
.card-restaurant .card-restaurant-slider .swiper-button-next {
  background: transparent;
  color: #fff;
  color: var(--color-1);
}

.card-restaurant .card-restaurant-slider .swiper-button-prev::after,
.card-restaurant .card-restaurant-slider .swiper-button-next::after {
  font-size: 2rem !important;
  font-weight: 700;
}

.card-restaurant .card-restaurant-slider .swiper-button-disabled {
  opacity: 0 !important;
}

.card-restaurant:hover .card-restaurant-slider .swiper-button-disabled {
  opacity: 0 !important;
}

.card-restaurant .card-restaurant-slider .swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.card-restaurant-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.card-restaurant-wrap .card__item.title-wrap {
  text-align: left;
}

.card-restaurant-wrap .card__title {
  font-size: 1.4em;
}

@media (min-width: 1200px) {

.card-restaurant-wrap .card__title {
    font-size: 1.5em;
}
  }

.card-restaurant-wrap .card__item.desc-wrap {
  flex: 1;
  text-align: left;
}

.card-restaurant-wrap .card__desc {
  font-size: 1em;
}

.card-restaurant-wrap .card__item.buttons-wrap {
  display: flex;
  gap: 1rem;
  margin-top: auto;
}
/* ============================================
   Component: card-event (карточка события)
   ============================================ */

.card-event {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #151515;
  background: var(--color-7);
  border-radius: 1.6rem;
  overflow: hidden;
  color: #fff;
  color: var(--color-1);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.card-event:hover,
.card-event:focus-visible {
  background: rgb(35, 35, 35);
}

@supports (color: color-mix(in lch, red, blue)) {
.card-event:hover,
.card-event:focus-visible {
  background: color-mix(in srgb, var(--color-7), white 6%);
}
}

.card-event:focus-visible {
  outline: 2px solid #fff;
  outline: 2px solid var(--color-1);
  outline-offset: 2px;
}

.card-event__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #151515;
  background: var(--color-7);
}

.card-event__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all ease-out;
  transition: var(--transition-2);
}

.card-event:hover .card-event__img {
  transform: scale(1.05);
}

.card-event__date {
  position: absolute;
  top: 1.4rem;
  left: 1.4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 5.6rem;
  padding: 0.8rem 1rem;
  background: #fff;
  background: var(--color-1);
  border-radius: 1rem;
  line-height: 1;
}

.card-event__date-day {
  font-family: "TT Norms Pro", sans-serif;
  font-family: var(--font-1);
  font-weight: 600;
  font-size: 2.6rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #000;
  color: var(--color-2);
}

.card-event__date-month {
  margin-top: 0.3rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #666;
  color: var(--color-muted);
}

.card-event__tag {
  position: absolute;
  bottom: 1.4rem;
  left: 1.4rem;
  padding: 0.5rem 1.2rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  color: var(--color-1);
  background: rgba(21, 21, 21, 0.55);
  backdrop-filter: blur(6px);
  border-radius: 10rem;
}

.card-event__badge {
  position: absolute;
  top: 1.4rem;
  right: 1.4rem;
  padding: 0.5rem 1.1rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
  border-radius: 10rem;
}

.card-event__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 2rem 2.2rem 2.2rem;
}

.card-event__place {
  font-size: 1.3rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__title {
  margin-top: 0.8rem;
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #fff;
  color: var(--color-1);
}

.card-event__meta {
  margin-top: 1rem;
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  margin-top: auto;
  padding-top: 1.8rem;
}

.card-event__price {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  line-height: 1.1;
}

.card-event__price-label {
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__price-value {
  font-weight: 600;
  font-size: 1.9rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.card-event__price-value--tba {
  font-size: 1.5rem;
  font-weight: 500;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__cta {
  flex-shrink: 0; /* кнопка внутри <a.card-event> — клик и так уходит по карточке-ссылке */
}

/* ховер кнопки срабатывает и при наведении на всю карточку */
.card-event:hover .card-event__cta.bg-color-1 {
  background: rgb(230, 230, 230);
}

@supports (color: color-mix(in lch, red, blue)) {
.card-event:hover .card-event__cta.bg-color-1 {
  background: color-mix(in srgb, var(--color-1), black 10%);
}
}

.card-event:hover .card-event__cta.bg-color-6 {
  background: rgb(42, 42, 42);
  color: #fff;
  color: var(--color-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.card-event:hover .card-event__cta.bg-color-6 {
  background: color-mix(in srgb, var(--color-6), black 80%);
}
}

.card-event--sold {
  opacity: 0.85;
}

.card-event--sold .card-event__img {
  filter: grayscale(0.35);
}

/* Pages */
.page-404 {
  /* Стили для 404 */
}

.page-404 .container {
  /* Стили для контейнера в 404 */
}
.contacts {
  /* Стили для contacts */
}

.contacts .container {
  /* Стили для контейнера в contacts */
}
.index {
  /* Стили для index */
}

.index .container {
  /* Стили для контейнера в index */
}
.logoline {
  overflow: hidden;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.logoline {
    padding-top: 10rem;
    padding-bottom: 2rem;
}
  }

.logoline .swiper-container {
  overflow: hidden;
}

.logoline .is-marquee {
  contain: layout paint;
  cursor: grab;
  touch-action: pan-y;
}

.logoline .is-marquee.is-dragging {
  cursor: grabbing;
}

.logoline .is-marquee .swiper-wrapper {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.logoline .swiper-slide {
  width: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  flex-shrink: 0;
  margin-right: 40px;
}

@media (min-width: 1200px) {

.logoline .swiper-slide {
    margin-right: 80px;
}
  }

.logoline__item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
  -webkit-user-drag: none;
}

@media (min-width: 1200px) {

.logoline__item {
    padding: 0.5rem 1rem;
}
  }

.logoline__logo {
  display: block;
  width: auto;
  height: calc(8.4rem * 0.7);
  height: calc(var(--logo-height, 8.4rem) * 0.7);
  opacity: 0.5;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
  pointer-events: none;
  -webkit-user-drag: none;
}

@media (min-width: 1200px) {

.logoline__logo {
    height: 7.5rem;
    height: var(--logo-height, 7.5rem);
}
  }

.logoline .swiper-slide:hover .logoline__logo {
  opacity: 1;
}
.promo.section {
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding-top: 8rem;
  padding-bottom: 6rem;
  min-height: 60vh;
  display: flex;
  align-items: center;
}
@media (min-width: 1200px) {
.promo.section {
    padding-top: 12rem;
    padding-bottom: 8rem;
    min-height: 70vh;
}
  }

.promo__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  text-align: center;
  max-width: 60rem;
  margin: 0 auto;
}

.promo__code {
  font-size: 12rem;
  line-height: 1;
  letter-spacing: -0.02em;
}

@media (min-width: 1200px) {

.promo__code {
    font-size: 18rem;
}
  }

.promo__heading-wrap {
  width: 100%;
}

.promo__heading-wrap .heading {
  font-size: 1.6em;
}

@media (min-width: 1200px) {

.promo__heading-wrap .heading {
    font-size: 2em;
}
  }

.promo__text {
  font-size: 1em;
  line-height: 1.5;
  opacity: 0.7;
  margin: 0;
}

.promo__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 1rem;
}
.restaurants {
  /* Стили для restaurants */
}

.restaurants .container {
  /* Стили для контейнера в restaurants */
}
/* ============================================
   Page: restaurant detail
   ============================================ */

body:has(.restaurant-detail) {
  background: #000;
  background: var(--color-2);
}

.restaurant-detail {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 0;
  background: #000;
  background: var(--color-2);
}

/* ---- Slider ---- */

.restaurant-detail__item.slider-wrap {
  position: relative;
}

.restaurant-detail__item.slider-wrap .swiper-container {
  width: 100%;
  height: 54rem;
  padding-bottom: 0;
}

@media (min-width: 1200px) {

.restaurant-detail__item.slider-wrap .swiper-container {
    height: 90rem;
}
  }

.restaurant-detail__item.slider-wrap .swiper-slide {
  width: 100%;
  height: 100%;
}

.restaurant-detail__item.slider-wrap .swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.restaurant-detail__item.slider-wrap .swiper-pagination {
  bottom: 2rem;
}

/* override: swiper inline nav color + cancel padding offset */
.restaurant-detail__item.slider-wrap .swiper-pagination-bullet {
  background: #fff !important;
  background: var(--color-1) !important;
}

.restaurant-detail__item.slider-wrap .swiper-button-next,
.restaurant-detail__item.slider-wrap .swiper-button-prev {
  --swiper-navigation-color: var(--color-1);

  margin-top: 0 !important;
}

/* Тёмный оверлей для читаемости */
.restaurant-intro .swiper-container::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.25) 50%, rgba(0, 0, 0, 0.1) 100%);
  z-index: 1;
  pointer-events: none;
}

/* ---- Restaurant intro overlay ---- */

.restaurant-intro__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  pointer-events: none;
  color: #fff;
  color: var(--color-1);
}

.restaurant-intro__overlay .container {
  pointer-events: auto;
}

.restaurant-intro__content {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  max-width: 70rem;
}

@media (min-width: 1200px) {

.restaurant-intro__content {
    gap: 3.6rem;
}
  }

.restaurant-intro__title {
  font-size: 3em;
  line-height: 1.05;
  margin: 0;
}

@media (min-width: 1200px) {

.restaurant-intro__title {
    font-size: 4.5em;
}
  }

.restaurant-intro__contacts {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1.4rem;
}

@media (min-width: 1200px) {

.restaurant-intro__contacts {
    font-size: 1.6rem;
}
  }

.restaurant-intro__line {
  margin: 0;
  color: #fff;
  color: var(--color-1);
}

.restaurant-intro__hours {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1.4rem;
}

@media (min-width: 1200px) {

.restaurant-intro__hours {
    font-size: 1.6rem;
}
  }

.restaurant-intro__hours-note {
  margin: 0;
  max-width: 52rem;
  font-size: 1.3rem;
  line-height: 1.4;
  opacity: 0.85;
}

@media (min-width: 1200px) {

.restaurant-intro__hours-note {
    font-size: 1.5rem;
}
  }

.restaurant-intro__hours-row + .restaurant-intro__hours-note {
  margin-top: 0.4rem;
}

.restaurant-intro__hours-title {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.4rem;
}

.restaurant-intro__hours-icon {
  position: relative;
  display: inline-block;
  width: 2.4rem;
  height: 2.4rem;
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Часовая стрелка (вверх к 12) */
.restaurant-intro__hours-icon::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.1rem;
  height: 0.7rem;
  background: #fff;
  background: var(--color-1);
  transform-origin: bottom center;
  transform: translate(-50%, -100%);
}

/* Минутная стрелка (вправо к 3) */
.restaurant-intro__hours-icon::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.9rem;
  height: 0.1rem;
  background: #fff;
  background: var(--color-1);
  transform-origin: left center;
  transform: translate(0, -50%);
}

.restaurant-intro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.8rem;
}

@media (min-width: 1200px) {

.restaurant-intro__actions {
    gap: 1.6rem;
}
  }

.restaurant-intro__actions .button.bg-color-1:hover {
  color: #000;
  color: var(--color-2);
}

/* ---- Breadcrumb ---- */

.restaurant-detail__item.breadcrumb-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85em;
  color: #666;
  color: var(--color-muted);
}

.restaurant-detail__item.breadcrumb-wrap a {
  color: #666;
  color: var(--color-muted);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.2s;
}

.restaurant-detail__item.breadcrumb-wrap a:hover {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.restaurant-detail__item.breadcrumb-wrap .breadcrumb-sep {
  color: #D4D2D2;
  color: var(--color-6);
}

/* ---- About ---- */

.restaurant-detail__item.about-wrap {
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding-top: 5rem;
  padding-bottom: 5rem;
}

@media (min-width: 1200px) {

.restaurant-detail__item.about-wrap {
    padding-top: 10rem;
    padding-bottom: 10rem;
}
  }

.restaurant-detail .about-wrap .container-md {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.restaurant-detail .about-wrap .section__item.heading-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

@media (min-width: 1200px) {

.restaurant-detail .about-wrap .section__item.heading-wrap {
    gap: 2rem;
}
  }

.restaurant-detail .about-wrap .section__item.heading-wrap .heading {
  font-size: 2em;
  line-height: 1.1;
  margin: 0;
}

@media (min-width: 1200px) {

.restaurant-detail .about-wrap .section__item.heading-wrap .heading {
    font-size: 3.2em;
}
  }

.restaurant-about__sub {
  margin: 0;
  max-width: 90rem;
  font-size: 1.4em;
  line-height: 1.3;
  color: #D4D2D2;
  color: var(--color-6);
}

@media (min-width: 1200px) {

.restaurant-about__sub {
    font-size: 1.8em;
}
  }

.restaurant-detail .about-wrap .section__item.desc-wrap {
  font-size: 1em;
  line-height: 1.5;
  color: #fff;
  color: var(--color-1);
  max-width: 80rem;
}

.restaurant-detail .about-wrap .restaurant-about__col {
  margin: 0;
}

.restaurant-about__logo {
  display: flex;
  justify-content: flex-start;
}

.restaurant-about__logo img {
  display: block;
  width: auto;
  max-width: 100%;
  filter: brightness(0) invert(1);
}

.restaurant-about__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

@media (min-width: 1200px) {

.restaurant-about__actions {
    gap: 1.6rem;
}
  }

.restaurant-about__staff {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.restaurant-staff__heading {
  font-size: 1em;
  font-weight: 500;
  margin: 0;
}

.restaurant-staff__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-gap: 0.5rem 2.5rem;
  gap: 0.5rem 2.5rem;
  grid-template-columns: 1fr;
}

@media (min-width: 992px) {

.restaurant-staff__list {
    grid-template-columns: 1fr 1fr;
}
  }

.restaurant-staff__item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
}

.restaurant-staff__role {
  color: #fff;
  color: var(--color-1);
  opacity: 0.7;
}

.restaurant-staff__name {
  color: #fff;
  color: var(--color-1);
}

/* Галерея. Телефон: лента одинаковых кадров с листанием вбок — два десятка снимков
   в столбик отжимают вниз и вопросы гостей, и соседние рестораны. Планшет и десктоп:
   ряды разной крупности — целый кадр, половины, трети, четверти. Ширины расставляет
   шаблон, ряды по построению закрываются целиком. */
.restaurant-about__gallery-block {
  --gallery-gap: 0.8rem;
}
@media (min-width: 768px) {
.restaurant-about__gallery-block {
    --gallery-gap: 1.6rem;
}
  }
@media (min-width: 1200px) {
.restaurant-about__gallery-block {
    --gallery-gap: 2rem;
}
  }

.restaurant-about__gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 76%;
  grid-gap: var(--gallery-gap);
  gap: var(--gallery-gap);
  padding-bottom: 0.4rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.restaurant-about__gallery::-webkit-scrollbar {
  display: none;
}

.restaurant-about__gallery .restaurant-about__photo {
  scroll-snap-align: center;
}

.restaurant-about__photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 1.6rem;
}

@media (min-width: 1200px) {

.restaurant-about__photo {
    border-radius: 2.4rem;
}
  }

.restaurant-about__photo img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.restaurant-about__photo > a {
  display: block;
  width: 100%;
  height: 100%;
}

/* Переключатель «показать ещё» — чекбокс, без единой строчки JS. */
.restaurant-about__gallery-toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.restaurant-about__gallery-more {
  display: none;
}

@media (min-width: 768px) {
  .restaurant-about__gallery {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(12, 1fr);
    padding-bottom: 0;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  /* Ширина кадра приходит из данных, пропорция закреплена за ней: кадры одного размера
     в ряду всегда одной высоты, без подгонки. */
  .restaurant-about__photo--w12 {
    grid-column: span 12;
    aspect-ratio: 16 / 9;
  }

  .restaurant-about__photo--w6 {
    grid-column: span 6;
    aspect-ratio: 3 / 2;
  }

  .restaurant-about__photo--w4 {
    grid-column: span 4;
    aspect-ratio: 4 / 3;
  }

  /* На планшете четверти встают по две в ряд: вчетвером на такой ширине кадры
     превращаются в почтовые марки. */
  .restaurant-about__photo--w3 {
    grid-column: span 6;
    aspect-ratio: 3 / 2;
  }

  /* Свёрнутая галерея показывает первые три ряда целиком: где обрыв придётся на середину
     ряда, последний кадр повис бы один. Кадры за обрезом помечены в шаблоне. */
  .restaurant-about__gallery--collapsible .restaurant-about__photo--extra {
    display: none;
  }

  .restaurant-about__gallery-block:has(.restaurant-about__gallery-toggle:checked) .restaurant-about__photo--extra {
    display: block;
  }

  .restaurant-about__gallery-more {
    display: inline-flex;
    width: -moz-fit-content;
    width: fit-content;

    /* Отступ до кнопки равен зазору между кадрами — кнопка читается как часть сетки. */
    margin-top: var(--gallery-gap);
  }

  .restaurant-about__gallery-more-close {
    display: none;
  }

  .restaurant-about__gallery-block:has(.restaurant-about__gallery-toggle:checked) .restaurant-about__gallery-more-open {
    display: none;
  }

  .restaurant-about__gallery-block:has(.restaurant-about__gallery-toggle:checked) .restaurant-about__gallery-more-close {
    display: inline;
  }
}

@media (min-width: 1200px) {
  .restaurant-about__photo--w3 {
    grid-column: span 3;
    aspect-ratio: 1 / 1;
  }
}
/* ============================================
   Page: event detail (страница события)
   ============================================ */

.event-detail {
  display: flex;
  flex-direction: column;
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
}

/* ---------- HERO ---------- */

.event-hero {
  position: relative;
  min-height: 46rem;
  display: flex;
  align-items: flex-end;
}

@media (min-width: 992px) {

.event-hero {
    min-height: 64rem;
}
  }

.event-hero__media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  background: #151515;
  background: var(--color-7);
}

.event-hero__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.event-hero__scrim {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    linear-gradient(to top, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0.1) 100%);
}

.event-hero__overlay {
  position: relative;
  width: 100%;
  padding: 4rem 0 4.4rem;
}

@media (min-width: 992px) {

.event-hero__overlay {
    padding: 6rem 0 6.4rem;
}
  }

.event-hero__content {
  max-width: 82rem;
  color: #fff;
  color: var(--color-1);
}

.event-hero__eyebrow {
  display: inline-block;
  padding: 0.6rem 1.4rem;
  margin-bottom: 1.8rem;
  font-size: 1.3rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
  border-radius: 10rem;
}

.event-hero__title {
  font-size: 3.6rem;
  line-height: 1.05;
  letter-spacing: 0.01em;
}

@media (min-width: 768px) {

.event-hero__title {
    font-size: 5.2rem;
}
  }

@media (min-width: 1200px) {

.event-hero__title {
    font-size: 6.4rem;
}
  }

.event-hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 2.8rem;
  margin-top: 2.4rem;
  font-size: 1.6rem;
}

@media (min-width: 768px) {

.event-hero__facts {
    font-size: 1.8rem;
}
  }

.event-hero__fact {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  color: rgba(255, 255, 255, 0.92);
}

.event-hero__fact-icon {
  display: inline-flex;
  color: inherit;
  opacity: 0.7;
}

/* ---------- BODY + STICKY TICKET ---------- */

.event-body {
  background: #000;
  background: var(--color-2);
}

.event-body__grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 4rem;
  gap: 4rem;
}

@media (min-width: 992px) {

.event-body__grid {
    grid-template-columns: minmax(0, 1fr) 36rem;
    gap: 5rem;
    align-items: start;
}
  }

/* Ритм левой колонки — через gap на родителе (конвенция платформы), без своих margin у блоков.
   У <p> нет глобального reset — браузерные margin ломают ритм, обнуляем в пределах колонки */
.event-body__main {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}

.event-body__main p {
  margin: 0;
}

.event-body__intro {
  display: grid;
  grid-gap: 1.4rem;
  gap: 1.4rem;
}

.event-body__place {
  font-size: 1.4rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-body__lead {
  font-size: 2rem;
  line-height: 1.5;
  font-weight: 500;
  color: #fff;
  color: var(--color-1);
}

@media (min-width: 768px) {

.event-body__lead {
    font-size: 2.4rem;
}
  }

.event-body__text {
  font-size: 1.7rem;
  line-height: 1.7;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-body__text p + p {
  margin-top: 1.4rem;
}

/* ---- Content blocks ---- */

.event-block {
  margin-top: 0; /* ритм задаёт gap родителя .event-body__main */
}

.event-block__heading {
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #D4D2D2;
  color: var(--color-6);
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  margin-bottom: 2rem;
}

/* Программа */

.event-program {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.event-program__item {
  display: flex;
  gap: 2rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 1.7rem;
}

.event-program__item:last-child {
  border-bottom: 0;
}

.event-program__time {
  flex-shrink: 0;
  min-width: 6rem;
  font-weight: 600;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-program__title {
  color: #D4D2D2;
  color: var(--color-6);
}

/* В стоимость входит — список с тематическими иконками */

.event-includes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem 3rem;
}

.event-includes__item {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.5rem;
  line-height: 1.3;
  color: #fff;
  color: var(--color-1);
}

.event-includes__mark {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
}

/* Крупные заголовки разделов и акцентные абзацы (референс vechervosobnyake-italy.ru) */

.event-body__section {
  display: grid;
  grid-gap: 1.6rem;
  gap: 1.6rem;
}

.event-h2 {
  display: block; /* глобальный reset делает h1-h6 inline-block — бокс сжимается и text-align:center не центрирует по колонке */
  width: 100%;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: 2em;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  margin: 0;
}

@media (min-width: 768px) {

.event-h2 {
    font-size: 2.57em;
}
  }


.event-accent {
  margin: 0;
  text-align: center;
  font-size: 1.43em;
  line-height: 1.65;
}


@media (min-width: 768px) {


.event-accent {
    font-size: 1.57em;
}
  }

.event-accent p {
  max-width: 66ch;
  margin: 0 auto;
}

.event-accent::before,
.event-accent::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin: 0 auto;
  background: #888;
  background: var(--color-border);
}

.event-accent::before { margin-bottom: 2.4rem; }
.event-accent::after { margin-top: 2.4rem; }

/* Меню вечера — по референсу лендинга vechervosobnyake-italy.ru:
   тёмный фон страницы, светлый текст, центрированные заголовки с золотыми линиями */

.event-menu {
  display: grid;
  grid-gap: 1.6rem;
  gap: 1.6rem;
}

.event-menu__intro {
  font-size: 1.21em;
  line-height: 1.7;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-menu__groups {
  display: grid;
  grid-gap: 3.6rem;
  gap: 3.6rem;
}

.event-menu__group {
  text-align: center;
}

.event-menu__group-title {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin: 0 0 1.8rem;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: 1.5em;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #fff;
  color: var(--color-1);
  white-space: nowrap;
}

.event-menu__group-title::before,
.event-menu__group-title::after {
  content: "";
  flex: 1 1 0;
  height: 1px;
  background: #c44c01;
}

.event-menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-gap: 1.1rem;
  gap: 1.1rem;
  justify-items: center;
}

.event-menu__item {
  max-width: 46ch;
  line-height: 1.5;
  color: #fff;
  color: var(--color-1);
}

.event-menu__more {
  display: contents; /* группы наследуют сетку .event-menu__groups */
}

.event-menu__more[hidden] {
  display: none;
}

.event-menu__toggle {
  justify-self: center;
  padding: 1.2rem 2.8rem;
  background: none;
  border: 1px solid #c44c01;
  border-radius: 2.4rem;
  color: #fff;
  color: var(--color-1);
  font: inherit;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.event-menu__toggle:hover {
  border-color: #E65901;
  border-color: var(--color-3);
  background: rgba(230, 89, 1, 0.1);
}

.event-menu__full {
  display: inline-block;
  color: #fff;
  color: var(--color-1);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

/* Галерея */

.event-gallery {
  /* асимметричная сетка: узкая (портрет) + широкая (ландшафт), затем слайд во всю ширину */
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 1.2rem;
  gap: 1.2rem;
}

@media (min-width: 768px) {

.event-gallery {
    grid-template-columns: 2fr 3fr;
    gap: 1.6rem;
}
  }

.event-gallery__figure {
  margin: 0;
  overflow: hidden;
  border-radius: 1.2rem;
  height: 32rem;
}

@media (min-width: 768px) {

.event-gallery__figure {
    height: 52rem;
}
  }

.event-gallery__figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all ease-out;
  transition: var(--transition-2);
}

.event-gallery__figure:hover img {
  transform: scale(1.05);
}

/* каждый третий слайд (карта прохода) — самостоятельный центрированный блок
   с естественными пропорциями изображения, как на референсе */
.event-gallery__figure:nth-child(3n) {
  grid-column: 1 / -1;
  height: auto;
  aspect-ratio: auto;
  max-width: 72rem;
  width: 100%;
  margin: 0 auto;
}

.event-gallery__figure:nth-child(3n) img {
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
}

.event-gallery__figure .glightbox {
  /* инлайновая ссылка не даёт высоту img — растягиваем на весь figure */
  display: block;
  width: 100%;
  height: 100%;
}

.event-gallery__figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all ease-out;
  transition: var(--transition-2);
}

.event-gallery__figure:hover img {
  transform: scale(1.05);
}

/* ---- Sticky ticket card ---- */

/* На мобиле карточка дублирует форму брони (сводка+CTA) — показываем только на десктопе */
.event-ticket {
  display: none;
}
@media (min-width: 992px) {
.event-ticket {
    /* липкая шапка 12rem высотой + воздух */
    display: block;
    position: sticky;
    top: 14.4rem;
}
  }

.event-ticket__card {
  padding: 2.6rem 2.4rem;
  background: #151515;
  background: var(--color-7);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.8rem;
}

.event-ticket__date {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.event-ticket__date-day {
  font-family: "TT Norms Pro", sans-serif;
  font-family: var(--font-1);
  font-weight: 600;
  font-size: 4.4rem;
  line-height: 1;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__date-rest {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.event-ticket__date-month {
  font-size: 1.8rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__date-weekday {
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__facts {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.event-ticket__facts li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.6rem;
  font-size: 1.5rem;
}

.event-ticket__facts span {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__facts b {
  font-weight: 500;
  text-align: right;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__seats {
  font-weight: 600;
}

.event-ticket__price {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
  padding: 1.8rem 0;
  margin-bottom: 1.8rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.event-ticket__price-label {
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__price-value {
  font-weight: 600;
  font-size: 2.8rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__price-value--tba {
  font-size: 1.7rem;
  font-weight: 500;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__cta {
  display: flex;
  width: 100%;
  justify-content: center;
}

/* Длинный текст («В лист ожидания» и т.п.) не ломает кнопку фикс-высоты */
.event-ticket__cta.button {
  height: auto;
  min-height: 5rem;
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
  text-align: center;
}

.event-ticket__share {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 100%;
  margin-top: 1.2rem;
  padding: 1rem;
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.event-ticket__share:hover {
  color: #fff;
  color: var(--color-1);
}

/* ---------- Оформление ---------- */

.event-buy {
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding-top: 0; /* .section даёт 6rem сверху, а event-body уже даёт 6rem снизу — двойной зазор */
}

/* заголовок, подводка и форма — по центру ЛЕВОЙ колонки двухколоночного блока выше
   (контент сужается на ширину aside 36rem + gap 5rem) */
.event-buy .container {
  display: grid;
  grid-gap: 3.2rem;
  gap: 3.2rem;
}

.event-buy .heading-wrap {
  text-align: center;
  display: grid;
  grid-gap: 1.4rem;
  gap: 1.4rem;
}

@media (min-width: 992px) {
  .event-buy .section__item {
    width: calc(100% - 41rem);
  }

  /* карточку формы центрируем по той же левой колонке:
     max-width+margin:auto центрировали её по всему контейнеру */
  .event-buy .event-buy__form {
    margin-left: max(0rem, calc((100% - 41rem - 76rem) / 2));
    margin-right: 0;
    margin-top: 0;
  }
}

.event-buy__heading {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: 2em;
  font-weight: 500;
  letter-spacing: 0.04em;
}

@media (min-width: 768px) {

.event-buy__heading {
    font-size: 2.57em;
}
  }

.event-buy__sub {
  max-width: 72ch;
  margin: 0 auto;
  font-size: 1.14em;
  line-height: 1.6;
  color: #D4D2D2;
  color: var(--color-6);
}

/* Панель формы — как карточка билета в aside */

.event-buy__form {
  max-width: 76rem;
  margin: 0 auto;
  padding: 2.4rem 2rem;
  background: #151515;
  background: var(--color-7);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.8rem;
}

@media (min-width: 768px) {

.event-buy__form {
    padding: 3.2rem 3.6rem;
}
  }

/* Тёмная форма: поля-боксы с видимыми лейблами */

.event-buy .form-callback .form-callback__input {
  padding: 1.3rem 1.6rem;
  color: #fff;
  color: var(--color-1);
  caret-color: #fff;
  caret-color: var(--color-1);
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1rem;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.event-buy .form-callback .form-callback__input::-moz-placeholder {
  color: rgba(255, 255, 255, 0.55);
  opacity: 1;
}

.event-buy .form-callback .form-callback__input::placeholder {
  color: rgba(255, 255, 255, 0.55);
  opacity: 1;
}

.event-buy .form-callback .form-callback__input:focus {
  background-color: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.6);
}

.event-buy .form-callback__item.error .form-callback__input {
  border-color: #f44336;
  border-color: var(--color-error);
}

.form-ticket__label {
  display: block;
  margin-bottom: 0.7rem;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: #D4D2D2;
  color: var(--color-6);
}

/* Сводка: что бронируем */

.form-ticket__summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.6rem 2.4rem;
  flex-wrap: wrap;
  padding-bottom: 1.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.form-ticket__summary-title {
  display: block;
  font-size: 1.8rem;
  font-weight: 600;
}

.form-ticket__summary-meta {
  display: block;
  margin-top: 0.4rem;
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.form-ticket__summary-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1.2;
}

.form-ticket__summary-price span {
  font-size: 1.2rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.form-ticket__summary-price b {
  font-weight: 600;
  font-size: 1.8rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* Итого — лейбл и цена по базовой линии */

.form-ticket__total {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.7rem;
  font-size: 1.5rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.form-ticket__total b {
  vertical-align: baseline;
  font-weight: 600;
  font-size: 2rem;
  color: #fff;
  color: var(--color-1);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* Кнопка — денежное действие на всю ширину */

.event-buy .form-ticket__submit {
  width: 100%;
  justify-content: center;
}

/* Сообщение об успехе на тёмном */

.event-buy .form-callback__success-title {
  color: #fff;
  color: var(--color-1);
}

.event-buy .form-callback__success-text {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-buy .form-callback .form-callback__select {
  background-image: url("/data/img/ui/icons/icon-triangle-down-color-1.svg");
  background-repeat: no-repeat;
  background-position: right 1.4rem center;
  background-size: 1rem 1rem;
  padding-right: 3.8rem;
}

.event-buy .form-callback .form-callback__select:invalid {
  color: rgba(255, 255, 255, 0.55);
}

.event-buy .form-callback .form-callback__select option {
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
}

.event-buy .form-callback__custom-checkbox .form-callback__checkmark {
  border-color: #fff;
  border-color: var(--color-1);
}

.event-buy .form-callback__checkmark::after {
  background: #fff;
  background: var(--color-1);
}

.event-buy .form-callback__placeholder {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-buy .form-callback__rules {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-buy .form-callback__input:focus-visible,
.event-buy .form-callback .form-callback__checkbox:focus-visible + .form-callback__checkmark,
.event-buy .form-callback button:focus-visible {
  outline-color: #fff;
  outline-color: var(--color-1);
}

/* Форма заказа билета: свои grid-области поверх базовой формы */

.form-ticket__container {
  gap: 1.8rem;
  grid-template-areas:
    "summary"
    "name"
    "phone"
    "email"
    "tickets"
    "total"
    "button"
    "policy"
    "rules"
    "error";
}

@media (min-width: 768px) {

.form-ticket__container {
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 2.4rem;
         column-gap: 2.4rem;
    grid-template-areas:
      "summary summary"
      "name phone"
      "email tickets"
      "total total"
      "button button"
      "policy policy"
      "rules rules"
      "error error";
}
  }

.form-callback__item.form-ticket-item-summary {
  grid-area: summary;
}

.form-callback__item.form-ticket-item-total {
  grid-area: total;
}

.form-callback__item.form-ticket-item-name {
  grid-area: name;
}

.form-callback__item.form-ticket-item-phone {
  grid-area: phone;
}

.form-callback__item.form-ticket-item-email {
  grid-area: email;
}

.form-callback__item.form-ticket-item-tickets {
  grid-area: tickets;
}

/* Приписка про оплату: во всю ширину формы, крупнее */
.form-callback__item.form-ticket-pay-note {
  grid-column: 1 / -1;
}

.form-ticket-pay-note .form-callback__rules {
  font-size: 0.93em;
  line-height: 1.5;
}

/* Количество мест: степпер −/+ */

.form-ticket__qty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0.6rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1rem;
}

.form-ticket__qty-btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.4rem;
  height: 3.4rem;
  font-size: 1.9rem;
  line-height: 1;
  color: #fff;
  color: var(--color-1);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  cursor: pointer;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

@media (hover: hover) and (pointer: fine) {
  .form-ticket__qty-btn:hover {
    background: #fff;
    background: var(--color-1);
    color: #000;
    color: var(--color-2);
  }
}

.form-ticket__qty-btn:disabled {
  opacity: 0.35;
  pointer-events: none;
}

.event-buy .form-callback .form-ticket__qty-input {
  width: 6rem;
  padding: 0.4rem 0;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 600;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  background: transparent;
  border: 0;
  border-radius: 0;
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

.form-ticket__qty-input::-webkit-outer-spin-button,
.form-ticket__qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
          appearance: none;
  margin: 0;
}

#page-content:has(.event-detail) {
  background: #000;
  background: var(--color-2);
}

/* ---------- Mobile sticky bar ---------- */

.event-stickybar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 980;
  z-index: var(--z-index-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  padding: 1.2rem 1.6rem calc(1.2rem + env(safe-area-inset-bottom));
  background: #151515;
  background: var(--color-7);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  transform: translateY(0);
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

@media (min-width: 992px) {

.event-stickybar {
    display: none;
}
  }

.event-stickybar.is-hidden {
  transform: translateY(120%);
}

.event-stickybar__price {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.event-stickybar__label {
  font-size: 1.2rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-stickybar__value {
  font-weight: 600;
  font-size: 1.9rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-stickybar__cta {
  flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
  .card-event,
  .card-event__img,
  .event-gallery__figure img,
  .event-stickybar {
    transition: none;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL21haW4uY3NzIiwiLi4vYmFzZS92YXJpYWJsZXMuY3NzIiwiLi4vYmFzZS9mb250cy5jc3MiLCIuLi9iYXNlL2dlbmVyYWwuY3NzIiwiLi4vYmFzZS90eXBvZ3JhcGh5LmNzcyIsIi4uL2Jhc2UvZ3JpZC5jc3MiLCIuLi9iYXNlL2xpbmtzLmNzcyIsIi4uL2Jhc2UvYnV0dG9ucy5jc3MiLCIuLi9iYXNlL2hlbHBlcnMuY3NzIiwiLi4vYmFzZS9hbmltYXRpb25zLmNzcyIsIi4uL3NlY3Rpb25zL2hlYWRlci5jc3MiLCIuLi9zZWN0aW9ucy9mb290ZXIuY3NzIiwiLi4vc2VjdGlvbnMvYnVyZ2VyLW1lbnUuY3NzIiwiLi4vc2VjdGlvbnMvY29udGFjdHMuY3NzIiwiLi4vc2VjdGlvbnMvY29udGFjdHMtaHViLmNzcyIsIi4uL3NlY3Rpb25zL2NvbnRlbnQuY3NzIiwiLi4vc2VjdGlvbnMvY29va2llLXBhbmVsLmNzcyIsIi4uL3NlY3Rpb25zL2ludHJvLmNzcyIsIi4uL3NlY3Rpb25zL2hlYWRsaW5lLmNzcyIsIi4uL3NlY3Rpb25zL293bmVycy5jc3MiLCIuLi9zZWN0aW9ucy91cy5jc3MiLCIuLi9zZWN0aW9ucy9uYXZpZ2F0aW9uLmNzcyIsIi4uL3NlY3Rpb25zL3Jlc3RhdXJhbnRzLmNzcyIsIi4uL3NlY3Rpb25zL3Jlc3RhdXJhbnQtbmVhcmJ5LmNzcyIsIi4uL3NlY3Rpb25zL3Jlc3RhdXJhbnQtc3RvcnkuY3NzIiwiLi4vc2VjdGlvbnMvZ3JvdXAtc3RvcnkuY3NzIiwiLi4vc2VjdGlvbnMvZmFxLWJsb2NrLmNzcyIsIi4uL3NlY3Rpb25zL2V2ZW50cy5jc3MiLCIuLi9jb21wb25lbnRzL2FuYWx5dGljcy5jc3MiLCIuLi9jb21wb25lbnRzL2Jsb2NrcXVvdGUuY3NzIiwiLi4vY29tcG9uZW50cy9idXJnZXItaWNvbi5jc3MiLCIuLi9jb21wb25lbnRzL2J1cmdlci1tZW51LmNzcyIsIi4uL2NvbXBvbmVudHMvYnV0dG9uLmNzcyIsIi4uL2NvbXBvbmVudHMvY292ZXIuY3NzIiwiLi4vY29tcG9uZW50cy9jdXN0b20tY2hlY2tib3guY3NzIiwiLi4vY29tcG9uZW50cy9jdXN0b20tbGlzdC5jc3MiLCIuLi9jb21wb25lbnRzL2ZlYXR1cmVzLWxpc3QuY3NzIiwiLi4vY29tcG9uZW50cy9mb3JtLWNhbGxiYWNrLmNzcyIsIi4uL2NvbXBvbmVudHMvZ2xpZ2h0Ym94LWN1c3RvbS5jc3MiLCIuLi9jb21wb25lbnRzL2hlYWRpbmcuY3NzIiwiLi4vY29tcG9uZW50cy9udW1iZXJlZC1saXN0LmNzcyIsIi4uL2NvbXBvbmVudHMvc2xpZGVyLmNzcyIsIi4uL2NvbXBvbmVudHMvc3BvaWxlci5jc3MiLCIuLi9jb21wb25lbnRzL2NhcmQtb3duZXIuY3NzIiwiLi4vY29tcG9uZW50cy9jYXJkLW5hdi5jc3MiLCIuLi9jb21wb25lbnRzL2J1dHRvbi1zZWN0aW9uLmNzcyIsIi4uL2NvbXBvbmVudHMvY2FyZC1ncmFkaWVudC5jc3MiLCIuLi9jb21wb25lbnRzL2NhcmQtbnVtYmVyLmNzcyIsIi4uL2NvbXBvbmVudHMvY2FyZC1yZXN0YXVyYW50LmNzcyIsIi4uL2NvbXBvbmVudHMvY2FyZC1ldmVudC5jc3MiLCIuLi9wYWdlcy80MDQuY3NzIiwiLi4vcGFnZXMvY29udGFjdHMuY3NzIiwiLi4vcGFnZXMvaW5kZXguY3NzIiwiLi4vc2VjdGlvbnMvbG9nb2xpbmUuY3NzIiwiLi4vc2VjdGlvbnMvcHJvbW8uY3NzIiwiLi4vcGFnZXMvcmVzdGF1cmFudHMuY3NzIiwiLi4vcGFnZXMvcmVzdGF1cmFudC5jc3MiLCIuLi9wYWdlcy9ldmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCO0lBQ0ksWUFBWTtJQUNaLGVBQWU7SUFDZixlQUFlOztJQUVmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjs7SUFFbEIsd0NBQXdD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QkFBZ0I7RUFDaEIsNkJBQXFCO0tBQXJCLDBCQUFxQjtVQUFyQixxQkFBcUI7QUFDdkI7O0FBRUE7O0VBRUUsd0JBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxnQkFBMEI7RUFBMUIsMEJBQTBCO0FBQzVCOztBQUVBLDRDQUE0Qzs7QUFFNUM7RUFDRSxlQUFlO0VBQ2YsT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsWUFBeUI7RUFBekIseUJBQXlCO0VBQ3pCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLFdBQVc7RUFDWCxpRUFBaUU7RUFDakUsbUJBQTBCO0VBQTFCLDBCQUEwQjtFQUMxQiwrQ0FBNEM7RUFDNUMsd0JBQXdCO0VBQ3hCLDhCQUErQjtFQUEvQiwrQkFBK0I7QUFLakM7O0FBSEU7O0FBaEJGO0lBaUJJLGFBQWE7QUFFakI7RUFERTs7QUFHRjtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQXFCO0VBQXJCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsNkJBQWtDO0VBQWxDLGtDQUFrQztFQUNsQyxXQUFxQjtFQUFyQixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0U7Ozs7SUFJRSxnQkFBZ0I7RUFDbEI7QUFDRiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEJhc2Ugc3R5bGVzICovXG5AaW1wb3J0IFwiYmFzZS92YXJpYWJsZXMuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZS9mb250cy5jc3NcIjtcbkBpbXBvcnQgXCJiYXNlL2dlbmVyYWwuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZS90eXBvZ3JhcGh5LmNzc1wiO1xuQGltcG9ydCBcImJhc2UvZ3JpZC5jc3NcIjtcbkBpbXBvcnQgXCJiYXNlL2xpbmtzLmNzc1wiO1xuQGltcG9ydCBcImJhc2UvYnV0dG9ucy5jc3NcIjtcbkBpbXBvcnQgXCJiYXNlL2hlbHBlcnMuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZS9hbmltYXRpb25zLmNzc1wiO1xuQGltcG9ydCBcImJhc2UvbXEuY3NzXCI7XG5cbi8qIFNlY3Rpb25zICovXG5AaW1wb3J0IFwic2VjdGlvbnMvaGVhZGVyLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL2Zvb3Rlci5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9idXJnZXItbWVudS5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9jb250YWN0cy5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9jb250YWN0cy1odWIuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvY29udGVudC5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9jb29raWUtcGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvaW50cm8uY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvaGVhZGxpbmUuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvb3duZXJzLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL3VzLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL25hdmlnYXRpb24uY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvcmVzdGF1cmFudHMuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvcmVzdGF1cmFudC1uZWFyYnkuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvcmVzdGF1cmFudC1zdG9yeS5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9ncm91cC1zdG9yeS5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9mYXEtYmxvY2suY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvZXZlbnRzLmNzc1wiO1xuXG4vKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwiY29tcG9uZW50cy9hbmFseXRpY3MuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3F1b3RlLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnVyZ2VyLWljb24uY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9idXJnZXItbWVudS5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NvdmVyLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY3VzdG9tLWNoZWNrYm94LmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY3VzdG9tLWxpc3QuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9mZWF0dXJlcy1saXN0LmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZm9ybS1jYWxsYmFjay5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2dsaWdodGJveC1jdXN0b20uY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9oZWFkaW5nLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbnVtYmVyZWQtbGlzdC5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NsaWRlci5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3Nwb2lsZXIuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYXJkLW93bmVyLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY2FyZC1uYXYuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9idXR0b24tc2VjdGlvbi5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmQtZ3JhZGllbnQuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYXJkLW51bWJlci5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmQtcmVzdGF1cmFudC5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmQtZXZlbnQuY3NzXCI7XG5cbi8qIFBhZ2VzICovXG5AaW1wb3J0IFwicGFnZXMvNDA0LmNzc1wiO1xuQGltcG9ydCBcInBhZ2VzL2NvbnRhY3RzLmNzc1wiO1xuQGltcG9ydCBcInBhZ2VzL2luZGV4LmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL2xvZ29saW5lLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL3Byb21vLmNzc1wiO1xuQGltcG9ydCBcInBhZ2VzL3Jlc3RhdXJhbnRzLmNzc1wiO1xuQGltcG9ydCBcInBhZ2VzL3Jlc3RhdXJhbnQuY3NzXCI7XG5AaW1wb3J0IFwicGFnZXMvZXZlbnQuY3NzXCI7XG4iLCI6cm9vdCB7XG4gICAgLyog0JHQsNC30L7QstGL0LUgKi9cbiAgICAtLWNvbG9yLTE6ICNmZmY7XG4gICAgLS1jb2xvci0yOiAjMDAwO1xuXG4gICAgLyog0KTQuNGA0LzQtdC90L3Ri9C1ICovXG4gICAgLS1jb2xvci0zOiAjRTY1OTAxO1xuICAgIC0tY29sb3ItNDogI0UyNEUyQTtcbiAgICAtLWNvbG9yLTU6ICNFRUM0Nzk7XG4gICAgLS1jb2xvci02OiAjRDREMkQyO1xuICAgIC0tY29sb3ItNzogIzE1MTUxNTtcbiAgICAtLWNvbG9yLTg6ICNFQkVCRUI7XG5cbiAgICAvKiDQodC70YPQttC10LHQvdGL0LU6INC+0YjQuNCx0LrQuCwg0YHRgtCw0YLRg9GB0YssINC/0L7QtNC/0LjRgdC4ICovXG4gICAgLS1jb2xvci1lcnJvcjogI2Y0NDMzNjtcbiAgICAtLWNvbG9yLWVycm9yLWJnOiByZ2IoMjQ0IDY3IDU0IC8gNSUpO1xuICAgIC0tY29sb3Itc3VjY2VzczogIzRDQUY1MDtcbiAgICAtLWNvbG9yLXBsYWNlaG9sZGVyOiAjNkM2QjZCO1xuICAgIC0tY29sb3ItbXV0ZWQ6ICM2NjY7XG4gICAgLS1jb2xvci1ib3JkZXI6ICM4ODg7XG4gICAgLS1ncmFkaWVudC0xOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2woMGRlZyAwJSAxMDAlIC8gMTAwJSksIGhzbCgwZGVnIDAlIDEwMCUgLyAwJSkpO1xuICAgIC0tZ3JhZGllbnQtMjogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgaHNsKDBkZWcgMCUgMCUgLyAxMDAlKSwgaHNsKDBkZWcgMCUgMCUgLyAwJSkpO1xuICAgIC0tZ3JhZGllbnQtMzogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICNGMUVDRTQsICNEQUQ4RDcpO1xufVxuXG46cm9vdCB7XG4gICAgLyog0KHQtdC80LXQudGB0YLQstC+INGI0YDQuNGE0YLQvtCyIFRUIE5vcm1zIFBybyAo0LLQsNGA0LjQsNGC0LjQstC90YvQuSkgKi9cbiAgICAtLWZvbnQtMTogXCJUVCBOb3JtcyBQcm9cIiwgc2Fucy1zZXJpZjtcbiAgICAtLWZvbnQtMS1leHRlbmRlZDogXCJUVCBOb3JtcyBQcm8gRXhwYW5kZWRcIiwgXCJUVCBOb3JtcyBQcm9cIiwgc2Fucy1zZXJpZjtcbn1cblxuOnJvb3Qge1xuICAgIC0taGVhZGVyLWZpeGVkLWhlaWdodDogMTEuMnJlbTtcblxuICAgIEBtZWRpYSAoLS1sZykge1xuICAgICAgICAtLWhlYWRlci1maXhlZC1oZWlnaHQ6IDEycmVtO1xuICAgIH1cbn1cblxuOnJvb3Qge1xuICAgIC0tdHJhbnNpdGlvbi0xOiAwLjI1cyBhbGwgZWFzZS1vdXQ7XG4gICAgLS10cmFuc2l0aW9uLTI6IDAuNXMgYWxsIGVhc2Utb3V0O1xuICAgIC0tdHJhbnNpdGlvbi0zOiAxcyBhbGwgZWFzZS1vdXQ7XG59XG5cbjpyb290IHtcbiAgICAtLXotaW5kZXgtMTogMTAwMDtcbiAgICAtLXotaW5kZXgtMjogOTkwO1xuICAgIC0tei1pbmRleC0zOiA5ODA7XG4gICAgLS16LWluZGV4LTQ6IDk3MDtcbiAgICAtLXotaW5kZXgtNTogOTYwO1xuICAgIC0tei1pbmRleC02OiA5NTA7XG4gICAgLS16LWluZGV4LTc6IDk0MDtcbiAgICAtLXotaW5kZXgtODogOTMwO1xuICAgIC0tei1pbmRleC05OiA5MjA7XG4gICAgLS16LWluZGV4LTEwOiA5MTA7XG59XG4iLCIvKiBUVCBOb3JtcyBQcm8gRXhwYW5kZWQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyBFeHBhbmRlZCc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tZXhwYW5kZWQvVFROb3Jtc1Byb0V4cGFuZGVkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVFQgTm9ybXMgUHJvIEV4cGFuZGVkJztcbiAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL3R0LW5vcm1zLXByby1leHBhbmRlZC9UVE5vcm1zUHJvRXhwYW5kZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyBFeHBhbmRlZCc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tZXhwYW5kZWQvVFROb3Jtc1Byb0V4cGFuZGVkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyBFeHBhbmRlZCc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tZXhwYW5kZWQvVFROb3Jtc1Byb0V4cGFuZGVkLURlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVFQgTm9ybXMgUHJvIEV4cGFuZGVkJztcbiAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL3R0LW5vcm1zLXByby1leHBhbmRlZC9UVE5vcm1zUHJvRXhwYW5kZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbi8qIFRUIE5vcm1zIFBybyBCYXNpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVFQgTm9ybXMgUHJvJztcbiAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL3R0LW5vcm1zLXByby1iYXNpYy9UVE5vcm1zUHJvLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8nO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWJhc2ljL1RUTm9ybXNQcm8tRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVFQgTm9ybXMgUHJvJztcbiAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL3R0LW5vcm1zLXByby1iYXNpYy9UVE5vcm1zUHJvLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1EZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVFQgTm9ybXMgUHJvJztcbiAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL3R0LW5vcm1zLXByby1iYXNpYy9UVE5vcm1zUHJvLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG4iLCIqLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIC8qINCv0LrQvtGA0L3Ri9C1INC/0LXRgNC10YXQvtC00Ysg0YEg0L7RgtGB0YLRg9C/0L7QvCDQv9C+0LQg0LvQuNC/0LrRg9GOINGI0LDQv9C60YMgKi9cbiAgc2Nyb2xsLXBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWhlYWRlci1maXhlZC1oZWlnaHQpICsgMXJlbSk7XG59XG5cbmJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLyog0JHQtdC3IGhlaWdodDogMTAwJSDRgdC60YDQvtC70Lst0LrQvtC90YLQtdC50L3QtdGA0L7QvCDQvtGB0YLQsNGR0YLRgdGPINC00L7QutGD0LzQtdC90YIuINChINC90LjQvCDQutC+0L3RgtC10LnQvdC10YDQvtC8XG4gICAgINGB0YLQsNC90L7QstC40LvRgdGPIGJvZHk6IHNjcm9sbC1wYWRkaW5nINC90LAgaHRtbCDQuNCz0L3QvtGA0LjRgNC+0LLQsNC70YHRjywgd2luZG93LnNjcm9sbFRvINC90LVcbiAgICAg0YDQsNCx0L7RgtCw0LssINCwINC90LAgaU9TINC/0L7RgdC70LUg0Y/QutC+0YDQvdC+0LPQviDQv9C10YDQtdGF0L7QtNCwINC/0YDQvtC60YDRg9GC0LrQsCDCq9C30LDQu9C40L/QsNC70LDCuy4gKi9cbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLyogY2xpcCwg0LAg0L3QtSBoaWRkZW46IGhpZGRlbiDQv9C+INC+0LTQvdC+0Lkg0L7RgdC4INC00LXQu9Cw0LXRgiDRjdC70LXQvNC10L3RgiDRgdC60YDQvtC70Lst0LrQvtC90YLQtdC50L3QtdGA0L7QvCDQv9C+XG4gICDQtNGA0YPQs9C+0Lkg4oCUINC40LzQtdC90L3QviDQuNC3LdC30LAg0Y3RgtC+0LPQviDQu9C+0LzQsNC70YHRjyBzdGlja3kg0Lgg0L/QvtC0INC90LXQs9C+INC00L7QsdCw0LLQu9GP0LvQuCBoZWlnaHQ6IDEwMCUuICovXG5ib2R5LFxuaHRtbCB7XG4gIG92ZXJmbG93LXg6IGNsaXA7XG59XG5cbltkaXI9XCJsdHJcIl0ge1xuICBkaXJlY3Rpb246IGx0cjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuW2Rpcj1cInJ0bFwiXSB7XG4gIGRpcmVjdGlvbjogcnRsO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuc3BhbixcbmEsXG5zdHJvbmcsXG5lbSxcbmIsXG5pLFxudSxcbm1hcmssXG5zbWFsbCxcbmNvZGUsXG5sYWJlbCxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEsXG5pbWcsXG5zdWIsXG5zdXAsXG5hYmJyLFxuY2l0ZSxcbnEsXG50aW1lLFxua2JkLFxudmFyLFxuc2FtcCxcbmRmbixcbmJkbyxcbmJyLFxud2JyLFxuZGF0YSxcbm1ldGVyLFxucHJvZ3Jlc3MsXG5ydWJ5LFxucnQsXG5ycCxcbmRlbCxcbmlucyxcbnMsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4qOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAuMnJlbTtcbiAgaGVpZ2h0OiAuMnJlbTtcbn1cblxuXG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogaHNsKDBkZWcgMCUgMCUgLyAzMCUpO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xufVxuXG4qOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDAlIC8gMTAlKTtcbn1cbiIsImh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbioge1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuYm9keSxcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgIEBtZWRpYSAoLS1sZykge1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICB9XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbi1ibG9jazogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmgxIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDMuMmVtO1xuICB9XG59XG5cbi5oMiB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAyLjhlbTtcbiAgfVxufVxuXG4uaDMge1xuICBmb250LXNpemU6IDEuNGVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMi40ZW07XG4gIH1cbn1cblxuLmg0IHtcbiAgZm9udC1zaXplOiAxLjJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDIuMGVtO1xuICB9XG59XG5cbi5oNSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gIH1cbn1cblxuLmg2IHtcbiAgZm9udC1zaXplOiAwLjllbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICB9XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ud2VpZ2h0LTEwMCB7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG59XG5cbi53ZWlnaHQtMjAwIHtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbn1cblxuLndlaWdodC0zMDAge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4ud2VpZ2h0LTQwMCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi53ZWlnaHQtNTAwIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLndlaWdodC02MDAge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ud2VpZ2h0LTcwMCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi53ZWlnaHQtODAwIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLndlaWdodC05MDAge1xuICBmb250LXdlaWdodDogOTAwO1xufVxuXG4uZm9udC0xIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMSk7XG59XG5cbi50ZXh0LWxnIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMi40ZW07XG4gIH1cbn1cblxuLnRleHQtbWQge1xuICBmb250LXNpemU6IDEuNGVtO1xuICBsaW5lLWhlaWdodDogMS4xZW07XG59XG5cbi5kZXNjIHtcbiAgZm9udC1zaXplOiAxZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxufVxuXG4ubG9uZ3JlYWQge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBtYXgtd2lkdGg6IDE3MDBweDtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICB9XG59XG5cbi5jb250YWluZXItc20ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWF4LXdpZHRoOiA4MHJlbTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSA4MHJlbSkvMik7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtIDgwcmVtKS8yKTtcbiAgfVxuXG4gIEBtZWRpYSAoLS14bCkge1xuICAgIG1heC13aWR0aDogODByZW07XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gODByZW0pLzIpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSA4MHJlbSkvMik7XG4gIH1cbn1cblxuLmNvbnRhaW5lci1tZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBtYXgtd2lkdGg6IDk5LjJyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gOTkuMnJlbSkvMik7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtIDk5LjJyZW0pLzIpO1xuICB9XG59XG5cbi5jb250YWluZXItbGVmdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoKDEwMHZ3IC0gMTcwMHB4KSAvIDIpKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxNzAwcHgpIC8gMik7XG4gIH1cblxuICBAbWVkaWEgKC0teGwpIHtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtICgoMTAwdncgLSAxNzAwcHgpIC8gMikpO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDE3MDBweCkgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gMTcwMHB4KSAvIDIpO1xuICB9XG59XG5cbi5jb250YWluZXItbGVmdC5vZmZzZXQge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiBtYXgoMnJlbSwgY2FsYygoMTAwdncgLSAxNzAwcHgpIC8gMiArIDJyZW0pKTtcbiAgfVxuXG4gIEBtZWRpYSAoLS14bCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IG1heCgycmVtLCBjYWxjKCgxMDB2dyAtIDE3MDBweCkgLyAyICsgMnJlbSkpO1xuICB9XG59XG5cbi5zZWN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmctdG9wOiA2cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA2cmVtO1xuICB9XG59XG5cbi5jb250YWluZXItZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMaW5rIOKAlCBiYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5saW5rOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCBjdXJyZW50Y29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5saW5rOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLmxpbms6YWN0aXZlIHtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4vKiBPdmVycmlkZSDQtNC70Y8gYnV0dG9uLmxpbmsg4oCUINCx0LXQtyDQutC+0L3RhNC70LjQutGC0LAg0YEgaG92ZXIg0LrQvdC+0L/QutC4ICovXG4uYnV0dG9uLmxpbmssXG4uYnV0dG9uLmxpbms6aG92ZXIsXG4uYnV0dG9uLmxpbms6YWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLTEpLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmsg4oCUIG1vZGlmaWVyc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmxpbmsuaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ubGluay51bmRlcmxpbmU6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMnB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xufVxuXG4ubGluay51bmRlcmxpbmU6aG92ZXI6OmFmdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5saW5rLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b24g4oCUIGJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXItd2lkdGg6IC4xcmVtO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI1cyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgZ2FwOiAwLjVyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b24g4oCUIGVsZW1lbnRzIChjb21wb25lbnRfX2VsZW1lbnQpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnV0dG9uX19pY29uIHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5idXR0b25fX2l0ZW0uY29udGVudC13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDFyZW07XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdGV4dC13cmFwOiBub3dyYXA7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0yKTtcbn1cblxuLmJ1dHRvbl9faXRlbS5jb250ZW50LXdyYXA6OmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYnV0dG9uX19pdGVtLmNvbnRlbnQtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYnV0dG9uX19zdWJpdGVtLmljb24td3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b24g4oCUIHNpemVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnV0dG9uLXNtIHtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgZ2FwOiAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuXG4gICAgQG1lZGlhICgtLWxnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cbn1cblxuLmJ1dHRvbi1tZCB7XG4gICAgaGVpZ2h0OiA1cmVtO1xuICAgIGdhcDogMXJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG59XG5cbi5idXR0b24tbWQgLmJ1dHRvbl9faXRlbS5jb250ZW50LXdyYXA6OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYygtMSAqICgxMDAlIC0gM3JlbSkpO1xufVxuXG4uYnV0dG9uLW1kIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwIHtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IDNyZW07XG59XG5cbi5idXR0b24tbWQgLmJ1dHRvbl9faWNvbiB7XG4gICAgaGVpZ2h0OiAxLjRyZW07XG59XG5cbi5idXR0b24tbWQuYnV0dG9uLWNpcmNsZSB7XG4gICAgd2lkdGg6IDVyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMXJlbTtcbn1cblxuLmJ1dHRvbi1tZC5idXR0b24tY2lyY2xlIC5idXR0b25fX3N1Yml0ZW0uaWNvbi1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGxlZnQ6IGNhbGMoLTEgKiAoMTAwJSArIDFyZW0pKTtcbn1cblxuLmJ1dHRvbi1sZyB7XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIGdhcDogMXJlbTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbn1cblxuLmJ1dHRvbi1sZyAuYnV0dG9uX19pdGVtLmNvbnRlbnQtd3JhcDo6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKC0xICogKDEwMCUgLSA0cmVtKSk7XG59XG5cbi5idXR0b24tbGcgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAge1xuICAgIGhlaWdodDogNHJlbTtcbiAgICB3aWR0aDogNHJlbTtcbn1cblxuLmJ1dHRvbi1sZyAuYnV0dG9uX19pY29uIHtcbiAgICB3aWR0aDogMS42cmVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uIOKAlCBzaGFwZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5idXR0b24tY2lyY2xlIHtcbiAgICBoZWlnaHQ6IDQuNnJlbTtcbiAgICB3aWR0aDogNC42cmVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogLjFyZW0gc29saWQgdmFyKC0tY29sb3ItMSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uYnV0dG9uLmJ1dHRvbi1yb3VuZGVkIHtcbiAgICBib3JkZXItcmFkaXVzOiA5OXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJ1dHRvbiDigJQgY29sb3JzIChiYWNrZ3JvdW5kKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJ1dHRvbi5iZy1jb2xvci0xIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG59XG5cbi5idXR0b24uYmctY29sb3ItMTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTEpLCBibGFjayAxMCUpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTE6YWN0aXZlLFxuLmJ1dHRvbi5iZy1jb2xvci0xLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTEpLCBibGFjayAyMCUpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci0yOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItMiksIHdoaXRlIDE1JSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItMjphY3RpdmUsXG4uYnV0dG9uLmJnLWNvbG9yLTIuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItMiksIHdoaXRlIDMwJSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItMyB7XG4gICAgLyog0LfQsNGC0LXQvNC90ZHQvdC90YvQuSDQvtGC0YLQtdC90L7QuiDQsdGA0LXQvdC0LdC+0YDQsNC90LbQtdCy0L7Qs9C+ICgtLWNvbG9yLTMpINC/0L7QtCDQsdC10LvRi9C5INGC0LXQutGB0YI6INC60L7QvdGC0YDQsNGB0YIgNC43OToxIChXQ0FHIEFBKSAqL1xuICAgIGJhY2tncm91bmQ6ICNjNDRjMDE7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTM6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjYzQ0YzAxLCB3aGl0ZSAxMCUpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTM6YWN0aXZlLFxuLmJ1dHRvbi5iZy1jb2xvci0zLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICNjNDRjMDEsIGJsYWNrIDIwJSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItNiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci02KSwgYmxhY2sgODAlKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItNjphY3RpdmUsXG4uYnV0dG9uLmJnLWNvbG9yLTYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItOCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItOCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTg6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci04KSwgYmxhY2sgODAlKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItODphY3RpdmUsXG4uYnV0dG9uLmJnLWNvbG9yLTguYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b24g4oCUIGNvbG9ycyAob3V0bGluZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5idXR0b24ub3V0bGluZS1jb2xvci0xIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItMTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTE6aG92ZXIgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItMiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItMik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItMjpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNik7XG59XG5cbi8qINCY0LrQvtC90LrQsC3QutCw0YDRgtC40L3QutCwINGB0L7QstC/0LDQtNCw0LvQsCDQsdGLINGBINGE0L7QvdC+0Lwg0L/RgNC4INGF0L7QstC10YDQtSAo0L7QsdCwIGNvbG9yLTIpIOKAlCDQuNC90LLQtdGA0YLQuNGA0YPQtdC8INCyINCx0LXQu9GL0LkgKi9cbi5idXR0b24ub3V0bGluZS1jb2xvci0yOmhvdmVyIC5idXR0b25fX2ljb24ge1xuICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xufVxuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItMyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTM6aG92ZXIgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItNiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5idXR0b24ub3V0bGluZS1jb2xvci02OmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJ1dHRvbiDigJQgYW5pbWF0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyog0KHRgtGA0LXQu9C60LAg0YfQtdGA0LXQtyBtYXNrICsgY3VycmVudENvbG9yIOKAlCDRgdC+0LLQv9Cw0LTQsNC10YIg0YEgY29sb3IgKNCy0LDQttC90L4g0LTQu9GPINGE0YPRgtC10YDQsDog0LHQtdC70YvQuSDRgtC10LrRgdGCINC90LAg0YLRkdC80L3QvtC8INGE0L7QvdC1KSAqL1xuLmJ1dHRvbi1hbmltYXRlZC5hbmltYXRpb24tc2hpZnQ6bm90KC5sb2FkaW5nKTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2RhdGEvaW1nL3VpL2ljb25zL2ljb24tYXJyb3ctcmlnaHQtc20tY29sb3ItMi5zdmdcIik7XG4gICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgbWFzay1zaXplOiBjb250YWluO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dDtcbn1cblxuLmJ1dHRvbi1hbmltYXRlZC5hbmltYXRpb24tc2hpZnQ6bm90KC5sb2FkaW5nKTpob3Zlcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwLjVyZW0pO1xufVxuXG4uYnV0dG9uLW1kLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19pdGVtLmFuaW1hdGlvbi1zaGlmdCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIDJyZW0pKTtcbn1cblxuLmJ1dHRvbi1tZC5idXR0b24tY2lyY2xlLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19pdGVtLmFuaW1hdGlvbi1zaGlmdCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTAwJSArIDFyZW0pKTtcbn1cblxuLmJ1dHRvbi1tZC5idXR0b24tY2lyY2xlLmJ1dHRvbi1hbmltYXRlZCAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcC5hbmltYXRpb24tcm90YXRlLTkwIHtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTIpO1xufVxuXG4uYnV0dG9uLW1kLmJ1dHRvbi1jaXJjbGUuYnV0dG9uLWFuaW1hdGVkOmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwLmFuaW1hdGlvbi1yb3RhdGUtOTAge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcC5hbmltYXRpb24tcm90YXRlLTQ1IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4uYnV0dG9uLWFuaW1hdGVkOmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwLmFuaW1hdGlvbi1mbHkgLmJ1dHRvbl9faWNvbiB7XG4gICAgYW5pbWF0aW9uOiBmbHkgMC41cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcC5hbmltYXRpb24tdG9wLXRvLWRvd24gLmJ1dHRvbl9faWNvbiB7XG4gICAgYW5pbWF0aW9uOiB0b3AtdG8tZG93biAwLjVzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG4uYnV0dG9uLWFuaW1hdGVkOmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwLmFuaW1hdGlvbi1zY2FsZSAuYnV0dG9uX19pY29uIHtcbiAgICBhbmltYXRpb246IHNjYWxlIDAuNXMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbi5idXR0b24tYW5pbWF0ZWQ6aG92ZXIgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAuYW5pbWF0aW9uLWljb24tdXAgLmJ1dHRvbl9faWNvbiB7XG4gICAgYW5pbWF0aW9uOiB0b3AtdG8tZG93biAwLjVzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuIiwiLmNvbG9yLTEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jb2xvci0yIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uY29sb3ItMyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbn1cblxuLmNvbG9yLTQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNCk7XG59XG5cbi5jb2xvci01IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTUpO1xufVxuXG4uY29sb3ItNiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmNvbG9yLTgge1xuICBjb2xvcjogdmFyKC0tY29sb3ItOCk7XG59XG5cbi5iZy1jb2xvci0xIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5iZy1jb2xvci0yIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi5iZy1jb2xvci0zIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMyk7XG59XG5cbi5iZy1jb2xvci00IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNCk7XG59XG5cbi5iZy1jb2xvci01IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNSk7XG59XG5cbi5iZy1jb2xvci02IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNik7XG59XG5cbi5iZy1jb2xvci03IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNyk7XG59XG5cbi5iZy1jb2xvci04IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItOCk7XG59XG5cbi5vcGFjaXR5LTA4IHtcbiAgb3BhY2l0eTogMC4wODtcbn1cblxuLm9wYWNpdHktMTAge1xuICBvcGFjaXR5OiAwLjE7XG59XG5cbi5vcGFjaXR5LTEyIHtcbiAgb3BhY2l0eTogMC4xMjtcbn1cblxuLm9wYWNpdHktMjAge1xuICBvcGFjaXR5OiAwLjI7XG59XG5cbi5vcGFjaXR5LTMwIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4ub3BhY2l0eS00MCB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cblxuLm9wYWNpdHktNTAge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5vcGFjaXR5LTYwIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4ub3BhY2l0eS03MCB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm9wYWNpdHktODAge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5vcGFjaXR5LTkwIHtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uaGVpZ2h0LTEge1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmhlaWdodC0yIHtcbiAgaGVpZ2h0OiAycHg7XG59XG5cbi5oZWlnaHQtMyB7XG4gIGhlaWdodDogM3B4O1xufVxuXG4uaGVpZ2h0LTQge1xuICBoZWlnaHQ6IDRweDtcbn1cblxuLmhlaWdodC0yMCB7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmhlaWdodC00NiB7XG4gIGhlaWdodDogNDZweDtcbn1cblxuLndpZHRoLTEge1xuICB3aWR0aDogMXB4O1xufVxuXG4ud2lkdGgtMTAwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbWctcmVzcG9uc2l2ZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ubm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyog0KPRgtC40LvQuNGC0LAg0L/RgNC40L3Rg9C00LjRgtC10LvRjNC90L7Qs9C+INGB0LrRgNGL0YLQuNGPOyAhaW1wb3J0YW50IOKAlCDRh9GC0L7QsdGLINC/0LXRgNC10LHQuNGC0Ywg0LrQvtC90YLQtdC60YHRgtC90YvQtSBkaXNwbGF5ICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1ncm93LTEge1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbi5jdXN0b20tY2hlY2tib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2JveCB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkIHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzIGVhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9fYm94OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19pY29uIHtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0tY29sb3ItMSk7XG4gIHN0cm9rZS13aWR0aDogMC4ycmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLmN1c3RvbS1jaGVja2JveF9fYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItNCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItNCk7XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLmN1c3RvbS1jaGVja2JveF9fYm94IC5jdXN0b20tY2hlY2tib3hfX2ljb24ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmljb24tc20td3JhcCB7XG4gIHdpZHRoOiAzLjZyZW07XG4gIGhlaWdodDogMy42cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYigwIDAgMCAvIDEwJSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IDQuNXJlbTtcbiAgICBoZWlnaHQ6IDQuNXJlbTtcbiAgfVxufVxuXG4uaWNvbi1zbS13cmFwOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYigwIDAgMCAvIDIwJSk7XG59XG5cbi5pY29uLXNtIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogM3JlbTtcbn1cblxuLmFuaW1hdGlvbi1idy1jb2xvciB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMnMgZWFzZTtcbn1cblxuLmFuaW1hdGlvbi1idy1jb2xvcjpob3ZlciB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xufVxuXG4vKiDQl9Cw0YLQtdC80L3QtdC90LjQtTog0YfRkdGA0L3Ri9C5INC+0LLQtdGA0LvQtdC5INC90LAgaG92ZXIsINGC0LXQutGB0YIg0Lgg0LjQutC+0L3QutC4INC90LUg0LfQsNC60YDRi9Cy0LDQtdGCICovXG4uYW5pbWF0aW9uLWRhcmtlbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYW5pbWF0aW9uLWRhcmtlbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYW5pbWF0aW9uLWRhcmtlbjpob3Zlcjo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qINCX0YPQvCDRhNC+0L3QsDog0L/QvtC80LXRh9Cw0LXRgiDRjdC70LXQvNC10L3Rgi4g0KDQtdCw0LvQuNC30LDRhtC40Y8g4oCUINGA0Y/QtNC+0Lwg0YEg0LrQvtC90LrRgNC10YLQvdGL0Lwg0LrQvtC80L/QvtC90LXQvdGC0L7QvFxuICAgKNC90LDQv9GA0LjQvNC10YAsIC5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi16b29tOmhvdmVyIC5jYXJkLWdyYWRpZW50X19jb3ZlcikgKi9cbi5hbmltYXRpb24tem9vbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmEubGluay5hbmltYXRpb24tem9vbTpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLyog0KHQtNCy0LjQsyDRhNC+0L3QsCDQstC90LjQtyDQvdCwIGhvdmVyICjRgNC10LDQu9C40LfQsNGG0LjRjyDigJQg0YDRj9C00L7QvCDRgSDQutC+0L3QutGA0LXRgtC90YvQvCDQutC+0LzQv9C+0L3QtdC90YLQvtC8KSAqL1xuLmFuaW1hdGlvbi1zaGlmdC1kb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYS5saW5rLmFuaW1hdGlvbi1zaGlmdC1kb3duOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubm8tem9vbSBpbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4vKiBTa2lwLWxpbms6INGB0LrRgNGL0YIg0LTQviDRhNC+0LrRg9GB0LAgKNC00L7RgdGC0YPQv9C90L7RgdGC0YwsIFdDQUcpICovXG4uc2tpcC1saW5rIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5OXB4O1xuICB6LWluZGV4OiA5OTk5O1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSwgIzAwMCk7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5za2lwLWxpbms6Zm9jdXMge1xuICBsZWZ0OiAwLjVyZW07XG4gIHRvcDogMC41cmVtO1xufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBLZXlmcmFtZXMg4oCUIHZpc2liaWxpdHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBrZXlmcmFtZXMgZmFkZWluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVvdXQge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEtleWZyYW1lcyDigJQgZGlyZWN0aW9uYWwgbW92ZW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBrZXlmcmFtZXMgZmx5IHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTUwJSwgLTE1MCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUxJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAxNTAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbGVmdC10by1yaWdodCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1MCUsIDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUxJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgdG9wLXRvLWRvd24ge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMTUwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgNTElIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1MCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBkb3duLXRvLXRvcCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAtMTUwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgNTElIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTUwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgS2V5ZnJhbWVzIOKAlCB0cmFuc2Zvcm1cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBrZXlmcmFtZXMgc2NhbGUge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgNTElIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEtleWZyYW1lcyDigJQgbG9hZGluZyAvIHNwaW5uZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBrZXlmcmFtZXMgc3Bpbm5lciB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG4iLCIuaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJsb2NrOiAxLjJyZW07XG4gIHotaW5kZXg6IHZhcigtLXotaW5kZXgtNCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWRpZW50LTIpO1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgZWFzZS1vdXQsIGJveC1zaGFkb3cgMC4yNXMgZWFzZS1vdXQ7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZy1ibG9jazogMS42cmVtO1xuICB9XG59XG5cbi5oZWFkZXIuZml4ZWQge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYigwIDAgMCAvIDEwJSk7XG59XG5cbi5oZWFkZXIgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uaGVhZGVyIC5zZWN0aW9uX19pdGVtLmxvZ28td3JhcCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB6LWluZGV4OiB2YXIoLS16LWluZGV4LTQpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xufVxuXG4uaGVhZGVyLmhlYWRlci1sb2dvLXZpc2libGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmhlYWRlci5maXhlZCAuc2VjdGlvbl9faXRlbS5sb2dvLXdyYXAsXG4uaGVhZGVyLmhlYWRlci1sb2dvLXZpc2libGUgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhlYWRlcjpoYXMoLmJ1cmdlci1pY29uLmFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmhlYWRlcjpoYXMoLmJ1cmdlci1pY29uLmFjdGl2ZSkgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhlYWRlciAuc2VjdGlvbl9faXRlbS5sb2dvLXdyYXAgYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiA5LjRyZW07XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1vdXQ7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IDE0cmVtO1xuICB9XG59XG5cbi5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0uYWN0aW9ucy13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmbGV4LXNocmluazogMDtcbiAgZ2FwOiAwLjhyZW07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbi5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0uYWN0aW9ucy13cmFwIC5zZWN0aW9uX19zdWJpdGVtLmFjdGlvbnMtd3JhcF9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uaGVhZGVyIC5zZWN0aW9uX19pdGVtLmFjdGlvbnMtd3JhcCAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmhlYWRlciAuc2VjdGlvbl9faXRlbS5hY3Rpb25zLXdyYXAgLmJvdHRvbS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uaGVhZGVyIC5zZWN0aW9uX19pdGVtLmFjdGlvbnMtd3JhcCAuc2VjdGlvbl9faW5uZXIudGV4dC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cblxuLyog0J/QtdGA0LXRgtC10LrQsNC90LjQtSDQu9C+0LPQvtGC0LjQv9CwINC80LXQttC00YMg0LjQvdGC0YDQviDQuCDRiNCw0L/QutC+0LkgKNCy0LrQu9GO0YfQsNC10YIgbG9nby1mbG93LnR3aWcpLlxuICAg0J/QvtC60LAg0YHQutGA0LjQv9GCINC90LUg0L7RgtGA0LDQsdC+0YLQsNC7LCDRiNCw0L/QutCwINCy0LXQtNGR0YIg0YHQtdCx0Y8g0LrQsNC6INC/0YDQtdC20LTQtS4gKi9cbi5sb2dvLWZsb3ctb24gLmhlYWRlciAuc2VjdGlvbl9faXRlbS5sb2dvLXdyYXAge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ubG9nby1mbG93LW9uIC5oZWFkZXJfX2xvZ28ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKHZhcigtLWxvZ28tZmxvdy14LCAwKSwgdmFyKC0tbG9nby1mbG93LXksIDApLCAwKSBzY2FsZSh2YXIoLS1sb2dvLWZsb3ctc2NhbGUsIDEpKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLyog0JfQvdCw0Log0LIg0LjQvdGC0YDQviDQs9Cw0YHQuNC8OiDQvdCwINGN0LrRgNCw0L3QtSDQvtGB0YLQsNGR0YLRgdGPINC+0LTQuNC9INC70L7Qs9C+0YLQuNC/IOKAlCDRgtC+0YIsINGH0YLQviDQv9C10YDQtdC10LfQttCw0LXRgiAqL1xuLmxvZ28tZmxvdy1vbiAuaW50cm9fX2xvZ28ge1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiDQn9C+0LrQsCDQu9C+0LPQvtGC0LjQvyDCq9CyINC40L3RgtGA0L7Cuywg0L7QvSDQvdC1INC00L7Qu9C20LXQvSDQv9C10YDQtdC60YDRi9Cy0LDRgtGM0YHRjyDRiNCw0L/QutC+0Lkg0Lgg0LvQvtCy0LjRgtGMINC60LvQuNC60Lgg0LzQuNC80L4gKi9cbi5sb2dvLWZsb3ctb24gLmhlYWRlciAuc2VjdGlvbl9faXRlbS5sb2dvLXdyYXAge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmxvZ28tZmxvdy1vbi5sb2dvLWZsb3ctZG9ja2VkIC5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8qINCa0YDRg9CzINC/0LXRgNC10YLQtdC60LDRjtGJ0LXQs9C+INC30L3QsNC60LAg0L/QvtCy0YLQvtGA0Y/QtdGCINGB0L7RgdGC0L7Rj9C90LjQtSDQuNC90YLRgNC+ICovXG4ubG9nby1mbG93LW9uIC5oZWFkZXJfX2xvZ28gLmxvZ28tbWFyayxcbi5sb2dvLWZsb3ctb24gLmhlYWRlcl9fbG9nbyAubG9nby1maWd1cmUge1xuICAvKiDQn9Cw0YPQt9GDINC/0LXRgNC10LQg0L/QtdGA0LXQutGA0LDRgdC60L7QuSDQtNC10YDQttC40YIg0YHQutGA0LjQv9GCOiDQvtC9INGB0YLQsNCy0LjRgiDQutC70LDRgdGBLCDQutC+0LPQtNCwINC30L3QsNC6INGD0LbQtSDQt9Cw0LzQtdGALiAqL1xuICB0cmFuc2l0aW9uOiBmaWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuXG4ubG9nby1mbG93LW9uOm5vdCgubG9nby1mbG93LWRvY2tlZCkgLmhlYWRlcl9fbG9nbyAubG9nby1tYXJrIHtcbiAgZmlsbDogI2ZmZjtcbn1cblxuLmxvZ28tZmxvdy1vbjpub3QoLmxvZ28tZmxvdy1kb2NrZWQpIC5oZWFkZXJfX2xvZ28gLmxvZ28tZmlndXJlIHtcbiAgZmlsbDogdmFyKC0tY29sb3ItNyk7XG59XG5cbi5sb2dvLWZsb3ctb246bm90KC5sb2dvLWZsb3ctZG9ja2VkKSAuaW50cm86aG92ZXIgfiAqIC5oZWFkZXJfX2xvZ28gLmxvZ28tbWFyayB7XG4gIGZpbGw6ICNjNzIyMjk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5sb2dvLWZsb3ctb24gLmhlYWRlcl9fbG9nbyB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmxvZ28tZmxvdy1vbiAuaW50cm9fX2xvZ28ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbiIsIi5mb290ZXIuc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAxcmVtIDFyZW0gMCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICB6LWluZGV4OiB2YXIoLS16LWluZGV4LTcpO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICB9XG59XG5cbi5mb290ZXIgLnNlY3Rpb25fX2l0ZW0uYmFja2dyb3VuZC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJvdHRvbTogLTJyZW07XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxufVxuXG4uZm9vdGVyIC5iYWNrZ3JvdW5kIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYmctaW1hZ2UpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLmZvb3RlciAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJmb3JtXCJcbiAgICBcImxpbmtzXCJcbiAgICBcImJvdHRvbVwiO1xuICByb3ctZ2FwOiAzcmVtO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzAlIDMwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgIFwiZm9ybSBsaW5rc1wiXG4gICAgICBcImJvdHRvbSBib3R0b21cIjtcbiAgICBnYXA6IDRyZW0gMnJlbTtcbiAgfVxufVxuXG4uZm9vdGVyIC5zZWN0aW9uX19pdGVtLmZvcm0td3JhcCB7XG4gIGdyaWQtYXJlYTogZm9ybTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5mb290ZXIgLnNlY3Rpb25fX3N1Yml0ZW0uZm9ybS1pbm5lci13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxufVxuXG4uZm9vdGVyIC5zZWN0aW9uX19zdWJpdGVtLmhlYWRpbmctd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xufVxuXG4uZm9vdGVyX19oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmZvb3RlciAuc2VjdGlvbl9faXRlbS5saW5rcy13cmFwIHtcbiAgZ3JpZC1hcmVhOiBsaW5rcztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycmVtO1xufVxuXG4uZm9vdGVyIC5zZWN0aW9uX19zdWJpdGVtLm5hdi13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjVyZW07XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDUsIGF1dG8pO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgZ2FwOiAwLjVyZW0gMi41cmVtO1xuICB9XG59XG5cbi5mb290ZXJfX2xpbmsge1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZy1ibG9jazogMC41cmVtOyAvKiDRgtCw0L8t0LfQvtC90LAg4omlMjRweCAoYTExeSB0YXJnZXQtc2l6ZSkgKi9cbn1cblxuLmZvb3RlciAuc2VjdGlvbl9fc3ViaXRlbS5zb2NpYWwtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMS41cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZm9vdGVyIC5zb2NpYWwtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiA0cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmZvb3RlciAuc29jaWFsLWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmZvb3RlciAuc29jaWFsLWxpbmsgLmljb24tc20ge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxLjZyZW07XG4gIG1heC13aWR0aDogMi42cmVtO1xuICBmaWx0ZXI6IGludmVydCgxKTtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5mb290ZXIgLnNvY2lhbC1saW5rOmhvdmVyIC5pY29uLXNtIHtcbiAgZmlsdGVyOiBub25lO1xufVxuXG4uZm9vdGVyIC5zb2NpYWwtbGluayAuaWNvbi1zbVtzcmMqPVwiaWNvbi12a1wiXSB7XG4gIGhlaWdodDogMS4zcmVtO1xufVxuXG4uZm9vdGVyX19zb2NpYWwtY2hhbm5lbCB7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG5cbi5mb290ZXIgLnNlY3Rpb25fX2l0ZW0uYm90dG9tLXdyYXAge1xuICBncmlkLWFyZWE6IGJvdHRvbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjVyZW07XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMCU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgIFwiZGlzY2xhaW1lciBjb3B5cmlnaHRcIlxuICAgICAgXCJvd25lciBjb3B5cmlnaHRcIjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC41cmVtIDJyZW07XG4gIH1cbn1cblxuLmZvb3RlciAuc2VjdGlvbl9fc3ViaXRlbS5kaXNjbGFpbWVyLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMjVyZW07XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgZ3JpZC1hcmVhOiBkaXNjbGFpbWVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAycmVtO1xuICB9XG59XG5cbkBtZWRpYSAoLS1tZCkge1xuICAuZm9vdGVyIC5zZWN0aW9uX19zdWJpdGVtLm93bmVyLXdyYXAge1xuICAgIGdyaWQtYXJlYTogb3duZXI7XG4gIH1cblxuICAuZm9vdGVyIC5zZWN0aW9uX19zdWJpdGVtLmNvcHlyaWdodC13cmFwIHtcbiAgICBncmlkLWFyZWE6IGNvcHlyaWdodDtcbiAgfVxufVxuXG4uZm9vdGVyX19kaXNjbGFpbWVyLWxpbmsge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nLWJsb2NrOiAwLjdyZW07IC8qINGC0LDQvy3Qt9C+0L3QsCDiiaUyNHB4IChhMTF5IHRhcmdldC1zaXplKSAqL1xufVxuXG4uZm9vdGVyX19vd25lciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uZm9vdGVyX19jb3B5cmlnaHQge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFja19fcmVxdWlyZWQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNSk7XG59XG5cbi5mb290ZXIgLmZvcm0tY2FsbGJhY2tfX2NhcHRpb24ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5mb290ZXIgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX2lucHV0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBjYXJldC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcGxhY2Vob2xkZXIpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvZGF0YS9pbWcvdWkvaWNvbnMvaWNvbi10cmlhbmdsZS1kb3duLWNvbG9yLTEuc3ZnXCIpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19zZWxlY3Q6aW52YWxpZCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wbGFjZWhvbGRlcik7XG59XG5cbi5mb290ZXIgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX3NlbGVjdCBvcHRpb24ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrX19jdXN0b20tY2hlY2tib3gge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFja19fY3VzdG9tLWNoZWNrYm94IC5mb3JtLWNhbGxiYWNrX19jaGVja21hcmsge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrX19jaGVja21hcms6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5mb290ZXIgLmZvcm0tY2FsbGJhY2tfX3BsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrX19ydWxlcyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cbiIsIi5idXJnZXItbWVudSB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPIGJ1cmdlci1tZW51ICovXG59XG5cbi5idXJnZXItbWVudSAuY29udGFpbmVyIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8g0LrQvtC90YLQtdC50L3QtdGA0LAg0LIgYnVyZ2VyLW1lbnUgKi9cbn1cbiIsIi5jb250YWN0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuIiwiLyog0KHQv9GA0LDQstC+0YfQvdC40Log0LrQvtC90YLQsNC60YLQvtCyOiDRgtC40L/QvtCz0YDQsNGE0YHQutCw0Y8g0YHQtdGC0LrQsCDQstC80LXRgdGC0L4g0LrQsNGA0YLQvtGH0LXQuiDigJQg0Y3RgtC+INGB0L/QuNGB0L7QuiDQtNC70Y8g0L/QvtC40YHQutCwXG4gICDQvdGD0LbQvdC+0Lkg0YHRgtGA0L7QutC4INCz0LvQsNC30LDQvNC4LCDQsCDQvdC1INCy0LjRgtGA0LjQvdCwLiAqL1xuXG4uY29udGFjdHMtaHViIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgcGFkZGluZy1ibG9jazogMCA4cmVtO1xufVxuXG4uY29udGFjdHMtaHViIC5zZWN0aW9uX19pdGVtICsgLnNlY3Rpb25fX2l0ZW0ge1xuICBtYXJnaW4tdG9wOiA3LjJyZW07XG59XG5cbi5jb250YWN0cy1odWJfX2hlYWQge1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1oZWFkZXItZml4ZWQtaGVpZ2h0KSArIDIuNHJlbSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMGRlO1xuICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9faDEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiBjbGFtcCg0cmVtLCA5dncsIDhyZW0pO1xuICBsaW5lLWhlaWdodDogMC45NTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzZW07XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fbGVhZC1jb3B5IHtcbiAgbWFyZ2luLXRvcDogMi40cmVtO1xuICBtYXgtd2lkdGg6IDU4Y2g7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS42cmVtLCAydncsIDEuOXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNGE0YTRhO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fdGl0bGUsXG4uY29udGFjdHMtaHViX19zdWJ0aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEtZXh0ZW5kZWQpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fdGl0bGUge1xuICBmb250LXNpemU6IGNsYW1wKDIuOHJlbSwgNXZ3LCA0LjRyZW0pO1xufVxuXG4uY29udGFjdHMtaHViX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMy40dncsIDIuOHJlbSk7XG4gIG1hcmdpbi1ib3R0b206IDMuMnJlbTtcbn1cblxuLyogLS0tINCh0LLRj9C30YwgLS0tICovXG5cbi5jb250YWN0cy1odWJfX2xlYWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDMuMnJlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fbm90ZSB7XG4gIG1hcmdpbi10b3A6IDEuNnJlbTtcbiAgbWF4LXdpZHRoOiA1MmNoO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICM0YTRhNGE7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuXG4uY29udGFjdHMtaHViX19lbWFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMS1leHRlbmRlZCk7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNHZ3LCAzLjJyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItMykgNDAlLCB0cmFuc3BhcmVudCk7XG4gIHBhZGRpbmctYm90dG9tOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5jb250YWN0cy1odWJfX2VtYWlsOmhvdmVyLFxuLmNvbnRhY3RzLWh1Yl9fZW1haWw6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xufVxuXG4uY29udGFjdHMtaHViX19zb2NpYWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDIuNHJlbTtcbiAgbWFyZ2luLXRvcDogMi40cmVtO1xufVxuXG4uY29udGFjdHMtaHViX19zb2NpYWwge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICM0YTRhNGE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fc29jaWFsOmhvdmVyLFxuLmNvbnRhY3RzLWh1Yl9fc29jaWFsOmZvY3VzLXZpc2libGUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbTtcbn1cblxuLyogLS0tINCd0LDQv9GA0LDQstC70LXQvdC40Y8gLS0tICovXG5cbi5jb250YWN0cy1odWJfX2xpbmVzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UyZTBkZTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fbGluZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE4cmVtLCAyNHJlbSkgMWZyO1xuICBnYXA6IDAuOHJlbSAzLjJyZW07XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgcGFkZGluZy1ibG9jazogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUwZGU7XG59XG5cbi5jb250YWN0cy1odWJfX2xpbmUtbmFtZSB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuYS5jb250YWN0cy1odWJfX2xpbmUtbmFtZTpob3ZlcixcbmEuY29udGFjdHMtaHViX19saW5lLW5hbWU6Zm9jdXMtdmlzaWJsZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yNWVtO1xufVxuXG4uY29udGFjdHMtaHViX19saW5lLWRlc2Mge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gIGNvbG9yOiAjNGE0YTRhO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLyogLS0tINCi0L7Rh9C60LggLS0tICovXG5cbi5jb250YWN0cy1odWJfX2NpdHkgKyAuY29udGFjdHMtaHViX19jaXR5IHtcbiAgbWFyZ2luLXRvcDogNC44cmVtO1xufVxuXG4uY29udGFjdHMtaHViX19jaXR5LW5hbWUge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICBtYXJnaW4tYm90dG9tOiAxLjZyZW07XG59XG5cbi5jb250YWN0cy1odWJfX3BvaW50cyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUwZGU7XG59XG5cbi5jb250YWN0cy1odWJfX3BvaW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTZyZW0sIDEuMWZyKSBtaW5tYXgoMThyZW0sIDEuNGZyKSBtaW5tYXgoMTRyZW0sIDAuOGZyKSBhdXRvO1xuICBnYXA6IDAuNnJlbSAyLjRyZW07XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgcGFkZGluZy1ibG9jazogMS44cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTBkZTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fcG9pbnQtbmFtZSB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fcG9pbnQtbmFtZTpob3Zlcixcbi5jb250YWN0cy1odWJfX3BvaW50LW5hbWU6Zm9jdXMtdmlzaWJsZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yNWVtO1xufVxuXG4uY29udGFjdHMtaHViX19wb2ludC1hZGRyZXNzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjNGE0YTRhO1xufVxuXG4uY29udGFjdHMtaHViX19wb2ludC1waG9uZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuYS5jb250YWN0cy1odWJfX3BvaW50LXBob25lOmhvdmVyLFxuYS5jb250YWN0cy1odWJfX3BvaW50LXBob25lOmZvY3VzLXZpc2libGUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fcG9pbnQtbWFwIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjNGE0YTRhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5jb250YWN0cy1odWJfX3BvaW50LW1hcDpob3Zlcixcbi5jb250YWN0cy1odWJfX3BvaW50LW1hcDpmb2N1cy12aXNpYmxlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG59XG5cbi8qIC0tLSDQoNC10LrQstC40LfQuNGC0YsgLS0tICovXG5cbi5jb250YWN0cy1odWJfX2xlZ2FsIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjNmE2YTZhO1xuICBtYXgtd2lkdGg6IDcwY2g7XG59XG5cbi5jb250YWN0cy1odWJfX2xlZ2FsIHAgKyBwIHtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xufVxuXG4vKiAtLS0g0JDQtNCw0L/RgtC40LIgLS0tICovXG5cbkBtZWRpYSAod2lkdGggPj0gNzY4cHgpIHtcbiAgLmNvbnRhY3RzLWh1Yl9fbGVhZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcbiAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgIGdhcDogNC44cmVtO1xuICB9XG59XG5cbkBtZWRpYSAod2lkdGggPD0gOTAwcHgpIHtcbiAgLmNvbnRhY3RzLWh1Yl9fcG9pbnQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gICAgcm93LWdhcDogMC40cmVtO1xuICB9XG5cbiAgLmNvbnRhY3RzLWh1Yl9fcG9pbnQtbmFtZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgfVxuXG4gIC5jb250YWN0cy1odWJfX3BvaW50LW1hcCB7XG4gICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gIH1cbn1cblxuQG1lZGlhICh3aWR0aCA8PSA2MDBweCkge1xuICAuY29udGFjdHMtaHViIHtcbiAgICBwYWRkaW5nLWJsb2NrOiA0LjhyZW0gNi40cmVtO1xuICB9XG5cbiAgLmNvbnRhY3RzLWh1YiAuc2VjdGlvbl9faXRlbSArIC5zZWN0aW9uX19pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiA1LjZyZW07XG4gIH1cblxuICAuY29udGFjdHMtaHViX19saW5lIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDAuNnJlbTtcbiAgfVxuXG4gIC5jb250YWN0cy1odWJfX3BvaW50IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuXG4gIC5jb250YWN0cy1odWJfX3BvaW50LW1hcCB7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgfVxufVxuIiwiLmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmNvbnRlbnQgLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIGNvbnRlbnQgKi9cbn1cbiIsIi5jb29raWUtcGFuZWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMXJlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXotaW5kZXgtMyk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uY29va2llLXBhbmVsLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb29raWUtcGFuZWwub3BlbmluZyB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbn1cblxuLmNvb2tpZS1wYW5lbCAuc2VjdGlvbl9faXRlbSB7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiKDAgMCAwIC8gMTUlKTtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgbWFyZ2luOiAwIDFyZW07XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDJyZW07XG4gIH1cbn1cblxuLmNvb2tpZS1wYW5lbCAuZGVzYy13cmFwIHtcbiAgZmxleDogMTtcbn1cblxuLmNvb2tpZS1wYW5lbCAuZGVzYyB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG59XG5cbi5jb29raWUtcGFuZWwgLmJ1dHRvbi13cmFwIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qINCi0L7RgiDQttC1INGA0LDQt9C80LXRgCDRgtC10LrRgdGC0LAsINGH0YLQviDRgyDQutC90L7Qv9C+0Log0YjQsNC/0LrQuCAoLmhlYWRlciAuYWN0aW9ucy13cmFwIC5idXR0b24pIOKAlFxuICAg0LHQtdC3IG92ZXJyaWRlINC60L3QvtC/0LrQsCDQv9C+0LvRg9GH0LDQu9CwINCx0LDQt9C+0LLRi9C5IDFlbSDQuCDQstGL0LPQu9GP0LTQtdC70LAg0LrRgNGD0L/QvdC10LUg0L7RgdGC0LDQu9GM0L3Ri9GFICovXG4uY29va2llLXBhbmVsIC5idXR0b24ge1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cblxuLyog0JDQtNCw0L/RgtCw0YbQuNGPINC00LvRjyDQvNC+0LHQuNC70YzQvdGL0YUg0YPRgdGC0YDQvtC50YHRgtCyICovXG5AbWVkaWEgKHdpZHRoIDw9IDc2OHB4KSB7XG4gIC5jb29raWUtcGFuZWwge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIFxuICAuY29va2llLXBhbmVsIC5zZWN0aW9uX19pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycmVtO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycmVtO1xuICB9XG59XG4iLCIuaW50cm8ge1xuICBtYXJnaW4tdG9wOiAtMTEuMnJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBtYXJnaW4tdG9wOiAtMTJyZW07XG4gIH1cbn1cblxuLmludHJvIC5zd2lwZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjguNHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDgzcmVtO1xuICB9XG59XG5cbi5pbnRybyAuc2VjdGlvbl9faXRlbS5zbGlkZS13cmFwLnN3aXBlci1zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLmludHJvIC5zZWN0aW9uX19zdWJpdGVtLmNvdmVyLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5pbnRybyAuc2VjdGlvbl9fc3ViaXRlbS5jb3Zlci13cmFwOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogaHNsKDBkZWcgMCUgMCUgLyAyMCUpO1xuICB6LWluZGV4OiAxO1xufVxuXG4uaW50cm8gLmNvdmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uaW50cm8gLnNlY3Rpb25fX2l0ZW0ubG9nby1oZWFkaW5nLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaW50cm8gLmxvZ28taGVhZGluZy13cmFwIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cmVtO1xuICB9XG59XG5cbi5pbnRybyAuc2VjdGlvbl9fc3ViaXRlbS5sb2dvLXdyYXAge1xuICB3aWR0aDogMjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiA0Mi41cmVtO1xuICB9XG59XG5cbi5pbnRybyAuc2VjdGlvbl9fc3ViaXRlbS5lbXB0eS13cmFwIHtcbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uaW50cm8gLnNlY3Rpb25fX3N1Yml0ZW0uaGVhZGluZy13cmFwIHtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLmludHJvIC5zZWN0aW9uX19zdWJpdGVtLmxvZ28td3JhcCBpbWcge1xufVxuXG4uaW50cm8gLmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuMWVtO1xuXG4gIC8qINCd0LAg0YLQtdC70LXRhNC+0L3QsNGFIOKAlCDRgtC10LrRg9GH0LjQuSDRgNCw0LfQvNC10YAgKHZ3KSwg0YfRgtC+0LHRiyDQtNC70LjQvdC90YvQuSDQt9Cw0LPQvtC70L7QstC+0Log0LjQvdGC0YDQviDQu9C+0LbQuNC70YHRj1xuICAgICDQsiAyINC/0L7Qu9C90YvQtSDRgdGC0YDQvtC60Lgg0L3QsCDQm9Cu0JHQntCZINGI0LjRgNC40L3QtSDQvNC+0LHQuNC70YzQvdC+0LPQviAo0ZHQvNC60L7RgdGC0Ywg0YHRgtGA0L7QutC4IH7Qv9C+0YHRgtC+0Y/QvdC90LApLiAqL1xuICBAbWVkaWEgKC0teHMpIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuMDVyZW0sIDMuNHZ3LCAxLjhyZW0pO1xuICB9XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgfVxufVxuXG4uaW50cm8gLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgei1pbmRleDogMztcbiAgYm90dG9tOiAycmVtO1xufVxuXG4uaW50cm8gLnN3aXBlci1idXR0b24tbmV4dCxcbi5pbnRybyAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgei1pbmRleDogMztcblxuICAtLXN3aXBlci1uYXZpZ2F0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xufVxuXG4uaW50cm86aG92ZXIgLnN3aXBlci1idXR0b24tbmV4dCxcbi5pbnRybzpob3ZlciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uaW50cm86aG92ZXIgLnN3aXBlci1idXR0b24tbmV4dDpob3Zlcixcbi5pbnRybzpob3ZlciAuc3dpcGVyLWJ1dHRvbi1wcmV2OmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyog0J/QtdGA0LXQvtC/0YDQtdC00LXQu9C10L3QuNC1INGG0LLQtdGC0LAg0LHRg9C70LvQtdGC0L7QsiBTd2lwZXIg0L/QvtC0INGE0L7QvSDRgdC10LrRhtC40LggKi9cbi5pbnRybyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSkgIWltcG9ydGFudDtcbn1cblxuLyog0JvQvtCz0L7RgtC40L8g0LIg0LjQvdGC0YDQviDigJQg0YbQstC10YLQvdCw0Y8g0LLQtdGA0YHQuNGPINC40Lcg0YjQsNC/0LrQuDog0LrRgNGD0LMg0Lgg0YTQuNCz0YPRgNC60LAg0L7RgtC00LXQu9GM0L3Ri9C80Lgg0Y3Qu9C10LzQtdC90YLQsNC80LgsXG4gICDQv9C+0Y3RgtC+0LzRgyDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QuNC4INC40YUg0LzQvtC20L3QviDQv9C10YDQtdC60YDQsNGB0LjRgtGMLCDQsCDQvdC1INC/0L7QutCw0LfRi9Cy0LDRgtGMINGB0LrQstC+0LfRjCDQstGL0YDQtdC3INGE0L7QvS4gKi9cbi5pbnRyb19fbG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uaW50cm9fX2xvZ28gLmxvZ28tbWFyayxcbi5pbnRyb19fbG9nbyAubG9nby1maWd1cmUge1xuICB0cmFuc2l0aW9uOiBmaWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cblxuLyog0J/QvtC60L7QuTog0LHQtdC70YvQuSDQutGA0YPQsywg0YLRkdC80L3QsNGPINGE0LjQs9GD0YDQutCwICovXG4uaW50cm9fX2xvZ28gLmxvZ28tbWFyayB7XG4gIGZpbGw6ICNmZmY7XG59XG5cbi5pbnRyb19fbG9nbyAubG9nby1maWd1cmUge1xuICBmaWxsOiB2YXIoLS1jb2xvci03KTtcbn1cblxuLyog0J3QsNCy0LXQtNC10L3QuNC1OiDQutCw0Log0LIg0YjQsNC/0LrQtSDigJQg0YTQuNGA0LzQtdC90L3Ri9C5INC60YDQsNGB0L3Ri9C5INGBINCx0LXQu9C+0Lkg0YTQuNCz0YPRgNC60L7QuSAqL1xuLmludHJvOmhvdmVyIC5pbnRyb19fbG9nbyAubG9nby1tYXJrLFxuLmludHJvOmZvY3VzLXdpdGhpbiAuaW50cm9fX2xvZ28gLmxvZ28tbWFyayB7XG4gIGZpbGw6ICNjNzIyMjk7XG59XG5cbi5pbnRybzpob3ZlciAuaW50cm9fX2xvZ28gLmxvZ28tZmlndXJlLFxuLmludHJvOmZvY3VzLXdpdGhpbiAuaW50cm9fX2xvZ28gLmxvZ28tZmlndXJlIHtcbiAgZmlsbDogI2ZmZjtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmludHJvX19sb2dvIC5sb2dvLW1hcmssXG4gIC5pbnRyb19fbG9nbyAubG9nby1maWd1cmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFtcztcbiAgfVxufVxuIiwiLmhlYWRsaW5lIHtcbiAgcGFkZGluZy10b3A6IDRyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgfVxufVxuXG4uaGVhZGxpbmUgLnNlY3Rpb25fX2l0ZW0uaGVhZGluZy13cmFwIHtcbiAgLS1tb3VzZS14OiAtMTAwcHg7XG4gIC0tbW91c2UteTogLTEwMHB4O1xuICAtLXNwb3RsaWdodC1yYWRpdXM6IDZyZW07XG5cbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KFxuICAgIGNpcmNsZSB2YXIoLS1zcG90bGlnaHQtcmFkaXVzKSBhdCB2YXIoLS1tb3VzZS14KSB2YXIoLS1tb3VzZS15KSxcbiAgICB2YXIoLS1jb2xvci00KSAwJSxcbiAgICB2YXIoLS1jb2xvci00KSA0MCUsXG4gICAgdmFyKC0tY29sb3ItMikgMTAwJVxuICApO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgLS1zcG90bGlnaHQtcmFkaXVzOiA5cmVtO1xuICB9XG59XG5cbi5oZWFkbGluZSAudGl0bGUge1xuICBmb250LXNpemU6IDEuNGVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMi41ZW07XG4gIH1cbn1cbiIsIi5vd25lcnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLm93bmVycyAuc2VjdGlvbl9faXRlbS5ibG9jay13cmFwIHtcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZzogNHJlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cmVtO1xuICB9XG59XG5cbi5vd25lcnMgLnNlY3Rpb25fX3N1Yml0ZW0uaGVhZGluZy13cmFwIHtcbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZmxleDogMCAwIDQwJTtcbiAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm93bmVycyAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS40ZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAyLjVlbTtcbiAgfVxufVxuXG4ub3duZXJzIC5zZWN0aW9uX19zdWJpdGVtLmNhcmRzLW93bmVyLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmbGV4OiAxO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB9XG59XG5cbi5vd25lcnMgLnNlY3Rpb25fX2lubmVyLmNhcmQtb3duZXItd3JhcCB7XG4gIHdpZHRoOiA1MCU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLm93bmVycyAuc2VjdGlvbl9faW5uZXIuY2FyZC1vd25lci13cmFwIHtcbn1cbiIsIi51cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteDogY2xpcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA2cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBnYXA6IDIwcmVtO1xuICB9XG59XG5cbi51cyAuc2VjdGlvbl9faXRlbS5iZy13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uYmctdG9wLFxuLnVzIC5zZWN0aW9uX19zdWJpdGVtLmJnLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgbGluZWFyO1xufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uYmctdG9wIHtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IDY1cmVtO1xuICBoZWlnaHQ6IDY1cmVtO1xuICB0b3A6IC0xM3JlbTtcbiAgcmlnaHQ6IC01cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiAxMjZyZW07XG4gICAgaGVpZ2h0OiAxMjZyZW07XG4gICAgdG9wOiAtNDVyZW07XG4gICAgcmlnaHQ6IC0xMHJlbTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uYmctYm90dG9tIHtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDU1cmVtO1xuICBoZWlnaHQ6IDU1cmVtO1xuICB0b3A6IDIwcmVtO1xuICBsZWZ0OiAtMThyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IDE1MXJlbTtcbiAgICBoZWlnaHQ6IDE1MXJlbTtcbiAgICBib3R0b206IC01MXJlbTtcbiAgICBsZWZ0OiAzcmVtO1xuICB9XG59XG5cbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5iZy10b3AgaW1nLFxuLnVzIC5zZWN0aW9uX19zdWJpdGVtLmJnLWJvdHRvbSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4udXMgLmNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLnVzIC5zZWN0aW9uX19pdGVtLnZpc3VhbC13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEuNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDY1cmVtO1xuICB9XG59XG5cbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5jb3Zlci13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogMTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IDY1cmVtO1xuICAgIGhlaWdodDogNjVyZW07XG4gICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLW91dDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG59XG5cbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5jb3Zlci13cmFwIGltZyxcbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5jb3Zlci13cmFwIHZpZGVvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5jYXJkLXRleHQtd3JhcCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNDByZW07XG4gICAgcGFkZGluZzogMi41cmVtIDNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLW91dDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG59XG5cbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5jYXJkLXRleHQtMSB7XG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHRvcDogNXJlbTtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5jYXJkLXRleHQtMiB7XG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJvdHRvbTogNXJlbTtcbiAgICByaWdodDogMDtcbiAgfVxufVxuXG4udXMgLmNhcmQtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjRlbTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX2l0ZW0uY2FyZHMtbnVtYmVyLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA1cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbiIsIi5uYXZpZ2F0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19pdGVtLml0ZW1zLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMS42cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9fc3ViaXRlbS5pdGVtLXdyYXAuc2l6ZS1oYWxmIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMXJlbSk7XG4gIH1cbn1cblxuLm5hdmlnYXRpb24gLnNlY3Rpb25fX3N1Yml0ZW0uaXRlbS13cmFwLnNpemUtdGhpcmQge1xuICB3aWR0aDogMTAwJTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMlIC0gMS4zMzRyZW0pO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcC5zaXplLWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm5hdmlnYXRpb24gLnNlY3Rpb25fX3N1Yml0ZW0uaXRlbS13cmFwLnNpemUtaGFsZiAuY2FyZC1uYXYge1xuICBoZWlnaHQ6IDE1cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGhlaWdodDogMjZyZW07XG4gIH1cbn1cblxuLm5hdmlnYXRpb24gLnNlY3Rpb25fX3N1Yml0ZW0uaXRlbS13cmFwLnNpemUtdGhpcmQgLmNhcmQtbmF2IHtcbiAgaGVpZ2h0OiAxNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDIycmVtO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcC5zaXplLWZ1bGwgLmNhcmQtbmF2IHtcbiAgaGVpZ2h0OiAxNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDQ2cmVtO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcCAuY2FyZC1ncmFkaWVudCB7XG4gIGhlaWdodDogMTVyZW07XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcDpoYXMoLmNhcmQtc2xpZGVyKSB7XG4gIG1hcmdpbi10b3A6IDEuNnJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI0cmVtO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGhlaWdodDogNTByZW07XG4gIH1cblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDUwcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDRyZW07XG4gIH1cbn1cblxuLyogbG90dGVyeS5wbmcgKDQwODDDlzEzODApOiDQv9GA0L7Qv9C+0YDRhtC40Lgg0LrQsNC6INGDINC60LDRgNGC0LjQvdC60Lg7INCx0LXQtyBwYWRkaW5nLWJvdHRvbSDRgdC70LDQudC00LXRgNCwIOKAlCDQuNC90LDRh9C1IGNvdmVyINGA0LXQttC10YIg0L3QuNC3ICovXG4ubmF2aWdhdGlvbiBbaWQ9XCJsb3R0ZXJ5U2xpZGVyXCJdLmNhcmQtc2xpZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGFzcGVjdC1yYXRpbzogNDA4MCAvIDEzODA7XG4gIH1cbn1cblxuLyog0JrQvtC80L/QtdC90YHQsNGG0LjRjyDQuNC3IGNvbXBvbmVudHMvc2xpZGVyLmNzcyAobWFyZ2luLXRvcCAtMnJlbSkg0YDQsNGB0YHRh9C40YLQsNC90LAg0L3QsCBwYWRkaW5nLWJvdHRvbSDigJQg0L3QtSDQvdGD0LbQvdCwICovXG4ubmF2aWdhdGlvbiBbaWQ9XCJsb3R0ZXJ5U2xpZGVyXCJdLmNhcmQtc2xpZGVyIC5zd2lwZXItYnV0dG9uLW5leHQsXG4ubmF2aWdhdGlvbiBbaWQ9XCJsb3R0ZXJ5U2xpZGVyXCJdLmNhcmQtc2xpZGVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qINCm0LXQv9C+0YfQutCwINCy0YvRgdC+0YLRiyDQv9C+0LQgU3dpcGVyICjQu9C+0LrQsNC70YzQvdGL0Lkgc2xpZGVyLmNzcyDQvdC1INC30LDQtNCw0ZHRgiBzbGlkZSBoZWlnaHQpICovXG4ubmF2aWdhdGlvbiBbaWQ9XCJsb3R0ZXJ5U2xpZGVyXCJdIC5zd2lwZXItd3JhcHBlcixcbi5uYXZpZ2F0aW9uIFtpZD1cImxvdHRlcnlTbGlkZXJcIl0gLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyIC5zd2lwZXItc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXJfX2xpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyX19jb3ZlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLyogbG90dGVyeVNsaWRlcjog0LfQsNC/0L7Qu9C90LXQvdC40LUg0LrQsNC6INGDINC+0YHRgtCw0LvRjNC90YvRhSDQutCw0YDRgtC+0YfQtdC6IChjb3ZlciksINCx0LXQtyDQvtCx0YDQtdC30LrQuCDQt9CwINGB0YfRkdGCIGFzcGVjdC1yYXRpbyAqL1xuLm5hdmlnYXRpb24gW2lkPVwibG90dGVyeVNsaWRlclwiXSAuY2FyZC1zbGlkZXJfX2NvdmVyIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXIgLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgei1pbmRleDogMztcbiAgYm90dG9tOiAxcmVtO1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXIgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpICFpbXBvcnRhbnQ7XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xuICB6LWluZGV4OiAzO1xuXG4gIC0tc3dpcGVyLW5hdmlnYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyOmhvdmVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1uZXh0OmhvdmVyLFxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyOmhvdmVyIC5zd2lwZXItYnV0dG9uLXByZXY6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiA0LjhyZW0g0YLQvtC70YzQutC+INC00L4g0Lgg0L/QvtGB0LvQtSDRgNGP0LTQsCDQutC90L7Qv9C+0Lo6INC6IHJvdy1nYXAvY29sdW1uLWdhcCDRgdC10YLQutC4INC00L7QsdCw0LLQu9GP0LXQvCDQvdC10LTQvtGB0YLQsNGO0YnQtdC1ICovXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9fc3ViaXRlbS5pdGVtLXdyYXA6aGFzKC5idXR0b25zLXdyYXApIHtcbiAgbWFyZ2luLWJsb2NrOiBjYWxjKDQuOHJlbSAtIDEuNnJlbSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWFyZ2luLWJsb2NrOiBjYWxjKDQuOHJlbSAtIDJyZW0pO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5idXR0b25zLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjhyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAycmVtO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5idXR0b25zLXdyYXAgLmJ1dHRvbi1zZWN0aW9uIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMC40cmVtKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMlIC0gMS4zMzRyZW0pO1xuICB9XG59XG5cbi8qINCf0LvQsNCy0L3QvtC1INC30LDRgtC10LzQvdC10L3QuNC1INC60LDRgNGC0L7Rh9C10Log0L/RgNC4INC90LDQttCw0YLQuNC4ICovXG4ubmF2aWdhdGlvbiAuY2FyZC1uYXYge1xuICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC42cyBlYXNlLW91dDtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtZ3JhZGllbnQge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQsIGZpbHRlciAwLjZzIGVhc2Utb3V0O1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1uYXY6YWN0aXZlLFxuLm5hdmlnYXRpb24gLmNhcmQtZ3JhZGllbnQ6YWN0aXZlIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOSk7XG59XG4iLCIucmVzdGF1cmFudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGdhcDogNnJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudHMgLnNlY3Rpb25fX2l0ZW0uaGVhZGluZy13cmFwIHtcbn1cblxuLnJlc3RhdXJhbnRzIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAzLjJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudHMgLnNlY3Rpb25fX2l0ZW0udGFncy13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxcmVtO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWFyZ2luLXRvcDogLTRyZW07XG4gICAgb3ZlcmZsb3cteDogdW5zZXQ7XG4gIH1cbn1cblxuLnJlc3RhdXJhbnRzIC5zZWN0aW9uX19pdGVtLmNhcmRzLXJlc3RhdXJhbnQtd3JhcCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICByb3ctZ2FwOiA0cmVtO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAxLjVyZW07XG4gIH1cblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogNHJlbSAycmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50cyAuc2VjdGlvbl9fc3ViaXRlbS5jYXJkLXJlc3RhdXJhbnQtd3JhcCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnJlc3RhdXJhbnRzIC5zZWN0aW9uX19zdWJpdGVtLmNhcmQtcmVzdGF1cmFudC13cmFwIC5jYXJkLXJlc3RhdXJhbnQge1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogMjZyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiAzMHJlbTtcbiAgfVxufVxuIiwiLyog0KHQvtGB0LXQtNC4INC/0L4g0LPQvtGA0L7QtNGDINC90LAg0LrQsNGA0YLQvtGH0LrQtSDRgNC10YHRgtC+0YDQsNC90LA6INGB0L/QuNGB0L7Qui3QvdCw0LLQuNCz0LDRhtC40Y8sINC90LUg0LLQuNGC0YDQuNC90LAg4oCUXG4gICDQs9C+0YHRgtGMINGD0LbQtSDQstC90YPRgtGA0Lgg0LHRgNC10L3QtNCwLCDQtdC80YMg0L3Rg9C20LXQvSDQsdGL0YHRgtGA0YvQuSDQv9C10YDQtdGF0L7QtCwg0LAg0L3QtSDQstGC0L7RgNC+0Lkg0YDRj9C0INC+0LHQu9C+0LbQtdC6LiAqL1xuXG4ucmVzdGF1cmFudC1uZWFyYnkge1xuICAvKiDQmtCw0YDRgtC+0YfQutCwINGA0LXRgdGC0L7RgNCw0L3QsCDigJQg0YLRkdC80L3QsNGPINGB0YLRgNCw0L3QuNGG0LA6INGG0LLQtdGCINC30LDQtNCw0ZHQvCDRj9Cy0L3Qviwg0LjQvdCw0YfQtSDRgtC10LrRgdGCINC90LDRgdC70LXQtNGD0LXRgiDRh9GR0YDQvdGL0LkgKi9cbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBwYWRkaW5nLWJsb2NrOiA2LjRyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxMiUpO1xufVxuXG4ucmVzdGF1cmFudC1uZWFyYnlfX2hlYWRpbmcge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDN2dywgMi42cmVtKTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIG1hcmdpbi1ib3R0b206IDMuMnJlbTtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMy4ycmVtO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxMiUpO1xufVxuXG4ucmVzdGF1cmFudC1uZWFyYnlfX2l0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19saW5rIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTZyZW0sIDIycmVtKSAxZnI7XG4gIGdhcDogMC40cmVtIDMuMnJlbTtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBwYWRkaW5nLWJsb2NrOiAxLjhyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IHRleHQtZGVjb3JhdGlvbi1jb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4vKiDQn9C+0LTRh9GR0YDQutC40LLQsNC10Lwg0YLQvtC70YzQutC+INC90LDQt9Cy0LDQvdC40LU6INGB0YLRgNC+0LrQsCDRhtC10LvQuNC60L7QvCwg0LLQvNC10YHRgtC1INGBINC+0L/QuNGB0LDQvdC40LXQvCwg0YfQuNGC0LDQtdGC0YHRjyDQutCw0Log0L/QvtC80LDRgNC60LAuICovXG4ucmVzdGF1cmFudC1uZWFyYnlfX2xpbms6aG92ZXIgLnJlc3RhdXJhbnQtbmVhcmJ5X19uYW1lLFxuLnJlc3RhdXJhbnQtbmVhcmJ5X19saW5rOmZvY3VzLXZpc2libGUgLnJlc3RhdXJhbnQtbmVhcmJ5X19uYW1lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG59XG5cbi5yZXN0YXVyYW50LW5lYXJieV9fbmFtZSB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucmVzdGF1cmFudC1uZWFyYnlfX2Rlc2Mge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgb3BhY2l0eTogMC43O1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTMpIDQwJSwgdHJhbnNwYXJlbnQpO1xuICBwYWRkaW5nLWJvdHRvbTogMC40cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4ucmVzdGF1cmFudC1uZWFyYnlfX2FsbDpob3Zlcixcbi5yZXN0YXVyYW50LW5lYXJieV9fYWxsOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbn1cblxuQG1lZGlhICh3aWR0aCA8PSA2MDBweCkge1xuICAucmVzdGF1cmFudC1uZWFyYnkge1xuICAgIHBhZGRpbmctYmxvY2s6IDQuOHJlbTtcbiAgfVxuXG4gIC5yZXN0YXVyYW50LW5lYXJieV9fbGluayB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cbiIsIi8qINCg0LDRgdGB0LrQsNC3INC+INGA0LXRgdGC0L7RgNCw0L3QtSDQuCDQstC+0L/RgNC+0YHRiyDQs9C+0YHRgtC10Lkg0YHRgtC+0Y/RgiDRgNGP0LTQvtC8LCDQv9C+0Y3RgtC+0LzRgyDQvtGE0L7RgNC80LvQtdC90Ysg0L/Qvi3RgNCw0LfQvdC+0LzRgzpcbiAgINGA0LDRgdGB0LrQsNC3IOKAlCDRgNCw0LfQstC+0YDQvtGC0L7QvCDRgSDQv9C+0LTQt9Cw0LPQvtC70L7QstC60L7QvCDQvdCwINC/0L7Qu9GP0YUsINCy0L7Qv9GA0L7RgdGLIOKAlCDQv9C70L7RgtC90YvQvCDRgdC/0LjRgdC60L7QvCDQsiDQutC+0LvQvtC90LrRgy5cbiAgINCg0LDQvdGM0YjQtSDQvtCx0LAg0LLRi9Cz0LvRj9C00LXQu9C4INC60LDQuiDCq9C30LDQs9C+0LvQvtCy0L7QuiDQuCDQsNCx0LfQsNGGwrsg0Lgg0YHQu9C40LLQsNC70LjRgdGMINCyINC+0LTQvdGDINC/0YDQvtGB0YLRi9C90Y4uICovXG5cbi5yZXN0YXVyYW50LXN0b3J5IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4ucmVzdGF1cmFudC1zdG9yeV9fYmxvY2sgKyAucmVzdGF1cmFudC1zdG9yeV9fYmxvY2sge1xuICBtYXJnaW4tdG9wOiAzLjJyZW07XG59XG5cbi5yZXN0YXVyYW50LXN0b3J5X19ibG9jayB7XG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMThyZW0sIDI0JSkgMWZyO1xuICAgIGdhcDogMCA0cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1zdG9yeV9faGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEtZXh0ZW5kZWQpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IGNsYW1wKDEuOXJlbSwgMi42dncsIDIuMnJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xuXG4gIC8qINCk0LjRgNC80LXQvdC90YvQuSDRhtCy0LXRgiDQv9C+0LTQt9Cw0LPQvtC70L7QstC60LAg4oCUINGC0L4sINGH0LXQvCDRgNCw0YHRgdC60LDQtyDQvtGC0LvQuNGH0LDQtdGC0YHRjyDQvtGCINCy0L7Qv9GA0L7RgdC+0LIg0L3QsCDQu9GO0LHQvtC8INGN0LrRgNCw0L3QtS4gKi9cbiAgY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDEycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtc3RvcnlfX3RleHQge1xuICBtYXgtd2lkdGg6IDY4Y2g7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLnJlc3RhdXJhbnQtc3RvcnlfX3RleHQgKyAucmVzdGF1cmFudC1zdG9yeV9fdGV4dCB7XG4gIG1hcmdpbi10b3A6IDEuNHJlbTtcbn1cblxuLyogLS0tINCS0L7Qv9GA0L7RgdGLOiDRgdGD0YXQvtC5INGB0L/QuNGB0L7Quiwg0LAg0L3QtSDQv9GA0L7QtNC+0LvQttC10L3QuNC1INGA0LDRgdGB0LrQsNC30LAgLS0tICovXG5cbi5yZXN0YXVyYW50LWZhcSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgbWF4LXdpZHRoOiA2OGNoO1xufVxuXG4ucmVzdGF1cmFudC1mYXFfX2hlYWRpbmcge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3BhY2l0eTogMC41NTtcbiAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xufVxuXG4ucmVzdGF1cmFudC1mYXFfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxMiUpO1xufVxuXG4ucmVzdGF1cmFudC1mYXFfX2l0ZW0ge1xuICBwYWRkaW5nLWJsb2NrOiAxLjZyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxMiUpO1xufVxuXG4ucmVzdGF1cmFudC1mYXFfX3Ege1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xufVxuXG4ucmVzdGF1cmFudC1mYXFfX2Ege1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMS40NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG4iLCIvKiDQoNCw0YHRgdC60LDQtyDQviDQs9GA0YPQv9C/0LUg0L3QsCDQs9C70LDQstC90L7QuS4g0JTQstC1INC60L7Qu9C+0L3QutC4INC90LAg0YjQuNGA0L7QutC+0Lwg0Y3QutGA0LDQvdC1OiDRgtC10LrRgdGCINGH0LjRgtCw0LXRgtGB0Y8g0LHQu9C+0LrQsNC80LgsXG4gICDQsCDQvdC1INC+0LTQvdC+0Lkg0L/RgNC+0YHRgtGL0L3RkdC5INCy0L4g0LLRgdGOINGI0LjRgNC40L3Rgy4gKi9cblxuLmdyb3VwLXN0b3J5IHtcbiAgLyog0KTQvtC9INC30LDQtNCw0ZHQvCDRj9Cy0L3Qvjog0YHQtdC60YbQuNGPINGB0YLQvtC40YIg0LzQtdC20LTRgyDRgdCy0LXRgtC70YvQvNC4INCx0LvQvtC60LDQvNC4INCz0LvQsNCy0L3QvtC5LFxuICAgICDQsdC10Lcg0L3QtdCz0L4g0LHQtdC70YvQuSDRgtC10LrRgdGCINC70L7QttC40YLRgdGPINC90LAg0LHQtdC70L7QtS4gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItNyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgcGFkZGluZy1ibG9jazogOHJlbTtcbn1cblxuLmdyb3VwLXN0b3J5X190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEtZXh0ZW5kZWQpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IGNsYW1wKDIuNHJlbSwgNC41dncsIDRyZW0pO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIG1hcmdpbi1ib3R0b206IDQuOHJlbTtcbiAgbWF4LXdpZHRoOiAyNGNoO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5ncm91cC1zdG9yeV9fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogNHJlbSA2LjRyZW07XG59XG5cbi5ncm91cC1zdG9yeV9faGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS43cmVtLCAyLjJ2dywgMnJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbi1ib3R0b206IDEuNHJlbTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG4uZ3JvdXAtc3RvcnlfX3RleHQge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gIG9wYWNpdHk6IDAuODI7XG4gIG1heC13aWR0aDogNjJjaDtcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi5ncm91cC1zdG9yeV9fdGV4dCArIC5ncm91cC1zdG9yeV9fdGV4dCB7XG4gIG1hcmdpbi10b3A6IDEuMnJlbTtcbn1cblxuLyog0KHRgdGL0LvQutC4INCy0L3Rg9GC0YDQuCDRgtC10LrRgdGC0LA6INC90LDRgdC70LXQtNGD0Y7RgiDRhtCy0LXRgiwg0LAg0L3QtSDRg9GF0L7QtNGP0YIg0LIg0LHRgNCw0YPQt9C10YDQvdGL0Lkg0YHQuNC90LjQuSDQvdCwINGC0ZHQvNC90L7QvCDRhNC+0L3QtSAqL1xuLmdyb3VwLXN0b3J5X190ZXh0IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMzUlKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5ncm91cC1zdG9yeV9fdGV4dCBhOmhvdmVyLFxuLmdyb3VwLXN0b3J5X190ZXh0IGE6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xufVxuXG4uZ3JvdXAtc3RvcnlfX2xpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDIuNHJlbSAzLjJyZW07XG4gIG1hcmdpbi10b3A6IDQuOHJlbTtcbiAgcGFkZGluZy10b3A6IDMuMnJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE0JSk7XG59XG5cbi5ncm91cC1zdG9yeV9fbGluayB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nLWJvdHRvbTogMC40cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSksIGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uZ3JvdXAtc3RvcnlfX2xpbms6aG92ZXIsXG4uZ3JvdXAtc3RvcnlfX2xpbms6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xufVxuXG5AbWVkaWEgKHdpZHRoID49IDkwMHB4KSB7XG4gIC5ncm91cC1zdG9yeV9fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5cbkBtZWRpYSAod2lkdGggPD0gNjAwcHgpIHtcbiAgLmdyb3VwLXN0b3J5IHtcbiAgICBwYWRkaW5nLWJsb2NrOiA1LjZyZW07XG4gIH1cblxuICAuZ3JvdXAtc3RvcnlfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjJyZW07XG4gIH1cbn1cbiIsIi8qINCR0LvQvtC6INCy0L7Qv9GA0L7RgdC+0LIg0Lgg0L7RgtCy0LXRgtC+0LIuINCU0LLQtSDRgtC10LzRizog0YLRkdC80L3QsNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC4INGB0LLQtdGC0LvQsNGPINC00LvRjyDRgdGC0YDQsNC90LjRhiDQvdCwINCx0LXQu9C+0LwuICovXG5cbi5mYXEtYmxvY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci03KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBwYWRkaW5nLWJsb2NrOiA3LjJyZW07XG59XG5cbi5mYXEtYmxvY2stLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmZhcS1ibG9ja19fdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjJyZW0sIDR2dywgMy4ycmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW4tYm90dG9tOiAzLjZyZW07XG59XG5cbi5mYXEtYmxvY2tfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIG1heC13aWR0aDogNzhjaDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE0JSk7XG59XG5cbi5mYXEtYmxvY2stLWxpZ2h0IC5mYXEtYmxvY2tfX2xpc3Qge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZTJlMGRlO1xufVxuXG4uZmFxLWJsb2NrX19pdGVtIHtcbiAgcGFkZGluZy1ibG9jazogMi4ycmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTQlKTtcbn1cblxuLmZhcS1ibG9jay0tbGlnaHQgLmZhcS1ibG9ja19faXRlbSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNlMmUwZGU7XG59XG5cbi5mYXEtYmxvY2tfX3Ege1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbWFyZ2luLWJvdHRvbTogMC45cmVtO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5mYXEtYmxvY2tfX2Ege1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMS41NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gIG9wYWNpdHk6IDAuODI7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuXG4uZmFxLWJsb2NrLS1saWdodCAuZmFxLWJsb2NrX19hIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICM0YTRhNGE7XG59XG5cbkBtZWRpYSAod2lkdGggPD0gNjAwcHgpIHtcbiAgLmZhcS1ibG9jayB7XG4gICAgcGFkZGluZy1ibG9jazogNS42cmVtO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU2VjdGlvbjogZXZlbnRzICjQsNGE0LjRiNCwKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmV2ZW50cyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudHMgLmhlYWRpbmctd3JhcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmV2ZW50cyAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMy4yZW07XG4gIH1cbn1cblxuLyog0KHRgtGA0LDQvdC40YbQsCDQsNGE0LjRiNC4INGC0ZHQvNC90LDRjyDRhtC10LvQuNC60L7QvCDigJQg0LHQtdC3INCx0LXQu9GL0YUg0YPQs9C+0LvQutC+0LIg0LfQsCDRgdC60YDRg9Cz0LvQtdC90LjQtdC8INGE0YPRgtC10YDQsCAqL1xuI3BhZ2UtY29udGVudDpoYXMoLmV2ZW50cykge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmV2ZW50c19fbGVhZC13cmFwIHtcbiAgbWF4LXdpZHRoOiA2OHJlbTtcbiAgbWFyZ2luOiAxLjZyZW0gYXV0byAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ldmVudHNfX2xlYWQge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnRzX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdhcDogMi40cmVtO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuXG4gIEBtZWRpYSAoLS14bSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogM3JlbTtcbiAgfVxufVxuXG4uZXZlbnRzX19jZWxsIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmV2ZW50c19fZW1wdHkge1xuICBtYXJnaW4tdG9wOiAzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG4iLCIuYW5hbHl0aWNzIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gYW5hbHl0aWNzICovXG59XG5cbi5hbmFseXRpY3MgLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIGFuYWx5dGljcyAqL1xufVxuIiwiYmxvY2txdW90ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYmxvY2s6IDA7XG4gIG1hcmdpbi1pbmxpbmU6IDA7XG59XG5cbi5ibG9ja3F1b3RlLWJvcmRlciB7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLTYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItNik7XG59XG5cbi5ibG9ja3F1b3RlLXNtIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmJsb2NrcXVvdGUtbWQge1xuICBmb250LXNpemU6IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4uYmxvY2txdW90ZS1sZyB7XG4gIGZvbnQtc2l6ZTogMi40ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59IiwiLmJ1cmdlci1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgei1pbmRleDogdmFyKC0tei1pbmRleC00KTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uYnVyZ2VyLWljb25fX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMS42cmVtO1xufVxuXG4uYnVyZ2VyLWljb25fX2l0ZW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHRyYW5zaXRpb246IDAuMnMgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcCwgdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuXG4uYnVyZ2VyLWljb25fX2l0ZW06bnRoLWNoaWxkKDEpIHtcbiAgdG9wOiAwO1xufVxuXG4uYnVyZ2VyLWljb25fX2l0ZW06bnRoLWNoaWxkKDIpIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmJ1cmdlci1pY29uX19pdGVtOm50aC1jaGlsZCgzKSB7XG4gIHRvcDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbn1cblxuLmJ1cmdlci1pY29uLmFjdGl2ZSAuYnVyZ2VyLWljb25fX2l0ZW06bnRoLWNoaWxkKDEpIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuXG4uYnVyZ2VyLWljb24uYWN0aXZlIC5idXJnZXItaWNvbl9faXRlbTpudGgtY2hpbGQoMikge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uYnVyZ2VyLWljb24uYWN0aXZlIC5idXJnZXItaWNvbl9faXRlbTpudGgtY2hpbGQoMykge1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xufVxuIiwiLmJ1cmdlci1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHotaW5kZXg6IHZhcigtLXotaW5kZXgtNSk7XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgd2lkdGg6IDM5cmVtO1xuICB9XG59XG5cbi5idXJnZXItbWVudS5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJ1cmdlci1tZW51IC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDIuMTNyZW07XG4gIHBhZGRpbmc6IDkuNXJlbSAyLjZyZW0gM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZy10b3A6IDEyLjhyZW07XG4gIH1cbn1cblxuLmJ1cmdlci1tZW51X19pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAyLjMzcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXI6IDA7XG59XG5cbi5idXJnZXItbWVudV9fdGl0bGUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uYnVyZ2VyLW1lbnVfX2l0ZW06aG92ZXIgLmJ1cmdlci1tZW51X190aXRsZSxcbi5idXJnZXItbWVudV9faXRlbTpmb2N1cy12aXNpYmxlIC5idXJnZXItbWVudV9fdGl0bGUge1xuICBvcGFjaXR5OiAwLjc7XG59XG4iLCIuYnV0dG9uIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gYnV0dG9uICovXG59XG5cbi5idXR0b24gLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIGJ1dHRvbiAqL1xufVxuIiwiLmNvdmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xufVxuXG4uY292ZXJfX2ltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmNvdmVyOmhvdmVyIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMjUpO1xufVxuXG4uY292ZXJfX2ljb24td3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDZyZW07XG4gIGhlaWdodDogNnJlbTtcbiAgcGFkZGluZzogMS43NXJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkIHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5jb3Zlcjpob3ZlciAuY292ZXJfX2ljb24td3JhcCB7XG4gIG9wYWNpdHk6IDAuOTtcbn0iLCIuY3VzdG9tLWNoZWNrYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9faW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19ib3gge1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXI6IDAuMXJlbSBzb2xpZCB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2JveDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9faWNvbiB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLWNvbG9yLTEpO1xuICBzdHJva2Utd2lkdGg6IDAuMnJlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19pbnB1dDpjaGVja2VkKy5jdXN0b20tY2hlY2tib3hfX2JveCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTQpO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19pbnB1dDpjaGVja2VkKy5jdXN0b20tY2hlY2tib3hfX2JveCAuY3VzdG9tLWNoZWNrYm94X19pY29uIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbiIsIi5jdXN0b20tbGlzdCB7fVxuXG4uY3VzdG9tLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cblxuLmN1c3RvbS1saXN0X19pdGVtIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbn0iLCIuZmVhdHVyZXMtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLmZlYXR1cmVzLWxpc3RfX2l0ZW0ge1xuICBwYWRkaW5nOiAxcmVtIDA7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci01KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLTUpO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMDtcbiAgfVxufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBmb3JtLWNhbGxiYWNrIOKAlCDRgdC+0LLRgNC10LzQtdC90L3QsNGPINGE0L7RgNC80LAg0L7QsdGA0LDRgtC90L7QuSDRgdCy0Y/Qt9C4XG4gICBGbG9hdGluZyBsYWJlbHMsINCw0L3QuNC80LDRhtC40LgsINC10LTQuNC90L7QvtCx0YDQsNC30L3Ri9C1INC/0L7Qu9GPLCBkcmFnLWFuZC1kcm9wINC30L7QvdCwINGE0LDQudC70L7QslxuICAg0JHQsNC30L7QstGL0Lkg0YDQsNC30LzQtdGAOiAxcmVtID0gMTBweFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX3RyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZm9ybS1jYWxsYmFjayB7XG4gIC0tZmMtcmFkaXVzOiAwLjRyZW07XG4gIC0tZmMtYm9yZGVyOiAxcHggc29saWQgcmdiKDAgMCAwIC8gNiUpO1xuICAtLWZjLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWVycm9yKTtcbiAgLS1mYy1iZzogcmdiKDAgMCAwIC8gMiUpO1xuICAtLWZjLWJnLWhvdmVyOiByZ2IoMCAwIDAgLyA0JSk7XG4gIC0tZmMtZm9udDogdmFyKC0tZm9udC0xKTtcbiAgLS1mYy10ZXh0OiB2YXIoLS1jb2xvci0yKTtcbiAgLS1mYy1sYWJlbDogdmFyKC0tY29sb3ItNSk7XG5cbiAgLyog0KHQvtGB0YLQvtGP0L3QuNGPINCy0YvQvdC10YHQtdC90Ysg0LIg0L/QtdGA0LXQvNC10L3QvdGL0LU6INC/0LvQvtGJ0LDQtNC60LAg0YEg0YLRkdC80L3QvtC5INGC0LXQvNC+0Lkg0L3QtSDQvNC+0LbQtdGCINC/0LXRgNC10L7Qv9GA0LXQtNC10LvQuNGC0YxcbiAgICAg0LbRkdGB0YLQutC+INC/0YDQvtC/0LjRgdCw0L3QvdGL0Lkg0YbQstC10YIsINC4INGDINC90LXRkSDQvNC10YLQutCwINGB0LLQtdGC0LjQu9Cw0YHRjCDQttGR0LvRgtGL0LwsINCwINCz0LDQu9C+0YfQutCwINGC0LXRgNGP0LvQsNGB0YwuICovXG4gIC0tZmMtbGFiZWwtYWN0aXZlOiB2YXIoLS1jb2xvci01KTtcbiAgLS1mYy1ib3JkZXItaG92ZXI6IHJnYigwIDAgMCAvIDE1JSk7XG4gIC0tZmMtY2hlY2tlZC1iZzogdmFyKC0tY29sb3ItNik7XG4gIC0tZmMtY2hlY2tlZC1ib3JkZXI6IHZhcigtLWNvbG9yLTYpO1xuICAtLWZjLWNoZWNrZWQtbWFyazogdmFyKC0tY29sb3ItMSk7XG4gIC0tZmMtYWNjZW50OiB2YXIoLS1jb2xvci01KTtcbiAgLS1mYy1tdXRlZDogdmFyKC0tY29sb3ItNik7XG4gIC0tZmMtZm9jdXMtcmluZzogdmFyKC0tY29sb3ItNSk7XG4gIC0tZmMtc3BlZWQ6IDAuMnM7XG4gIC0tZmMtZWFzZTogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLS1mYy1oZWlnaHQ6IDUuNnJlbTtcbiAgLS1mYy1nYXA6IDJyZW07XG4gIC0tZmMtZm9udC1zaXplOiAxLjZyZW07XG4gIC0tZmMtZm9udC1zaXplLXNtOiAxLjNyZW07XG4gIC0tZmMtZm9udC1zaXplLXhzOiAxLjJyZW07XG4gIC0tZmMtc3VjY2VzczogIzJlN2QzMjtcbiAgLS1mYy1zdWNjZXNzLWJnOiAjZThmNWU5O1xuXG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBHcmlkXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1jYWxsYmFja19fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tZmMtZ2FwKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyB2YXIoLS1mYy1lYXNlKSwgZmlsdGVyIDAuNHMgdmFyKC0tZmMtZWFzZSk7XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxufVxuXG4vKiBHcmlkIGRpbW1lZCBkdXJpbmcgbG9hZGluZyAqL1xuLmZvcm0tY2FsbGJhY2suaXMtbG9hZGluZyAuZm9ybS1jYWxsYmFja19fZ3JpZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMC4zKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTdWNjZXNzIG92ZXJsYXkg4oCUINC/0L7Rj9Cy0LvRj9C10YLRgdGPINC/0L7QstC10YDRhSDRhNC+0YDQvNGLINC/0L7RgdC70LUg0L7RgtC/0YDQsNCy0LrQuFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX3N1Y2Nlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAycmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYy1yYWRpdXMpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAwLjVzIHZhcigtLWZjLWVhc2UpLFxuICAgIHZpc2liaWxpdHkgMC41cyB2YXIoLS1mYy1lYXNlKSxcbiAgICB0cmFuc2Zvcm0gMC41cyB2YXIoLS1mYy1lYXNlKTtcbiAgei1pbmRleDogMTA7XG59XG5cbi5mb3JtLWNhbGxiYWNrLmlzLXN1Y2Nlc3MgLmZvcm0tY2FsbGJhY2tfX3N1Y2Nlc3Mge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4uZm9ybS1jYWxsYmFjay5pcy1zdWNjZXNzIC5mb3JtLWNhbGxiYWNrX19ncmlkIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWNjZXNzLWljb24ge1xuICB3aWR0aDogNi40cmVtO1xuICBoZWlnaHQ6IDYuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1zdWNjZXNzLWJnKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFuaW1hdGlvbjogZmNTdWNjZXNzUG9wIDAuNnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGJvdGg7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWNjZXNzLWljb24gc3ZnIHtcbiAgd2lkdGg6IDMuMnJlbTtcbiAgaGVpZ2h0OiAzLjJyZW07XG4gIGNvbG9yOiB2YXIoLS1mYy1zdWNjZXNzKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Y2Nlc3MtaWNvbiBzdmcgcGF0aCB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDMwO1xuICBzdHJva2UtZGFzaG9mZnNldDogMzA7XG4gIGFuaW1hdGlvbjogZmNDaGVja0RyYXcgMC41cyAwLjNzIHZhcigtLWZjLWVhc2UpIGZvcndhcmRzO1xufVxuXG4uZm9ybS1jYWxsYmFja19fc3VjY2Vzcy10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mYy1mb250KTtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tZmMtdGV4dCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcmVtKTtcbiAgYW5pbWF0aW9uOiBmY0ZhZGVVcCAwLjRzIDAuNHMgdmFyKC0tZmMtZWFzZSkgZm9yd2FyZHM7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWNjZXNzLXRleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tZmMtZm9udCk7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogdmFyKC0tZmMtbGFiZWwpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXJlbSk7XG4gIGFuaW1hdGlvbjogZmNGYWRlVXAgMC40cyAwLjU1cyB2YXIoLS1mYy1lYXNlKSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBmY1N1Y2Nlc3NQb3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmY0NoZWNrRHJhdyB7XG4gIHRvIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZjRmFkZVVwIHtcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1mdWxsLFxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmZpZWxkLXN1Ym1pdCxcbi5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1ydWxlcyxcbi5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1jaGVja2JveCB7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJbnB1dCB3cmFwcGVyIOKAlCDRgdC+0LTQtdGA0LbQuNGCIGNvbnRyb2wgKyBmbG9hdGluZyBsYWJlbFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2lucHV0LXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICDQmtC+0L3RgtGA0L7Qu9GLOiBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSDigJQg0JXQlNCY0J3Qq9CZINCg0JDQl9Cc0JXQoFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogdmFyKC0tZmMtaGVpZ2h0KTtcbiAgcGFkZGluZzogMnJlbSAxLjZyZW0gMC44cmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZmMtZm9udCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6IHZhcigtLWZjLXRleHQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1iZyk7XG4gIGJvcmRlcjogdmFyKC0tZmMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmMtcmFkaXVzKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjpcbiAgICBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGJveC1zaGFkb3cgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY29udHJvbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZjLWJnLWhvdmVyKTtcbn1cblxuLyog0KTQvtC60YPRgSDQvNC10L3Rj9C10YIg0YbQstC10YIg0YHQsNC80L7QuSDQs9GA0LDQvdC40YbRiy4g0JrQvtC70YzRhtC+IGJveC1zaGFkb3cg0L/QvtCy0LXRgNGFINC90LXRkSDRh9C40YLQsNC10YLRgdGPINC60LDQuiDQstGC0L7RgNCw0Y8g0YDQsNC80LrQsCDigJRcbiAgINC/0L7Qu9C1INCy0YvQs9C70Y/QtNC40YIg0L7QsdCy0LXQtNGR0L3QvdGL0Lwg0LTQstCw0LbQtNGLLCDQvtGB0L7QsdC10L3QvdC+INC90LAgc2VsZWN0INGB0L4g0YHRgtGA0LXQu9C60L7QuS4gKi9cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMCAwIDAgLyAxNSUpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRmxvYXRpbmcgbGFiZWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDEuNnJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBmb250LXNpemU6IHZhcigtLWZjLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1mYy1sYWJlbCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOlxuICAgIHRvcCB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksXG4gICAgZm9udC1zaXplIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICBjb2xvciB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksXG4gICAgdHJhbnNmb3JtIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDMuMnJlbSk7XG59XG5cbi8qIExhYmVsINCw0LrRgtC40LLQvdGL0Lk6INC/0YDQuCDRhNC+0LrRg9GB0LUg0LjQu9C4INC30LDQv9C+0LvQvdC10L3QvdC+0YHRgtC4ICovXG4uZm9ybS1jYWxsYmFja19fY29udHJvbDpmb2N1cyB+IC5mb3JtLWNhbGxiYWNrX19sYWJlbCxcbi5mb3JtLWNhbGxiYWNrX19jb250cm9sOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiAxcmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplLXhzKTtcbiAgY29sb3I6IHZhcigtLWZjLWxhYmVsLWFjdGl2ZSk7XG59XG5cbi8qIExhYmVsINC00LvRjyBzZWxlY3Qg4oCUINCy0YHQtdCz0LTQsCDQv9C+0LTQvdGP0YIgKi9cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sLmNvbnRyb2wtc2VsZWN0IH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiAxcmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplLXhzKTtcbn1cblxuLyog0JTQu9GPIHRleHRhcmVhIGxhYmVsINC/0L7Qt9C40YbQuNC+0L3QuNGA0L7QstCw0L3QuNC1ICovXG4uZm9ybS1jYWxsYmFja19fY29udHJvbC5jb250cm9sLXRleHRhcmVhIH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiAxLjZyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wuY29udHJvbC10ZXh0YXJlYTpmb2N1cyB+IC5mb3JtLWNhbGxiYWNrX19sYWJlbCxcbi5mb3JtLWNhbGxiYWNrX19jb250cm9sLmNvbnRyb2wtdGV4dGFyZWE6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICB0b3A6IDAuOHJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBmb250LXNpemU6IHZhcigtLWZjLWZvbnQtc2l6ZS14cyk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19hc3RlcmlzayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTZWxlY3RcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qINCh0YLRgNC10LvQutCwINGB0LXQu9C10LrRgtCwINGA0LjRgdGD0LXRgtGB0Y8g0L7RgtC00LXQu9GM0L3Ri9C8INGN0LvQtdC80LXQvdGC0L7QvCDQv9C+0LLQtdGA0YUg0L/QvtC70Y8sINCwINC90LUg0YTQvtC90L7QvC5cbiAgINCk0L7QvdC+0Lwg0L7QvdCwINGD0LbQtSDQtNCy0LDQttC00Ysg0LvQvtC80LDQu9Cw0YHRjDog0LvRjtCx0LDRjyDQv9C70L7RidCw0LTQutCwLCDQv9C10YDQtdC+0L/RgNC10LTQtdC70LjQstGI0LDRjyBiYWNrZ3JvdW5kXG4gICDRgdC+0LrRgNCw0YnRkdC90L3QvtC5INC30LDQv9C40YHRjNGOLCDRgdCx0YDQsNGB0YvQstCw0LvQsCBiYWNrZ3JvdW5kLXJlcGVhdCDigJQg0Lgg0YHRgtGA0LXQu9C60LAg0YDQsNC30LzQvdC+0LbQsNC70LDRgdGMXG4gICDQv9C+INCy0YHQtdC5INGI0LjRgNC40L3QtSDQv9C+0LvRjy4g0JfQtNC10YHRjCDQtdGRINC90LXQu9GM0LfRjyDRgdCx0YDQvtGB0LjRgtGMINGB0LvRg9GH0LDQudC90L4uICovXG4uZm9ybS1jYWxsYmFja19fY29udHJvbC5jb250cm9sLXNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1yaWdodDogNHJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2lucHV0LXdyYXA6aGFzKC5jb250cm9sLXNlbGVjdCk6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDEuNnJlbTtcbiAgd2lkdGg6IDEuMnJlbTtcbiAgaGVpZ2h0OiAwLjdyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIG9wYWNpdHk6IDAuNTU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSk7XG4gIG1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nNycgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMS41JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQy9zdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG59XG5cbi5mb3JtLWNhbGxiYWNrX19pbnB1dC13cmFwOmhhcyguY29udHJvbC1zZWxlY3Q6aG92ZXIpOjphZnRlcixcbi5mb3JtLWNhbGxiYWNrX19pbnB1dC13cmFwOmhhcyguY29udHJvbC1zZWxlY3Q6Zm9jdXMpOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUZXh0YXJlYVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wuY29udHJvbC10ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogMTJyZW07XG4gIHBhZGRpbmctdG9wOiAyLjRyZW07XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGaWxlIHVwbG9hZCDigJQgZHJhZyAmIGRyb3Ag0LfQvtC90LBcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLXpvbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEuNnJlbTtcbiAgcGFkZGluZzogMnJlbSAyLjRyZW07XG4gIGJvcmRlcjogMXB4IGRhc2hlZCByZ2IoMCAwIDAgLyAxMCUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYy1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1iZyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjpcbiAgICBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIHRyYW5zZm9ybSB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLXpvbmU6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYigwIDAgMCAvIDIwJSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZjLWJnLWhvdmVyKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpbGUtem9uZTphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS16b25lLmRyYWdvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYy1hY2NlbnQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCAwIDAgLyAzJSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiA0LjhyZW07XG4gIGhlaWdodDogNC44cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWZjLWFjY2VudCk7XG4gIGJhY2tncm91bmQ6IHJnYigwIDAgMCAvIDQlKTtcbiAgYm9yZGVyLXJhZGl1czogMC44cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1pY29uIHN2ZyB7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS16b25lOmhvdmVyIC5mb3JtLWNhbGxiYWNrX19maWxlLWljb24ge1xuICBjb2xvcjogdmFyKC0tZmMtbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCAwIDAgLyA4JSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpbGUtdGl0bGUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWZjLXRleHQpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1oaW50IHtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUtc20pO1xuICBjb2xvcjogdmFyKC0tZmMtbGFiZWwpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuOHJlbTtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBmb250LXNpemU6IHZhcigtLWZjLWZvbnQtc2l6ZS1zbSk7XG4gIGNvbG9yOiB2YXIoLS1mYy1hY2NlbnQpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1saXN0OmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpbGUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjRyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogcmdiKDAgMCAwIC8gNSUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplLXNtKTtcbiAgY29sb3I6IHZhcigtLWZjLXRleHQpO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ2hlY2tib3hcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19jaGVja2JveC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMS4ycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwYWRkaW5nOiAwLjRyZW0gMDtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWJveCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMi4ycmVtO1xuICBoZWlnaHQ6IDIuMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogdmFyKC0tZmMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1iZyk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGNvbG9yIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICB0cmFuc2Zvcm0gdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtaWNvbiB7XG4gIHdpZHRoOiAxLjJyZW07XG4gIGhlaWdodDogMS4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtaW5wdXQ6Y2hlY2tlZCArIC5mb3JtLWNhbGxiYWNrX19jaGVja2JveC1ib3gge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1jaGVja2VkLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYy1jaGVja2VkLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1mYy1jaGVja2VkLW1hcmspO1xuICBhbmltYXRpb246IGNoZWNrUG9wIDAuM3MgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19jaGVja2JveC1pbnB1dDpmb2N1cy12aXNpYmxlICsgLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWJveCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2IoMCAwIDAgLyAxMCUpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtd3JhcDpob3ZlciAuZm9ybS1jYWxsYmFja19fY2hlY2tib3gtYm94IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYy1ib3JkZXItaG92ZXIpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogdmFyKC0tZmMtbXV0ZWQpO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nLXRvcDogMC4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtdGV4dCBhIHtcbiAgY29sb3I6IHZhcigtLWZjLWFjY2VudCk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMnJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtdGV4dCBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWZjLWFjY2VudC1ob3ZlciwgdmFyKC0tZmMtYWNjZW50KSk7XG59XG5cbkBrZXlmcmFtZXMgY2hlY2tQb3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJhZGlvXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1jYWxsYmFja19fbGVnZW5kIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1mYy10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMS42cmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC44cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19yYWRpby1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3JhZGlvLWRvdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyOiB2YXIoLS1mYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8tZG90OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmMtbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksIGhlaWdodCB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19yYWRpby1pbnB1dDpjaGVja2VkICsgLmZvcm0tY2FsbGJhY2tfX3JhZGlvLWRvdCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmMtbXV0ZWQpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8taW5wdXQ6Y2hlY2tlZCArIC5mb3JtLWNhbGxiYWNrX19yYWRpby1kb3Q6OmFmdGVyIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3JhZGlvLWlucHV0OmZvY3VzLXZpc2libGUgKyAuZm9ybS1jYWxsYmFja19fcmFkaW8tZG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYigwIDAgMCAvIDEyJSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19yYWRpby10ZXh0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1mYy10ZXh0KTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN1Ym1pdCBidXR0b25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQge1xuICBoZWlnaHQ6IHZhcigtLWZjLWhlaWdodCk7XG4gIHBhZGRpbmc6IDAgMy4ycmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZmMtZm9udCk7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYy1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGJveC1zaGFkb3cgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fc3VibWl0OmhvdmVyIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMTAwcmVtIHJnYigwIDAgMCAvIDglKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdDphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxMDByZW0gcmdiKDAgMCAwIC8gMTYlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC1pY29uIHN2ZyB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQ6aG92ZXIgLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC1pY29uIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG5cbi8qIExvYWRpbmcgJiBzdWJtaXQgaW5uZXIgdHJhbnNpdGlvbnMgKi9cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQtdGV4dCxcbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQtaWNvbiB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyB2YXIoLS1mYy1lYXNlKSwgdHJhbnNmb3JtIDAuM3MgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQtc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMzAlKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgdmFyKC0tZmMtZWFzZSksIHRyYW5zZm9ybSAwLjNzIHZhcigtLWZjLWVhc2UpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC5sb2FkaW5nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQubG9hZGluZyAuZm9ybS1jYWxsYmFja19fc3VibWl0LXRleHQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuOHJlbSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQubG9hZGluZyAuZm9ybS1jYWxsYmFja19fc3VibWl0LWljb24ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXJlbSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQubG9hZGluZyAuZm9ybS1jYWxsYmFja19fc3VibWl0LXNwaW5uZXIge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBhbmltYXRpb246IGZjU3BpbiAwLjdzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBmY1NwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUnVsZXMgdGV4dFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmZpZWxkLXJ1bGVzIHtcbiAgcGFkZGluZy10b3A6IDAuNHJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3J1bGVzLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUtc20pO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tZmMtYWNjZW50KTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3J1bGVzLXRleHQgYSB7XG4gIGNvbG9yOiB2YXIoLS1mYy1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMnJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcnVsZXMtdGV4dCBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTMpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRXJyb3Igc3RhdGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBQZXItZmllbGQgZXJyb3IgbWVzc2FnZSAqL1xuLmZvcm0tY2FsbGJhY2tfX2Vycm9yLW1zZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IHZhcigtLWZjLWZvbnQtc2l6ZS14cyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gIHBhZGRpbmctdG9wOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IG1pbi1oZWlnaHQgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLCBtYXJnaW4gdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZXJyb3ItbXNnOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogRXJyb3Igc3RhdGUgb24gZmllbGQgd3JhcHBlciAqL1xuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLWJnKTtcbiAgYW5pbWF0aW9uOiBmY1NoYWtlIDAuNHMgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi8qINCjINC/0L7Qu9GPINGBINC+0YjQuNCx0LrQvtC5INCz0YDQsNC90LjRhtCwINC4INGC0LDQuiDQutGA0LDRgdC90LDRjyDigJQg0LrQvtC70YzRhtC+INC/0L7QstC10YDRhSDQvdC10ZEg0LTQsNCy0LDQu9C+INCy0YLQvtGA0YPRjiDRgNCw0LzQutGDLiAqL1xuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWVsZC5lcnJvciAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmllbGQuZXJyb3IgLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWJveCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xuICBhbmltYXRpb246IGZjU2hha2UgMC40cyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19jaGVja2JveC10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19maWxlLXpvbmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItYmcpO1xuICBhbmltYXRpb246IGZjU2hha2UgMC40cyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19yYWRpby1kb3Qge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbn1cblxuLyogRXJyb3IgYmFubmVyICovXG4uZm9ybS1jYWxsYmFja19fZXJyb3ItYmFubmVyIHtcbiAgcGFkZGluZzogMS4ycmVtIDEuNnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjQ0IDY3IDU0IC8gMjAlKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmMtcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIHZhcigtLWZjLWVhc2UpLCB0cmFuc2Zvcm0gMC4zcyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2Vycm9yLWJhbm5lci5oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuOHJlbSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19lcnJvci1iYW5uZXI6bm90KC5oaWRkZW4pIHtcbiAgYW5pbWF0aW9uOiBmY1NsaWRlRG93biAwLjM1cyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuQGtleWZyYW1lcyBmY1NsaWRlRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjJyZW0pO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbi5mb3JtLWNhbGxiYWNrX19lcnJvci10ZXh0IHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG59XG5cbkBrZXlmcmFtZXMgZmNTaGFrZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvY3VzLXZpc2libGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qINCk0L7QutGD0YEg0YMg0L/QvtC70Y8g0L/QvtC60LDQt9GL0LLQsNC10YIg0LXQs9C+INGB0L7QsdGB0YLQstC10L3QvdCw0Y8g0LPRgNCw0L3QuNGG0LAuINCe0YLQtNC10LvRjNC90YvQuSBvdXRsaW5lINGBINC+0YLRgdGC0YPQv9C+0Lwg0LvQvtC20LjQu9GB0Y9cbiAgINC/0L7QstC10YDRhSDQvdC10ZEg0LLRgtC+0YDQvtC5INGA0LDQvNC60L7QuSDigJQg0L3QsCDQvNC+0LHQuNC70YzQvdGL0YUg0L7RgdC+0LHQtdC90L3QviDQt9Cw0LzQtdGC0L3Qvi4g0KMg0LrQvdC+0L/QutC4IG91dGxpbmUg0L7RgdGC0LDRkdGC0YHRjzpcbiAgINCz0YDQsNC90LjRhtGLINGDINC90LXRkSDQvdC10YIsINC4INCx0LXQtyDQvdC10LPQviDRhNC+0LrRg9GBINGBINC60LvQsNCy0LjQsNGC0YPRgNGLINC90LUg0LLQuNC00LXQvS4gKi9cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWZjLWFjY2VudCk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1mYy1hY2NlbnQpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQWNjZXNzaWJpbGl0eTogcHJlZmVycy1yZWR1Y2VkLW1vdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZvcm0tY2FsbGJhY2sgKixcbiAgLmZvcm0tY2FsbGJhY2sgKjo6YmVmb3JlLFxuICAuZm9ybS1jYWxsYmFjayAqOjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgINCf0L7QtNGB0LrQsNC30LrQsCDQstC80LXRgdGC0L4g0L/Qu9Cw0LLQsNGO0YnQtdC5INC80LXRgtC60LhcbiAgINCn0LDRgdGC0Ywg0L/Qu9C+0YnQsNC00L7QuiDRgtCw0Log0LfQsNC00YPQvNCw0L3QsCDQtNC40LfQsNC50L3QvtC8OiDQv9C+0LTQv9C40YHRjCDRgdGC0L7QuNGCINCy0L3Rg9GC0YDQuCDQv9C+0LvRjyDQuCDQuNGB0YfQtdC30LDQtdGCLFxuICAg0LrQvtCz0LTQsCDRh9C10LvQvtCy0LXQuiDQvdCw0YfQuNC90LDQtdGCINC/0LjRgdCw0YLRjC4g0KDQsNC30LzQtdGC0LrQsCDRgtCwINC20LUsINC80LXQvdGP0LXRgtGB0Y8g0YLQvtC70YzQutC+INC+0YTQvtGA0LzQu9C10L3QuNC1LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2stLWhpbnQgLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUpO1xuICBjb2xvcjogdmFyKC0tZmMtbGFiZWwpO1xufVxuXG4uZm9ybS1jYWxsYmFjay0taGludCAuZm9ybS1jYWxsYmFja19fY29udHJvbDpmb2N1cyB+IC5mb3JtLWNhbGxiYWNrX19sYWJlbCxcbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19jb250cm9sOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiDQn9C+0LvQtSDQsiDRjdGC0L7QvCDRgNC10LbQuNC80LUg0L3QtSDQvtGB0YLQsNCy0LvRj9C10YIg0LzQtdGB0YLQsCDQv9C+0LQg0L/QvtC00L3Rj9GC0YPRjiDQv9C+0LTQv9C40YHRjC4gKi9cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19jb250cm9sIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4vKiDQntCx0Y/Qt9Cw0YLQtdC70YzQvdC+0YHRgtGMINCyINGC0LDQutC+0Lwg0L7RhNC+0YDQvNC70LXQvdC40Lgg0L3QtSDQv9C+0LrQsNC30YvQstCw0Y7RgiDQt9Cy0ZHQt9C00L7Rh9C60L7QuTog0L/QvtC00L/QuNGB0Ywg0LjRgdGH0LXQt9Cw0LXRgiDQv9GA0Lgg0LLQstC+0LTQtS4gKi9cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19hc3RlcmlzayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qINCf0L7RgNGP0LTQvtC6IMKr0LrQvdC+0L/QutCwLCDQt9Cw0YLQtdC8INGB0L7Qs9C70LDRgdC40LXCuyDigJQg0YLQsNC6INGB0LLRkdGA0YHRgtCw0L3RiyDQv9C70L7RidCw0LTQutC4LCDQs9C00LUg0L/QvtC00L/QuNGB0Ywg0YHRgtC+0LjRgiDQv9C+0LTRgdC60LDQt9C60L7QuTpcbiAgINC00LXQudGB0YLQstC40LUg0LHQu9C40LbQtSDQuiDQv9C+0LvRj9C8LCDRjtGA0LjQtNC40YfQtdGB0LrQuNC5INGC0LXQutGB0YIg0YPRhdC+0LTQuNGCINCy0L3QuNC3LiAqL1xuLmZvcm0tY2FsbGJhY2stLWhpbnQgLmZvcm0tY2FsbGJhY2tfX2dyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZm9ybS1jYWxsYmFjay0taGludCAuZm9ybS1jYWxsYmFja19fZmllbGQuZmllbGQtc3VibWl0IHtcbiAgb3JkZXI6IDE7XG59XG5cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1jaGVja2JveCxcbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1ydWxlcyB7XG4gIG9yZGVyOiAyO1xufVxuXG4vKiDQn9Cw0LvQuNGC0YDQsCDQv9C70L7RidCw0LTQutC4LiDQn9C+0YHQsNC00LrQsCDRgtGR0LzQvdCw0Y8sINCw0LrRhtC10L3RgiDigJQg0L7RgNCw0L3QttC10LLRi9C5INC60LDQuiDRgyDQutC90L7Qv9C+0LosINGB0LrRgNGD0LPQu9C10L3QuNC1INGC0L7QttC1INC40YUuXG4gICDQn9GA0LDQstC40LvQsCDQv9GA0LjRhdC+0LTRj9GCINC40Lcg0Y/QtNGA0LAsINC30LTQtdGB0Ywg0YLQvtC70YzQutC+INGG0LLQtdGC0LAg0Lgg0LPQtdC+0LzQtdGC0YDQuNGPLiAqL1xuLmZvcm0tY2FsbGJhY2sge1xuICAtLWZjLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1mYy1iZy1ob3ZlcjogcmdiKDI1NSAyNTUgMjU1IC8gNiUpO1xuICAtLWZjLWJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDI1JSk7XG4gIC0tZmMtYm9yZGVyLWhvdmVyOiByZ2IoMjU1IDI1NSAyNTUgLyA1NSUpO1xuICAtLWZjLXRleHQ6IHZhcigtLWNvbG9yLTEpO1xuICAtLWZjLWxhYmVsOiByZ2IoMjU1IDI1NSAyNTUgLyA2MCUpO1xuICAtLWZjLWxhYmVsLWFjdGl2ZTogcmdiKDI1NSAyNTUgMjU1IC8gNzUlKTtcbiAgLS1mYy1hY2NlbnQ6IHZhcigtLWNvbG9yLTMpO1xuICAtLWZjLW11dGVkOiByZ2IoMjU1IDI1NSAyNTUgLyA3MCUpO1xuICAtLWZjLWZvY3VzLXJpbmc6IHZhcigtLWNvbG9yLTMpO1xuICAtLWZjLWNoZWNrZWQtYmc6IHZhcigtLWNvbG9yLTMpO1xuICAtLWZjLWNoZWNrZWQtYm9yZGVyOiB2YXIoLS1jb2xvci0zKTtcbiAgLS1mYy1jaGVja2VkLW1hcms6IHZhcigtLWNvbG9yLTEpO1xuICAtLWZjLXJhZGl1czogMDtcblxuICAvKiDQn9C+0LvRjyDQsdC10Lcg0YDQsNC80LrQuCDQt9Cw0L3QuNC80LDRjtGCINC80LXQvdGM0YjQtSDQvNC10YHRgtCwLCDRh9C10Lwg0LrQvtGA0L7QsdC60Lg6INCy0YvRgdC+0YLQsCDQuCDQv9GA0L7RgdCy0LXRgiDQvNC10LbQtNGDINC90LjQvNC4XG4gICAgINCy0L7Qt9Cy0YDQsNGJ0LXQvdGLINC6INC/0YDQtdC20L3QuNC8IOKAlCDQuNC90LDRh9C1INGE0L7RgNC80LAg0YDQsNGB0YLRj9Cz0LjQstCw0LXRgtGB0Y8g0L3QsCDQu9C40YjQvdC40Lkg0Y3QutGA0LDQvS4gKi9cbiAgLS1mYy1oZWlnaHQ6IDQuNHJlbTtcbiAgLS1mYy1nYXA6IDEuMnJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2dyaWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbn1cblxuLyog0J/QvtC70Y8g0Y3RgtC+0Lkg0L/Qu9C+0YnQsNC00LrQuCDigJQg0LvQuNC90LjRjyDQv9C+0LQg0YLQtdC60YHRgtC+0LwsINCwINC90LUg0YDQsNC80LrQsCDQv9C+INC/0LXRgNC40LzQtdGC0YDRgzog0YLQsNC6INGE0L7RgNC80LAg0LLRi9Cz0LvRj9C00LXQu9CwXG4gICDQtNC+INC/0LXRgNC10LLQvtC00LAg0L3QsCDQvtCx0YnQuNC5INC60L7QvNC/0L7QvdC10L3RgiDQuCDRgtCw0Log0L7QvdCwINC00LXRgNC20LjRgtGB0Y8g0YDRj9C00L7QvCDRgSDQvtGB0YLQsNC70YzQvdC+0Lkg0LLRkdGA0YHRgtC60L7QuSDRgdCw0LnRgtCwLlxuICAg0J/QtdGA0LXQvtC/0YDQtdC00LXQu9GP0LXQvCDRgtC+0LvRjNC60L4g0YHQsNC80Lgg0LrQvtC90YLRgNC+0LvRizog0YDQsNC80LrQsCDRh9C10LrQsdC+0LrRgdCwINC4INC30L7QvdGLINGE0LDQudC70L7QsiDQv9GA0LjRhdC+0LTQuNGCINC40Lcg0Y/QtNGA0LAuICovXG4uZm9ybS1jYWxsYmFja19fY29udHJvbCB7XG4gIHBhZGRpbmctaW5saW5lOiAwO1xuXG4gIC8qINCi0L7Qu9GM0LrQviDRhtCy0LXRgjogYmFja2dyb3VuZC3RgdC+0LrRgNCw0YnQtdC90LjQtSDRgdCx0YDQvtGB0LjQu9C+INCx0YsgYmFja2dyb3VuZC1yZXBlYXQsINC4INGB0YLRgNC10LvQutCwINGB0LXQu9C10LrRgtCwXG4gICAgINGA0LDQt9C80L3QvtC20LjQu9Cw0YHRjCDQsdGLINC/0L4g0LLRgdC10Lkg0YjQuNGA0LjQvdC1INC/0L7Qu9GPLiAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiB2YXIoLS1mYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY29udHJvbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1mYy1ib3JkZXItaG92ZXIpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiDQn9C+0LTRgdC60LDQt9C60LAg0LLQvdGD0YLRgNC4INC/0L7Qu9GPINC90LDRh9C40L3QsNC10YLRgdGPINC+0YIg0YLQvtCz0L4g0LbQtSDQutGA0LDRjywg0YfRgtC+INC4INCy0LLQvtC00LjQvNGL0Lkg0YLQtdC60YHRgi4gKi9cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19sYWJlbCB7XG4gIGxlZnQ6IDA7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gNHJlbSk7XG59XG5cbi8qINCh0YLRgNC10LvQutCwINC/0YDQuNC20LjQvNCw0LXRgtGB0Y8g0Log0L/RgNCw0LLQvtC80YMg0LrRgNCw0Y4g0L/QvtC70Y86INGDINC/0L7Qu9C10Lkg0LHQtdC3INGA0LDQvNC60Lgg0LLQvdGD0YLRgNC10L3QvdC10LPQviDQvtGC0YHRgtGD0L/QsCDQvdC10YIuICovXG4uZm9ybS1jYWxsYmFja19fY29udHJvbC5jb250cm9sLXNlbGVjdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNHJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2lucHV0LXdyYXA6aGFzKC5jb250cm9sLXNlbGVjdCk6OmFmdGVyIHtcbiAgcmlnaHQ6IDA7XG59XG4iLCIvKiDQodGC0LjQu9C4INC00LvRjyBHTGlnaHRib3guICFpbXBvcnRhbnQg4oCUINC/0LXRgNC10L7Qv9GA0LXQtNC10LvQtdC90LjQtSDRgdGC0LjQu9C10Lkg0LHQuNCx0LvQuNC+0YLQtdC60LguICovXG5cbi8qINCR0LvQvtC60LjRgNC+0LLQutCwINGB0LrRgNC+0LvQu9CwINC/0YDQuCDQvtGC0LrRgNGL0YLQvtC8INC70LDQudGC0LHQvtC60YHQtSAqL1xuYm9keS5nbGlnaHRib3gtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbn1cblxuLyog0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSDRgdGC0LjQu9C4INC00LvRjyBHTGlnaHRib3ggKi9cbi5nbGlnaHRib3gtY29udGFpbmVyIHtcbiAgei1pbmRleDogOTk5OTtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC42O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbn1cblxuLyog0JDQvdC40LzQsNGG0LjQuCDQtNC70Y8g0L/Qu9Cw0LLQvdC+0LPQviDQv9C+0Y/QstC70LXQvdC40Y8v0LjRgdGH0LXQt9C90L7QstC10L3QuNGPICovXG4uZ2xpZ2h0Ym94LWNsb3NpbmcgLmdsaWdodGJveC1jb250YWluZXIsXG4uZ2xpZ2h0Ym94LWNsb3NpbmcgLmdsaWdodGJveC1jb250YWluZXIgLmdvdmVybGF5IHtcbiAgYW5pbWF0aW9uOiBmYWRlT3V0IDAuNXMgZWFzZTtcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8qINCj0LvRg9GH0YjQtdC90L3Ri9C1INGB0YLQuNC70Lgg0L3QsNCy0LjQs9Cw0YbQuNC4ICovXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nbmV4dCxcbi5nbGlnaHRib3gtY2xlYW4gLmdwcmV2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC42O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nbmV4dDpob3Zlcixcbi5nbGlnaHRib3gtY2xlYW4gLmdwcmV2OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLmdvdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMCAwIC8gOTIlKSAhaW1wb3J0YW50O1xufVxuXG4vKiDQpNC+0L0g0LzQvtC00LDQu9GM0L3QvtCz0L4g0L7QutC90LAgKi9cbi5nbGlnaHRib3gtY2xlYW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiDQodC60YDRi9Cy0LDQtdC8INC+0L/QuNGB0LDQvdC40LUg0LIg0LzQvtC00LDQu9GM0L3QvtC8INC+0LrQvdC1ICovXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nc2xpZGUtZGVzY3JpcHRpb24sXG4uZ2xpZ2h0Ym94LWNsZWFuIC5kZXNjcmlwdGlvbi1ib3R0b20ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qINCk0L7QvSDQtNC70Y8g0LrQvtC90YLQtdC90YLQsCDQvNC+0LTQsNC70YzQvdC+0LPQviDQvtC60L3QsCAqL1xuLmdpbmxpbmVkLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldiBzdmcgcGF0aCxcbi5nbGlnaHRib3gtY2xlYW4gLmduZXh0IHN2ZyBwYXRoLFxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlIHN2ZyBwYXRoIHtcbiAgZmlsbDogdmFyKC0tY29sb3ItMSkgIWltcG9ydGFudDtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ3NsaWRlLW1lZGlhIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiDQodGC0LjQu9C4INC00LvRjyBWSyDQstC40LTQtdC+INC60L7QvdGC0LXQudC90LXRgNCwICovXG4udmstdmlkZW8tY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA5MHZ3O1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnZrLXZpZGVvLWNvbnRhaW5lciBpZnJhbWUge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiKDAgMCAwIC8gMzAlKTtcbn1cblxuLyog0JDQtNCw0L/RgtC40LLQvdC+0YHRgtGMINC00LvRjyDQvNC+0LHQuNC70YzQvdGL0YUg0YPRgdGC0YDQvtC50YHRgtCyICovXG5AbWVkaWEgKHdpZHRoIDw9IDc2OHB4KSB7XG4gIC52ay12aWRlby1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogOTV2dztcbiAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuICB9XG4gIFxuICAudmstdmlkZW8tY29udGFpbmVyIGlmcmFtZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG59XG5cbi8qINCe0LHQtdGB0L/QtdGH0LjQstCw0LXQvCDQutC+0YDRgNC10LrRgtC90L7QtSDQvtGC0L7QsdGA0LDQttC10L3QuNC1INC60L7QvdGC0LXQvdGC0LAg0LIgR0xpZ2h0Ym94ICovXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nc2xpZGUtaW5uZXItY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufSIsIi5oZWFkaW5nIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gaGVhZGluZyAqL1xufVxuXG4uaGVhZGluZy1mbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn0gIiwiLm51bWJlcmVkLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cblxuLm51bWJlcmVkLWxpc3RfX2l0ZW0ge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xufVxuIiwiLnNsaWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5zbGlkZXIgLnN3aXBlci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKipcbiAqINCR0LDQt9C+0LLRi9C1INGB0YLQuNC70Lgg0LTQu9GPINGB0LvQsNC50LTQtdGA0L7QsiBTd2lwZXIuXG4gKiAhaW1wb3J0YW50IOKAlCDRgtC+0LvRjNC60L4g0LTQu9GPINC/0LXRgNC10L7Qv9GA0LXQtNC10LvQtdC90LjRjyDRgdGC0LjQu9C10Lkg0LHQuNCx0LvQuNC+0YLQtdC60LggKNC40L3Qu9Cw0LnQvS/QstGL0YHQvtC60LDRjyDRgdC/0LXRhtC40YTQuNGH0L3QvtGB0YLRjCkuXG4gKi9cblxuLyog0JrQvtC90YLQtdC50L3QtdGAINGB0LvQsNC50LTQtdGA0LAgKi9cbi5zd2lwZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbn1cblxuLyog0J7QsdC10YDRgtC60LAg0YHQu9Cw0LnQtNC10YDQsCAqL1xuLnN3aXBlci13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbn1cblxuLyog0KHRgtC40LvQuCDRgdC70LDQudC00LAgKi9cbi5zd2lwZXItc2xpZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qINCh0YLQuNC70Lgg0LTQu9GPINC90LDQstC40LPQsNGG0LjQvtC90L3Ri9GFINC60L3QvtC/0L7QuiAqL1xuLnN3aXBlci1idXR0b24tbmV4dCxcbi5zd2lwZXItYnV0dG9uLXByZXYge1xuICAtLXN3aXBlci1uYXZpZ2F0aW9uLXRvcC1vZmZzZXQ6IDUwJTtcbiAgLS1zd2lwZXItbmF2aWdhdGlvbi1zaWRlcy1vZmZzZXQ6IDA7XG4gIC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZTogM3JlbTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzcmVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tY29sb3IpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICB6LWluZGV4OiAxMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxufVxuXG4uc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1jb250YWluZXI6aG92ZXIgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLnN3aXBlci1jb250YWluZXI6aG92ZXIgLnN3aXBlci1idXR0b24tbmV4dDpob3Zlcixcbi5zd2lwZXItY29udGFpbmVyOmhvdmVyIC5zd2lwZXItYnV0dG9uLXByZXY6aG92ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbi5zd2lwZXItYnV0dG9uLW5leHQ6OmFmdGVyLFxuLnN3aXBlci1idXR0b24tcHJldjo6YWZ0ZXIge1xuICBmb250LXNpemU6IHZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLyog0KHRgtC40LvQuCDQtNC70Y8g0L/QsNCz0LjQvdCw0YbQuNC4ICovXG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICB3aWR0aDogMnJlbSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAuMXJlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1jb2xvcikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC4zICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQgIWltcG9ydGFudDtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbi8qINCh0YLQuNC70Lgg0LTQu9GPINC+0YLQutC70Y7Rh9C10L3QvdGL0YUg0LrQvdC+0L/QvtC6ICovXG4uc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMzUgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qINCa0L7QvNC/0LXQvdGB0LDRhtC40Y8g0L7RgtGB0YLRg9C/0LAg0LTQu9GPINCy0YHQtdGFINGB0LvQsNC50LTQtdGA0L7QsiDRgSBwYWRkaW5nLWJvdHRvbSAqL1xuLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1idXR0b24tbmV4dCxcbi5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItYnV0dG9uLXByZXYge1xuICBtYXJnaW4tdG9wOiBjYWxjKC0ycmVtKSAhaW1wb3J0YW50O1xufVxuXG4vKiDQo9Cx0LjRgNCw0LXQvCBwYWRkaW5nLCDQutC+0LPQtNCwINC/0LDQs9C40L3QsNGG0LjRjyDQvtGC0LrQu9GO0YfQtdC90LAgKi9cbi5zd2lwZXItY29udGFpbmVyW2RhdGEtc2V0dGluZ3MqPVwiXFxcInBhZ2luYXRpb25cXFwiOntcXFwiZW5hYmxlZFxcXCI6ZmFsc2V9XCJdLFxuLnN3aXBlci1jb250YWluZXIubm8tcGFnaW5hdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4vKiDQodC60YDRi9Cy0LDQtdC8INC/0LDQs9C40L3QsNGG0LjRjiDQv9C+0LvQvdC+0YHRgtGM0Y4sINC60L7Qs9C00LAg0L7QvdCwINC+0YLQutC70Y7Rh9C10L3QsCAqL1xuLnN3aXBlci1jb250YWluZXJbZGF0YS1zZXR0aW5ncyo9XCJcXFwicGFnaW5hdGlvblxcXCI6e1xcXCJlbmFibGVkXFxcIjpmYWxzZX1cIl0gLnN3aXBlci1wYWdpbmF0aW9uLFxuLnN3aXBlci1jb250YWluZXIubm8tcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiDQodCx0YDQsNGB0YvQstCw0LXQvCDQvtGC0YHRgtGD0L8g0LTQu9GPINC60L3QvtC/0L7Quiwg0LrQvtCz0LTQsCDQv9Cw0LPQuNC90LDRhtC40Y8g0L7RgtC60LvRjtGH0LXQvdCwICovXG4uc3dpcGVyLWNvbnRhaW5lcltkYXRhLXNldHRpbmdzKj1cIlxcXCJwYWdpbmF0aW9uXFxcIjp7XFxcImVuYWJsZWRcXFwiOmZhbHNlfVwiXSAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1jb250YWluZXJbZGF0YS1zZXR0aW5ncyo9XCJcXFwicGFnaW5hdGlvblxcXCI6e1xcXCJlbmFibGVkXFxcIjpmYWxzZX1cIl0gLnN3aXBlci1idXR0b24tcHJldixcbi5zd2lwZXItY29udGFpbmVyLm5vLXBhZ2luYXRpb24gLnN3aXBlci1idXR0b24tbmV4dCxcbi5zd2lwZXItY29udGFpbmVyLm5vLXBhZ2luYXRpb24gLnN3aXBlci1idXR0b24tcHJldiB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cbiIsIi5zcG9pbGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1ib3R0b206IDAuMXJlbSBzb2xpZCB2YXIoLS1jb2xvci02KTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG59XG5cbi5zcG9pbGVyX19pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zcG9pbGVyX19pdGVtLnRpdGxlLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNwb2lsZXJfX2l0ZW0udGl0bGUtd3JhcCAuc3BvaWxlcl9faXRlbS1pY29uLXdyYXAge1xuICB3aWR0aDogMC43NXJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zcG9pbGVyX19pdGVtLnRpdGxlLXdyYXAuYWN0aXZlIC5zcG9pbGVyX19pdGVtLWljb24td3JhcHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnNwb2lsZXJfX2l0ZW0uZGVzYy13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvKiDQn9GA0LXQtNC+0YLQstGA0LDRidCw0LXQvCDQvdCw0LXQt9C20LDQvdC40LUg0YLQtdC60YHRgtCwICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcblxuICAvKiDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QsNGPINC30LDRidC40YLQsCDQvtGCINC90LDQtdC30LbQsNC90LjRjyAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLyog0KPQsdC40YDQsNC10Lwg0L7Qs9GA0LDQvdC40YfQtdC90LjQtSBtYXgtaGVpZ2h0INC00LvRjyDQsNC60YLQuNCy0L3Ri9GFINGB0L/QvtC50LvQtdGA0L7QsiAqL1xuLnNwb2lsZXIuYWN0aXZlIC5zcG9pbGVyX19pdGVtLmRlc2Mtd3JhcCB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiDQodGC0LjQu9C4INC00LvRjyDQvdC10LDQutGC0LjQstC90YvRhSDRgdC/0L7QudC70LXRgNC+0LIgKi9cbi5zcG9pbGVyOm5vdCguYWN0aXZlKSAuc3BvaWxlcl9faXRlbS5kZXNjLXdyYXAge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiDQodGC0LjQu9C4INC00LvRjyDQvtC/0LjRgdCw0L3QuNGPINCy0L3Rg9GC0YDQuCDRgdC/0L7QudC70LXRgNCwICovXG4uc3BvaWxlcl9fZGVzYyB7XG4gIHdpZHRoOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS41O1xuXG4gIC8qINCf0YDQtdC00L7RgtCy0YDQsNGJ0LDQtdC8INC90LDQtdC30LbQsNC90LjQtSAqL1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gIC8qINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdCw0Y8g0LfQsNGJ0LjRgtCwICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QsNGPINC30LDRidC40YLQsCDQvtGCINC90LDQtdC30LbQsNC90LjRjyAqL1xuLnNwb2lsZXJfX2Rlc2M6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qINCf0YDQtdC00L7RgtCy0YDQsNGJ0LDQtdC8INC90LDQtdC30LbQsNC90LjQtSDQstC+INCy0YDQtdC80Y8g0LDQvdC40LzQsNGG0LjQuCAqL1xuLnNwb2lsZXJfX2l0ZW0uZGVzYy13cmFwW3N0eWxlKj1cIm1heC1oZWlnaHRcIl0ge1xuICB3aWxsLWNoYW5nZTogbWF4LWhlaWdodDtcbn1cblxuLyog0KPQu9GD0YfRiNC10L3QvdCw0Y8g0LDQvdC40LzQsNGG0LjRjyDQtNC70Y8g0L/Qu9Cw0LLQvdC+0LPQviDRgdCy0L7RgNCw0YfQuNCy0LDQvdC40Y8gKi9cbi5zcG9pbGVyX19pdGVtLmRlc2Mtd3JhcCB7XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuIiwiLmNhcmQtb3duZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAzcmVtO1xuICB9XG59XG5cbi5jYXJkLW93bmVyIC5jYXJkX19pdGVtLmNvdmVyLXdyYXAge1xuICB3aWR0aDogN3JlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlLW91dDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB3aWR0aDogMTdyZW07XG4gIH1cbn1cblxuLmNhcmQtb3duZXIgLmNhcmRfX2l0ZW0uY292ZXItd3JhcCBpbWcge1xufVxuXG4uY2FyZC1vd25lciAuY2FyZF9faXRlbS50aXRsZS13cmFwIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG59XG5cbi5jYXJkLW93bmVyOmhvdmVyIC5jYXJkX19pdGVtLmNvdmVyLXdyYXAge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTAuNXJlbSk7XG59XG5cbi5jYXJkLW93bmVyOmhvdmVyIC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC41cmVtKTtcbn1cblxuLmNhcmQtb3duZXIgLnRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmb250LXNpemU6IDEuMWVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gIH1cbn0iLCIuY2FyZC1uYXYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIGNvbnRhaW5lci1uYW1lOiBjYXJkLW5hdjtcblxuICBAY29udGFpbmVyIGNhcmQtbmF2IChtaW4td2lkdGg6IDc1cmVtKSB7XG4gICAgcGFkZGluZzogNHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA0cmVtO1xuICB9XG59XG5cbi5jYXJkLW5hdiAuY2FyZF9faXRlbS5jb3Zlci13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNhcmQtbmF2IC5jYXJkX19pdGVtLmNvdmVyLXdyYXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBoc2woMGRlZyAwJSAwJSAvIDIwJSk7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5jYXJkLW5hdiAuY2FyZF9fY292ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzcyBlYXNlLW91dDtcbn1cblxuLmNhcmQtbmF2LmFuaW1hdGlvbi16b29tOmhvdmVyIC5jYXJkX19jb3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG4gIFxuLmNhcmQtbmF2IC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuOWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jYXJkLW5hdiAuY2FyZF9fc2VwYXJhdG9yIHtcbiAgd2lkdGg6IDAuMXJlbTtcbiAgaGVpZ2h0OiA0cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIGZvbnQtc2l6ZTogMDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gIEBjb250YWluZXIgY2FyZC1uYXYgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgICBoZWlnaHQ6IDUuMzNyZW07XG4gIH1cbn1cblxuQG1lZGlhIG5vdCAoLS1zbSkge1xuICAuY2FyZC1uYXYgLmNhcmRfX2l0ZW0udGl0bGUtd3JhcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC43NWVtO1xuICB9XG5cbiAgLmNhcmQtbmF2IC5jYXJkX19zZXBhcmF0b3Ige1xuICAgIHdpZHRoOiA4cmVtO1xuICAgIGhlaWdodDogMC4xcmVtO1xuICB9XG59XG5cbi5jYXJkLW5hdi50ZXh0LWNlbnRlciAuY2FyZF9faXRlbS50aXRsZS13cmFwIHtcbiAgQGNvbnRhaW5lciBjYXJkLW5hdiAobWluLXdpZHRoOiA3NXJlbSkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uY2FyZC1uYXYgLmNhcmRfX2l0ZW0udGl0bGUtd3JhcCAuY2FyZF9fdGl0bGUge1xuICBmb250LXNpemU6IDJlbTtcblxuICBAY29udGFpbmVyIGNhcmQtbmF2IChtaW4td2lkdGg6IDc1cmVtKSB7XG4gICAgZm9udC1zaXplOiAyLjVlbTtcbiAgfVxufVxuIiwiLmJ1dHRvbi1zZWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDFyZW07XG4gIHBhZGRpbmc6IDEuMnJlbSAycmVtO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgIzAwMCwgIzAwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC40cyBlYXNlLW91dDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDExcmVtO1xuICAgIHBhZGRpbmc6IDEuNHJlbSAzcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDRyZW07XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtMyk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICB9XG59XG5cbi5idXR0b24tc2VjdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG9wYWNpdHk6IDA7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLmJ1dHRvbi1zZWN0aW9uOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuYnV0dG9uLXNlY3Rpb246aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5idXR0b24tc2VjdGlvbl9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLmJ1dHRvbi1zZWN0aW9uX19pdGVtLnRpdGxlLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJ1dHRvbi1zZWN0aW9uX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogNDAwO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcCB7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLW91dDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB3aWR0aDogNHJlbTtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuXG4uYnV0dG9uLXNlY3Rpb25fX2l0ZW0uaWNvbi13cmFwIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5idXR0b24tc2VjdGlvbl9faXRlbS5pY29uLXdyYXAuZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjM0E5NTUwO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICB9XG59XG5cbi5idXR0b24tc2VjdGlvbl9faXRlbS5pY29uLXdyYXAuYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMwMDhBQ0Y7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcC5yZWQge1xuICBiYWNrZ3JvdW5kOiAjQzcyMjI5O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICB9XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLmJ1dHRvbi1zZWN0aW9uOmhvdmVyIC5idXR0b24tc2VjdGlvbl9faXRlbS5pY29uLXdyYXAuZ3JlZW4ge1xuICAgIGJhY2tncm91bmQ6ICMzQTk1NTA7XG4gIH1cblxuICAuYnV0dG9uLXNlY3Rpb246aG92ZXIgLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcC5ibHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDA4QUNGO1xuICB9XG5cbiAgLmJ1dHRvbi1zZWN0aW9uOmhvdmVyIC5idXR0b24tc2VjdGlvbl9faXRlbS5pY29uLXdyYXAucmVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjQzcyMjI5O1xuICB9XG59XG4iLCIuY2FyZC1ncmFkaWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtMyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICBjb250YWluZXItbmFtZTogY2FyZC1ncmFkaWVudDtcblxuICBAY29udGFpbmVyIGNhcmQtZ3JhZGllbnQgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgICBwYWRkaW5nOiA0cmVtO1xuICAgIGdhcDogMS4yNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA0cmVtO1xuICB9XG59XG5cbi5jYXJkLWdyYWRpZW50X19jb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2Utb3V0O1xufVxuXG4vKiBDU1Mt0YDQsNC00LjQsNC70YzQvdGL0LUg0LPRgNCw0LTQuNC10L3RgtGLINC60LDQuiDQt9Cw0LzQtdC90LAgUE5HICovXG4uY2FyZC1ncmFkaWVudF9fY292ZXIuZ3JhZGllbnQtcmVkIHtcbiAgYmFja2dyb3VuZDpcbiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA3MCUgMTMwJSBhdCAxMDAlIDExMCUsXG4gICAgICAjZTIxMTAwIDAlLFxuICAgICAgIzhhMDcwMCAxOCUsXG4gICAgICAjMmEwMzAwIDQ1JSxcbiAgICAgICMwMDAgODAlKTtcbn1cblxuLmNhcmQtZ3JhZGllbnRfX2NvdmVyLmdyYWRpZW50LXN1bnNldCB7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSAzMzBweCBhdCA1MCUgMTAwJSxcbiAgICAgICMwMDAgMCUsICMyYTA5MDAgMjUlLCAjN2ExZjAyIDU1JSwgdHJhbnNwYXJlbnQgOTAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIDI0MHB4IGF0IDIyJSAwJSxcbiAgICAgICMwMDAgMCUsICMyYTA5MDAgMjUlLCAjN2ExZjAyIDU1JSwgdHJhbnNwYXJlbnQgOTAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIDI0MHB4IGF0IDc4JSAwJSxcbiAgICAgICMwMDAgMCUsICMyYTA5MDAgMjUlLCAjN2ExZjAyIDU1JSwgdHJhbnNwYXJlbnQgOTAlKSxcbiAgICAjZmY1NjFlO1xufVxuXG4uY2FyZC1ncmFkaWVudC5hbmltYXRpb24tem9vbSAuY2FyZC1ncmFkaWVudF9fY292ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG59XG5cbi5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi16b29tOmhvdmVyIC5jYXJkLWdyYWRpZW50X19jb3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS42KTtcbn1cblxuLmNhcmQtZ3JhZGllbnQuYW5pbWF0aW9uLXNoaWZ0LWRvd24gLmNhcmQtZ3JhZGllbnRfX2NvdmVyIHtcbiAgaW5zZXQ6IC0yNSUgMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi1zaGlmdC1kb3duOmhvdmVyIC5jYXJkLWdyYWRpZW50X19jb3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xufVxuXG4vKiDQn9Cw0YDQsNC70LvQsNC60YEg0YTQvtC90LAg0LfQsCDQutGD0YDRgdC+0YDQvtC8ICjQu9C+0LPQuNC60LAg4oCUINCyIGpzL2NvbXBvbmVudHMvY2FyZC1ncmFkaWVudC1wYXJhbGxheC5qcykgKi9cbi5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi1wYXJhbGxheCAuY2FyZC1ncmFkaWVudF9fY292ZXIge1xuICBpbnNldDogLTglIC00JTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0O1xufVxuXG4uY2FyZC1ncmFkaWVudC5hbmltYXRpb24tcGFyYWxsYXgubGluazpob3Zlcixcbi5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi1wYXJhbGxheC5saW5rOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jYXJkLWdyYWRpZW50IC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuOWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jYXJkLWdyYWRpZW50IC5jYXJkX19pdGVtLnRpdGxlLXdyYXAgLmNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyZW07XG5cbiAgQGNvbnRhaW5lciBjYXJkLWdyYWRpZW50IChtaW4td2lkdGg6IDc1cmVtKSB7XG4gICAgZm9udC1zaXplOiAyLjVlbTtcbiAgfVxufVxuXG4uY2FyZC1ncmFkaWVudCAuY2FyZF9fc2VwYXJhdG9yIHtcbiAgd2lkdGg6IDAuMXJlbTtcbiAgaGVpZ2h0OiA0cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIGZvbnQtc2l6ZTogMDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gIEBjb250YWluZXIgY2FyZC1ncmFkaWVudCAobWluLXdpZHRoOiA3NXJlbSkge1xuICAgIGhlaWdodDogNS4zM3JlbTtcbiAgfVxufVxuXG4vKiDQnNC+0LHQuNC70YzQvdCw0Y8g0LLQtdGA0YHQuNGPOiDQt9Cw0LPQvtC70L7QstC60Lgg0LIg0LrQvtC70L7QvdC60YMsINGA0LDQt9C00LXQu9C40YLQtdC70Ywg4oCUINCz0L7RgNC40LfQvtC90YLQsNC70YzQvdCw0Y8g0LvQuNC90LjRjyAqL1xuQG1lZGlhIG5vdCAoLS1zbSkge1xuICAuY2FyZC1ncmFkaWVudCAuY2FyZF9faXRlbS50aXRsZS13cmFwIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjc1ZW07XG4gIH1cblxuICAuY2FyZC1ncmFkaWVudCAuY2FyZF9fc2VwYXJhdG9yIHtcbiAgICB3aWR0aDogOHJlbTtcbiAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgfVxuXG4gIC5jYXJkLWdyYWRpZW50IC5jYXJkX19pdGVtLmljb24td3JhcCBpbWcge1xuICAgIHdpZHRoOiA2cmVtO1xuICAgIGhlaWdodDogNnJlbTtcbiAgfVxufVxuXG4uY2FyZC1ncmFkaWVudCAuY2FyZF9faXRlbS5pY29uLXdyYXAge1xuICBmbGV4LXNocmluazogMDtcbiAgei1pbmRleDogMTtcbn1cblxuLmNhcmQtZ3JhZGllbnQgLmNhcmRfX2l0ZW0uaWNvbi13cmFwIGltZyB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG5cbiAgQGNvbnRhaW5lciBjYXJkLWdyYWRpZW50IChtaW4td2lkdGg6IDc1cmVtKSB7XG4gICAgd2lkdGg6IDMuMnJlbTtcbiAgICBoZWlnaHQ6IDMuMnJlbTtcbiAgfVxufVxuIiwiLmNhcmQtbnVtYmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICB9XG59XG5cbi5jYXJkLW51bWJlcl9faXRlbS50aXRsZS13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xufVxuXG4uY2FyZC1udW1iZXJfX3RpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiA2ZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjk7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiA4ZW07XG4gIH1cbn1cblxuLmNhcmQtbnVtYmVyX190aXRsZTo6YmVmb3JlIHtcbiAgY29udGVudDogYXR0cihkYXRhLWZpbmFsKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uY2FyZC1udW1iZXJfX3BsdXMge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XG59XG5cbi5jYXJkLW51bWJlcl9fcGx1cy52aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNhcmQtbnVtYmVyX19pdGVtLmxhYmVsLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XG59XG5cbi5jYXJkLW51bWJlcl9faXRlbS5sYWJlbC13cmFwLnZpc2libGUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2FyZC1udW1iZXJfX2xhYmVsIHtcbiAgZm9udC1zaXplOiAyLjRlbTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbn1cbiIsIi5jYXJkLXJlc3RhdXJhbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci03KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZF9faXRlbS5iZy13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGhlaWdodDogMzByZW07XG4gIH1cbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkLXJlc3RhdXJhbnQtc2xpZGVyIC5zd2lwZXItd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZS0tY292ZXIgLmNhcmRfX2JnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZS0tY292ZXIgLmNhcmRfX2ljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMnJlbTtcbiAgcmlnaHQ6IDJyZW07XG4gIHdpZHRoOiAxOHJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICB6LWluZGV4OiAxO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJvdHRvbTogM3JlbTtcbiAgICByaWdodDogM3JlbTtcbiAgfVxufVxuXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkX19iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAycmVtO1xuICBsZWZ0OiAycmVtO1xuICB3aWR0aDogOC42cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBib3JkZXItcmFkaXVzOiA4LjI1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICB6LWluZGV4OiAxO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJvdHRvbTogM3JlbTtcbiAgICBsZWZ0OiAzcmVtO1xuICB9XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZSAuY2FyZF9fbG9nbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycmVtO1xuICBsZWZ0OiAycmVtO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgaGVpZ2h0OiB2YXIoLS1sb2dvLWhlaWdodCwgN3JlbSk7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHotaW5kZXg6IDE7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgdG9wOiAzcmVtO1xuICAgIGxlZnQ6IDNyZW07XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA2cmVtKTtcbiAgfVxufVxuXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkLXJlc3RhdXJhbnQtc2xpZGUtLWRlc2MsXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkLXJlc3RhdXJhbnQtc2xpZGUtLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIHBhZGRpbmctdG9wOiBjYWxjKDEuNXJlbSArIHZhcigtLWxvZ28taGVpZ2h0LCA3cmVtKSArIDFyZW0pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygzcmVtICsgdmFyKC0tbG9nby1oZWlnaHQsIDdyZW0pICsgMXJlbSk7XG4gIH1cbn1cblxuLyog0JrQu9Cw0LzQvyDQtNC70LjQvdC90YvRhSDQvtC/0LjRgdCw0L3QuNC5OiDRgtC10LrRgdGCINC00LvQuNC90L3QtdC1IH42INGB0YLRgNC+0LogKEpvbGkg0KHQn9CxLCBTYWxvbmUg4oCUIDUwMCsg0YHQuNC80LIuKVxuICAg0L/RgNC4IGp1c3RpZnktY29udGVudDogZmxleC1lbmQg0L/QtdGA0LXQv9C+0LvQvdGP0Lsg0YHQu9Cw0LnQtCDQstCy0LXRgNGFIOKAlCDQvdCw0LrRgNGL0LLQsNC7INC70L7Qs9C+INC4INC+0LHRgNC10LfQsNC70YHRj1xuICAg0LrRgNCw0LXQvCDQutCw0YDRgtC+0YfQutC4LiA2INGB0YLRgNC+0Log0LLQu9C10LfQsNGO0YIg0L3QsCDQstGB0LXRhSDQsdGA0LXQudC60L/QvtC40L3RgtCw0YUg0L/RgNC4INGB0LDQvNC+0Lwg0LLRi9GB0L7QutC+0Lwg0LvQvtCz0L4gKDcuNHJlbSk7XG4gICDQv9C+0LvQvdGL0Lkg0YLQtdC60YHRgiDQvtGB0YLQsNGR0YLRgdGPINC90LAg0YHRgtGA0LDQvdC40YbQtSDRgNC10YHRgtC+0YDQsNC90LAgKNC60L3QvtC/0LrQsCDCq9Cf0L7QtNGA0L7QsdC90LXQtcK7KS4gKi9cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9fZGVzYyB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDY7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9fdGV4dCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjk1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9fdGV4dCArIC5jYXJkLXJlc3RhdXJhbnQtc2xpZGVfX3RleHQge1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9faW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xufVxuXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkLXJlc3RhdXJhbnQtc2xpZGVfX2xpbmUge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC45NWVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZS0tcGhvdG8gLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9fcGhvdG8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tcHJldixcbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tcHJldjo6YWZ0ZXIsXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkLXJlc3RhdXJhbnQtc2xpZGVyIC5zd2lwZXItYnV0dG9uLW5leHQ6OmFmdGVyIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQ6aG92ZXIgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQtd3JhcCAuY2FyZF9faXRlbS50aXRsZS13cmFwIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNhcmQtcmVzdGF1cmFudC13cmFwIC5jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS40ZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgfVxufVxuXG4uY2FyZC1yZXN0YXVyYW50LXdyYXAgLmNhcmRfX2l0ZW0uZGVzYy13cmFwIHtcbiAgZmxleDogMTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNhcmQtcmVzdGF1cmFudC13cmFwIC5jYXJkX19kZXNjIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQtd3JhcCAuY2FyZF9faXRlbS5idXR0b25zLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBjYXJkLWV2ZW50ICjQutCw0YDRgtC+0YfQutCwINGB0L7QsdGL0YLQuNGPKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNhcmQtZXZlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTcpO1xuICBib3JkZXItcmFkaXVzOiAxLjZyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uY2FyZC1ldmVudDpob3Zlcixcbi5jYXJkLWV2ZW50OmZvY3VzLXZpc2libGUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItNyksIHdoaXRlIDYlKTtcbn1cblxuLmNhcmQtZXZlbnQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci0xKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLmNhcmQtZXZlbnRfX21lZGlhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhc3BlY3QtcmF0aW86IDQgLyAzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci03KTtcbn1cblxuLmNhcmQtZXZlbnRfX2ltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTIpO1xufVxuXG4uY2FyZC1ldmVudDpob3ZlciAuY2FyZC1ldmVudF9faW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cblxuLmNhcmQtZXZlbnRfX2RhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMS40cmVtO1xuICBsZWZ0OiAxLjRyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogNS42cmVtO1xuICBwYWRkaW5nOiAwLjhyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uY2FyZC1ldmVudF9fZGF0ZS1kYXkge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmNhcmQtZXZlbnRfX2RhdGUtbW9udGgge1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xufVxuXG4uY2FyZC1ldmVudF9fdGFnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEuNHJlbTtcbiAgbGVmdDogMS40cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMS4ycmVtO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjEgMjEgMjEgLyA1NSUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbiAgYm9yZGVyLXJhZGl1czogMTByZW07XG59XG5cbi5jYXJkLWV2ZW50X19iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxLjRyZW07XG4gIHJpZ2h0OiAxLjRyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxLjFyZW07XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbn1cblxuLmNhcmQtZXZlbnRfX2JvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAycmVtIDIuMnJlbSAyLjJyZW07XG59XG5cbi5jYXJkLWV2ZW50X19wbGFjZSB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5jYXJkLWV2ZW50X190aXRsZSB7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jYXJkLWV2ZW50X19tZXRhIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmNhcmQtZXZlbnRfX2Zvb3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMS4ycmVtO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBwYWRkaW5nLXRvcDogMS44cmVtO1xufVxuXG4uY2FyZC1ldmVudF9fcHJpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogMC41cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uY2FyZC1ldmVudF9fcHJpY2UtbGFiZWwge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uY2FyZC1ldmVudF9fcHJpY2UtdmFsdWUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuOXJlbTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uY2FyZC1ldmVudF9fcHJpY2UtdmFsdWUtLXRiYSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5jYXJkLWV2ZW50X19jdGEge1xuICBmbGV4LXNocmluazogMDsgLyog0LrQvdC+0L/QutCwINCy0L3Rg9GC0YDQuCA8YS5jYXJkLWV2ZW50PiDigJQg0LrQu9C40Log0Lgg0YLQsNC6INGD0YXQvtC00LjRgiDQv9C+INC60LDRgNGC0L7Rh9C60LUt0YHRgdGL0LvQutC1ICovXG59XG5cbi8qINGF0L7QstC10YAg0LrQvdC+0L/QutC4INGB0YDQsNCx0LDRgtGL0LLQsNC10YIg0Lgg0L/RgNC4INC90LDQstC10LTQtdC90LjQuCDQvdCwINCy0YHRjiDQutCw0YDRgtC+0YfQutGDICovXG4uY2FyZC1ldmVudDpob3ZlciAuY2FyZC1ldmVudF9fY3RhLmJnLWNvbG9yLTEge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItMSksIGJsYWNrIDEwJSk7XG59XG5cbi5jYXJkLWV2ZW50OmhvdmVyIC5jYXJkLWV2ZW50X19jdGEuYmctY29sb3ItNiB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci02KSwgYmxhY2sgODAlKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uY2FyZC1ldmVudC0tc29sZCB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5jYXJkLWV2ZW50LS1zb2xkIC5jYXJkLWV2ZW50X19pbWcge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjM1KTtcbn1cbiIsIi5wYWdlLTQwNCB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPIDQwNCAqL1xufVxuXG4ucGFnZS00MDQgLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIDQwNCAqL1xufVxuIiwiLmNvbnRhY3RzIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gY29udGFjdHMgKi9cbn1cblxuLmNvbnRhY3RzIC5jb250YWluZXIge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiBjb250YWN0cyAqL1xufVxuIiwiLmluZGV4IHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gaW5kZXggKi9cbn1cblxuLmluZGV4IC5jb250YWluZXIge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiBpbmRleCAqL1xufVxuIiwiLmxvZ29saW5lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZy10b3A6IDEwcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICB9XG59XG5cbi5sb2dvbGluZSAuc3dpcGVyLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5sb2dvbGluZSAuaXMtbWFycXVlZSB7XG4gIGNvbnRhaW46IGxheW91dCBwYWludDtcbiAgY3Vyc29yOiBncmFiO1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG4ubG9nb2xpbmUgLmlzLW1hcnF1ZWUuaXMtZHJhZ2dpbmcge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG4ubG9nb2xpbmUgLmlzLW1hcnF1ZWUgLnN3aXBlci13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubG9nb2xpbmUgLnN3aXBlci1zbGlkZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIG1hcmdpbi1yaWdodDogODBweDtcbiAgfVxufVxuXG4ubG9nb2xpbmVfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICB9XG59XG5cbi5sb2dvbGluZV9fbG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWxvZ28taGVpZ2h0LCA4LjRyZW0pICogMC43KTtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiB2YXIoLS1sb2dvLWhlaWdodCwgNy41cmVtKTtcbiAgfVxufVxuXG4ubG9nb2xpbmUgLnN3aXBlci1zbGlkZTpob3ZlciAubG9nb2xpbmVfX2xvZ28ge1xuICBvcGFjaXR5OiAxO1xufVxuIiwiLnByb21vLnNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBwYWRkaW5nLWJsb2NrOiA4cmVtIDZyZW07XG4gIG1pbi1oZWlnaHQ6IDYwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZy1ibG9jazogMTJyZW0gOHJlbTtcbiAgICBtaW4taGVpZ2h0OiA3MHZoO1xuICB9XG59XG5cbi5wcm9tb19fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYwcmVtO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnByb21vX19jb2RlIHtcbiAgZm9udC1zaXplOiAxMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMThyZW07XG4gIH1cbn1cblxuLnByb21vX19oZWFkaW5nLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnByb21vX19oZWFkaW5nLXdyYXAgLmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuNmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICB9XG59XG5cbi5wcm9tb19fdGV4dCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbjogMDtcbn1cblxuLnByb21vX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDFyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuIiwiLnJlc3RhdXJhbnRzIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gcmVzdGF1cmFudHMgKi9cbn1cblxuLnJlc3RhdXJhbnRzIC5jb250YWluZXIge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiByZXN0YXVyYW50cyAqL1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBhZ2U6IHJlc3RhdXJhbnQgZGV0YWlsXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5ib2R5OmhhcygucmVzdGF1cmFudC1kZXRhaWwpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi8qIC0tLS0gU2xpZGVyIC0tLS0gKi9cblxuLnJlc3RhdXJhbnQtZGV0YWlsX19pdGVtLnNsaWRlci13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uc2xpZGVyLXdyYXAgLnN3aXBlci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1NHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiA5MHJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uc2xpZGVyLXdyYXAgLnN3aXBlci1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5zbGlkZXItd3JhcCAuc3dpcGVyLXNsaWRlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uc2xpZGVyLXdyYXAgLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgYm90dG9tOiAycmVtO1xufVxuXG4vKiBvdmVycmlkZTogc3dpcGVyIGlubGluZSBuYXYgY29sb3IgKyBjYW5jZWwgcGFkZGluZyBvZmZzZXQgKi9cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5zbGlkZXItd3JhcCAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSkgIWltcG9ydGFudDtcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlsX19pdGVtLnNsaWRlci13cmFwIC5zd2lwZXItYnV0dG9uLW5leHQsXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uc2xpZGVyLXdyYXAgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIC0tc3dpcGVyLW5hdmlnYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuXG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLyog0KLRkdC80L3Ri9C5INC+0LLQtdGA0LvQtdC5INC00LvRjyDRh9C40YLQsNC10LzQvtGB0YLQuCAqL1xuLnJlc3RhdXJhbnQtaW50cm8gLnN3aXBlci1jb250YWluZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiKDAgMCAwIC8gNTUlKSAwJSwgcmdiKDAgMCAwIC8gMjUlKSA1MCUsIHJnYigwIDAgMCAvIDEwJSkgMTAwJSk7XG4gIHotaW5kZXg6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiAtLS0tIFJlc3RhdXJhbnQgaW50cm8gb3ZlcmxheSAtLS0tICovXG5cbi5yZXN0YXVyYW50LWludHJvX19vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX292ZXJsYXkgLmNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ucmVzdGF1cmFudC1pbnRyb19fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMi40cmVtO1xuICBtYXgtd2lkdGg6IDcwcmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGdhcDogMy42cmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWludHJvX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgbWFyZ2luOiAwO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogNC41ZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX2NvbnRhY3RzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19saW5lIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19ob3VycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xuICBmb250LXNpemU6IDEuNHJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1pbnRyb19faG91cnMtbm90ZSB7XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiA1MnJlbTtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG9wYWNpdHk6IDAuODU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX2hvdXJzLXJvdyArIC5yZXN0YXVyYW50LWludHJvX19ob3Vycy1ub3RlIHtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xufVxuXG4ucmVzdGF1cmFudC1pbnRyb19faG91cnMtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuXG4ucmVzdGF1cmFudC1pbnRyb19faG91cnMtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMi40cmVtO1xuICBoZWlnaHQ6IDIuNHJlbTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qINCn0LDRgdC+0LLQsNGPINGB0YLRgNC10LvQutCwICjQstCy0LXRgNGFINC6IDEyKSAqL1xuLnJlc3RhdXJhbnQtaW50cm9fX2hvdXJzLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAwLjFyZW07XG4gIGhlaWdodDogMC43cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpO1xufVxuXG4vKiDQnNC40L3Rg9GC0L3QsNGPINGB0YLRgNC10LvQutCwICjQstC/0YDQsNCy0L4g0LogMykgKi9cbi5yZXN0YXVyYW50LWludHJvX19ob3Vycy1pY29uOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAwLjlyZW07XG4gIGhlaWdodDogMC4xcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xufVxuXG4ucmVzdGF1cmFudC1pbnRyb19fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAxLjZyZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX2FjdGlvbnMgLmJ1dHRvbi5iZy1jb2xvci0xOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4vKiAtLS0tIEJyZWFkY3J1bWIgLS0tLSAqL1xuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uYnJlYWRjcnVtYi13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uYnJlYWRjcnVtYi13cmFwIGEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5icmVhZGNydW1iLXdyYXAgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yNWVtO1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uYnJlYWRjcnVtYi13cmFwIC5icmVhZGNydW1iLXNlcCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLyogLS0tLSBBYm91dCAtLS0tICovXG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5hYm91dC13cmFwIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgcGFkZGluZy1ibG9jazogNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nLWJsb2NrOiAxMHJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1kZXRhaWwgLmFib3V0LXdyYXAgLmNvbnRhaW5lci1tZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHJlbTtcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlsIC5hYm91dC13cmFwIC5zZWN0aW9uX19pdGVtLmhlYWRpbmctd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMS42cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1kZXRhaWwgLmFib3V0LXdyYXAgLnNlY3Rpb25fX2l0ZW0uaGVhZGluZy13cmFwIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIG1hcmdpbjogMDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDMuMmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19zdWIge1xuICBtYXJnaW46IDA7XG4gIG1heC13aWR0aDogOTByZW07XG4gIGZvbnQtc2l6ZTogMS40ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbCAuYWJvdXQtd3JhcCAuc2VjdGlvbl9faXRlbS5kZXNjLXdyYXAge1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBtYXgtd2lkdGg6IDgwcmVtO1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWwgLmFib3V0LXdyYXAgLnJlc3RhdXJhbnQtYWJvdXRfX2NvbCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX2xvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19sb2dvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xufVxuXG4ucmVzdGF1cmFudC1hYm91dF9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAxcmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGdhcDogMS42cmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19zdGFmZiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbn1cblxuLnJlc3RhdXJhbnQtc3RhZmZfX2hlYWRpbmcge1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucmVzdGF1cmFudC1zdGFmZl9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjVyZW0gMi41cmVtO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtc3RhZmZfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5yZXN0YXVyYW50LXN0YWZmX19yb2xlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5yZXN0YXVyYW50LXN0YWZmX19uYW1lIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiDQk9Cw0LvQtdGA0LXRjy4g0KLQtdC70LXRhNC+0L06INC70LXQvdGC0LAg0L7QtNC40L3QsNC60L7QstGL0YUg0LrQsNC00YDQvtCyINGBINC70LjRgdGC0LDQvdC40LXQvCDQstCx0L7QuiDigJQg0LTQstCwINC00LXRgdGP0YLQutCwINGB0L3QuNC80LrQvtCyXG4gICDQsiDRgdGC0L7Qu9Cx0LjQuiDQvtGC0LbQuNC80LDRjtGCINCy0L3QuNC3INC4INCy0L7Qv9GA0L7RgdGLINCz0L7RgdGC0LXQuSwg0Lgg0YHQvtGB0LXQtNC90LjQtSDRgNC10YHRgtC+0YDQsNC90YsuINCf0LvQsNC90YjQtdGCINC4INC00LXRgdC60YLQvtC/OlxuICAg0YDRj9C00Ysg0YDQsNC30L3QvtC5INC60YDRg9C/0L3QvtGB0YLQuCDigJQg0YbQtdC70YvQuSDQutCw0LTRgCwg0L/QvtC70L7QstC40L3Riywg0YLRgNC10YLQuCwg0YfQtdGC0LLQtdGA0YLQuC4g0KjQuNGA0LjQvdGLINGA0LDRgdGB0YLQsNCy0LvRj9C10YJcbiAgINGI0LDQsdC70L7QvSwg0YDRj9C00Ysg0L/QviDQv9C+0YHRgtGA0L7QtdC90LjRjiDQt9Cw0LrRgNGL0LLQsNGO0YLRgdGPINGG0LXQu9C40LrQvtC8LiAqL1xuLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktYmxvY2sge1xuICAtLWdhbGxlcnktZ2FwOiAwLjhyZW07XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgLS1nYWxsZXJ5LWdhcDogMS42cmVtO1xuICB9XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgLS1nYWxsZXJ5LWdhcDogMnJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGdyaWQtYXV0by1jb2x1bW5zOiA3NiU7XG4gIGdhcDogdmFyKC0tZ2FsbGVyeS1nYXApO1xuICBwYWRkaW5nLWJvdHRvbTogMC40cmVtO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGNvbnRhaW47XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5IC5yZXN0YXVyYW50LWFib3V0X19waG90byB7XG4gIHNjcm9sbC1zbmFwLWFsaWduOiBjZW50ZXI7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19waG90byB7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYXNwZWN0LXJhdGlvOiA0IC8gMztcbiAgYm9yZGVyLXJhZGl1czogMS42cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGJvcmRlci1yYWRpdXM6IDIuNHJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1hYm91dF9fcGhvdG8gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ucmVzdGF1cmFudC1hYm91dF9fcGhvdG8gPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qINCf0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMIMKr0L/QvtC60LDQt9Cw0YLRjCDQtdGJ0ZHCuyDigJQg0YfQtdC60LHQvtC60YEsINCx0LXQtyDQtdC00LjQvdC+0Lkg0YHRgtGA0L7Rh9C60LggSlMuICovXG4ucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS10b2dnbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LW1vcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKC0tc20pIHtcbiAgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnkge1xuICAgIGdyaWQtYXV0by1mbG93OiByb3c7XG4gICAgZ3JpZC1hdXRvLWNvbHVtbnM6IGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgICBzY3JvbGwtc25hcC10eXBlOiBub25lO1xuICB9XG5cbiAgLyog0KjQuNGA0LjQvdCwINC60LDQtNGA0LAg0L/RgNC40YXQvtC00LjRgiDQuNC3INC00LDQvdC90YvRhSwg0L/RgNC+0L/QvtGA0YbQuNGPINC30LDQutGA0LXQv9C70LXQvdCwINC30LAg0L3QtdC5OiDQutCw0LTRgNGLINC+0LTQvdC+0LPQviDRgNCw0LfQvNC10YDQsFxuICAgICDQsiDRgNGP0LTRgyDQstGB0LXQs9C00LAg0L7QtNC90L7QuSDQstGL0YHQvtGC0YssINCx0LXQtyDQv9C+0LTQs9C+0L3QutC4LiAqL1xuICAucmVzdGF1cmFudC1hYm91dF9fcGhvdG8tLXcxMiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIH1cblxuICAucmVzdGF1cmFudC1hYm91dF9fcGhvdG8tLXc2IHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA2O1xuICAgIGFzcGVjdC1yYXRpbzogMyAvIDI7XG4gIH1cblxuICAucmVzdGF1cmFudC1hYm91dF9fcGhvdG8tLXc0IHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA0O1xuICAgIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gIH1cblxuICAvKiDQndCwINC/0LvQsNC90YjQtdGC0LUg0YfQtdGC0LLQtdGA0YLQuCDQstGB0YLQsNGO0YIg0L/QviDQtNCy0LUg0LIg0YDRj9C0OiDQstGH0LXRgtCy0LXRgNC+0Lwg0L3QsCDRgtCw0LrQvtC5INGI0LjRgNC40L3QtSDQutCw0LTRgNGLXG4gICAgINC/0YDQtdCy0YDQsNGJ0LDRjtGC0YHRjyDQsiDQv9C+0YfRgtC+0LLRi9C1INC80LDRgNC60LguICovXG4gIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tdzMge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDY7XG4gICAgYXNwZWN0LXJhdGlvOiAzIC8gMjtcbiAgfVxuXG4gIC8qINCh0LLRkdGA0L3Rg9GC0LDRjyDQs9Cw0LvQtdGA0LXRjyDQv9C+0LrQsNC30YvQstCw0LXRgiDQv9C10YDQstGL0LUg0YLRgNC4INGA0Y/QtNCwINGG0LXQu9C40LrQvtC8OiDQs9C00LUg0L7QsdGA0YvQsiDQv9GA0LjQtNGR0YLRgdGPINC90LAg0YHQtdGA0LXQtNC40L3Rg1xuICAgICDRgNGP0LTQsCwg0L/QvtGB0LvQtdC00L3QuNC5INC60LDQtNGAINC/0L7QstC40YEg0LHRiyDQvtC00LjQvS4g0JrQsNC00YDRiyDQt9CwINC+0LHRgNC10LfQvtC8INC/0L7QvNC10YfQtdC90Ysg0LIg0YjQsNCx0LvQvtC90LUuICovXG4gIC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LS1jb2xsYXBzaWJsZSAucmVzdGF1cmFudC1hYm91dF9fcGhvdG8tLWV4dHJhIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktYmxvY2s6aGFzKC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LXRvZ2dsZTpjaGVja2VkKSAucmVzdGF1cmFudC1hYm91dF9fcGhvdG8tLWV4dHJhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LW1vcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgIC8qINCe0YLRgdGC0YPQvyDQtNC+INC60L3QvtC/0LrQuCDRgNCw0LLQtdC9INC30LDQt9C+0YDRgyDQvNC10LbQtNGDINC60LDQtNGA0LDQvNC4IOKAlCDQutC90L7Qv9C60LAg0YfQuNGC0LDQtdGC0YHRjyDQutCw0Log0YfQsNGB0YLRjCDRgdC10YLQutC4LiAqL1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhbGxlcnktZ2FwKTtcbiAgfVxuXG4gIC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LW1vcmUtY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS1ibG9jazpoYXMoLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktdG9nZ2xlOmNoZWNrZWQpIC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LW1vcmUtb3BlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LWJsb2NrOmhhcygucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS10b2dnbGU6Y2hlY2tlZCkgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktbW9yZS1jbG9zZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG5cbkBtZWRpYSAoLS1sZykge1xuICAucmVzdGF1cmFudC1hYm91dF9fcGhvdG8tLXczIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAzO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQYWdlOiBldmVudCBkZXRhaWwgKNGB0YLRgNCw0L3QuNGG0LAg0YHQvtCx0YvRgtC40Y8pXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZXZlbnQtZGV0YWlsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLyogLS0tLS0tLS0tLSBIRVJPIC0tLS0tLS0tLS0gKi9cblxuLmV2ZW50LWhlcm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDQ2cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgbWluLWhlaWdodDogNjRyZW07XG4gIH1cbn1cblxuLmV2ZW50LWhlcm9fX21lZGlhIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNyk7XG59XG5cbi5ldmVudC1oZXJvX19pbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmV2ZW50LWhlcm9fX3NjcmltIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2IoMCAwIDAgLyA5MiUpIDAlLCByZ2IoMCAwIDAgLyA0MCUpIDQwJSwgcmdiKDAgMCAwIC8gMTAlKSAxMDAlKTtcbn1cblxuLmV2ZW50LWhlcm9fX292ZXJsYXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA0cmVtIDAgNC40cmVtO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIHBhZGRpbmc6IDZyZW0gMCA2LjRyZW07XG4gIH1cbn1cblxuLmV2ZW50LWhlcm9fX2NvbnRlbnQge1xuICBtYXgtd2lkdGg6IDgycmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC1oZXJvX19leWVicm93IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjZyZW0gMS40cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjhyZW07XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbn1cblxuLmV2ZW50LWhlcm9fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAzLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGZvbnQtc2l6ZTogNS4ycmVtO1xuICB9XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiA2LjRyZW07XG4gIH1cbn1cblxuLmV2ZW50LWhlcm9fX2ZhY3RzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDEuMnJlbSAyLjhyZW07XG4gIG1hcmdpbi10b3A6IDIuNHJlbTtcbiAgZm9udC1zaXplOiAxLjZyZW07XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gIH1cbn1cblxuLmV2ZW50LWhlcm9fX2ZhY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjlyZW07XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyA5MiUpO1xufVxuXG4uZXZlbnQtaGVyb19fZmFjdC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIC0tLS0tLS0tLS0gQk9EWSArIFNUSUNLWSBUSUNLRVQgLS0tLS0tLS0tLSAqL1xuXG4uZXZlbnQtYm9keSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uZXZlbnQtYm9keV9fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IDRyZW07XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSAzNnJlbTtcbiAgICBnYXA6IDVyZW07XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICB9XG59XG5cbi8qINCg0LjRgtC8INC70LXQstC+0Lkg0LrQvtC70L7QvdC60Lgg4oCUINGH0LXRgNC10LcgZ2FwINC90LAg0YDQvtC00LjRgtC10LvQtSAo0LrQvtC90LLQtdC90YbQuNGPINC/0LvQsNGC0YTQvtGA0LzRiyksINCx0LXQtyDRgdCy0L7QuNGFIG1hcmdpbiDRgyDQsdC70L7QutC+0LIuXG4gICDQoyA8cD4g0L3QtdGCINCz0LvQvtCx0LDQu9GM0L3QvtCz0L4gcmVzZXQg4oCUINCx0YDQsNGD0LfQtdGA0L3Ri9C1IG1hcmdpbiDQu9C+0LzQsNGO0YIg0YDQuNGC0LwsINC+0LHQvdGD0LvRj9C10Lwg0LIg0L/RgNC10LTQtdC70LDRhSDQutC+0LvQvtC90LrQuCAqL1xuLmV2ZW50LWJvZHlfX21haW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZyZW07XG59XG5cbi5ldmVudC1ib2R5X19tYWluIHAge1xuICBtYXJnaW46IDA7XG59XG5cbi5ldmVudC1ib2R5X19pbnRybyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMS40cmVtO1xufVxuXG4uZXZlbnQtYm9keV9fcGxhY2Uge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtYm9keV9fbGVhZCB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICB9XG59XG5cbi5ldmVudC1ib2R5X190ZXh0IHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LWJvZHlfX3RleHQgcCArIHAge1xuICBtYXJnaW4tdG9wOiAxLjRyZW07XG59XG5cbi8qIC0tLS0gQ29udGVudCBibG9ja3MgLS0tLSAqL1xuXG4uZXZlbnQtYmxvY2sge1xuICBtYXJnaW4tdG9wOiAwOyAvKiDRgNC40YLQvCDQt9Cw0LTQsNGR0YIgZ2FwINGA0L7QtNC40YLQtdC70Y8gLmV2ZW50LWJvZHlfX21haW4gKi9cbn1cblxuLmV2ZW50LWJsb2NrX19oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xuICBwYWRkaW5nLWJvdHRvbTogMS40cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLyog0J/RgNC+0LPRgNCw0LzQvNCwICovXG5cbi5ldmVudC1wcm9ncmFtIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDA7XG59XG5cbi5ldmVudC1wcm9ncmFtX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAycmVtO1xuICBwYWRkaW5nOiAxLjRyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE2JSk7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuXG4uZXZlbnQtcHJvZ3JhbV9faXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLmV2ZW50LXByb2dyYW1fX3RpbWUge1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiA2cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC1wcm9ncmFtX190aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLyog0JIg0YHRgtC+0LjQvNC+0YHRgtGMINCy0YXQvtC00LjRgiDigJQg0YHQv9C40YHQvtC6INGBINGC0LXQvNCw0YLQuNGH0LXRgdC60LjQvNC4INC40LrQvtC90LrQsNC80LggKi9cblxuLmV2ZW50LWluY2x1ZGVzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMS40cmVtIDNyZW07XG59XG5cbi5ldmVudC1pbmNsdWRlc19faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEuMnJlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LWluY2x1ZGVzX19tYXJrIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiDQmtGA0YPQv9C90YvQtSDQt9Cw0LPQvtC70L7QstC60Lgg0YDQsNC30LTQtdC70L7QsiDQuCDQsNC60YbQtdC90YLQvdGL0LUg0LDQsdC30LDRhtGLICjRgNC10YTQtdGA0LXQvdGBIHZlY2hlcnZvc29ibnlha2UtaXRhbHkucnUpICovXG5cbi5ldmVudC1ib2R5X19zZWN0aW9uIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxLjZyZW07XG59XG5cbi5ldmVudC1oMiB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiDQs9C70L7QsdCw0LvRjNC90YvQuSByZXNldCDQtNC10LvQsNC10YIgaDEtaDYgaW5saW5lLWJsb2NrIOKAlCDQsdC+0LrRgSDRgdC20LjQvNCw0LXRgtGB0Y8g0LggdGV4dC1hbGlnbjpjZW50ZXIg0L3QtSDRhtC10L3RgtGA0LjRgNGD0LXRgiDQv9C+INC60L7Qu9C+0L3QutC1ICovXG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGZvbnQtc2l6ZTogMi41N2VtO1xuICB9XG59XG5cblxuLmV2ZW50LWFjY2VudCB7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuNDNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjU7XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZm9udC1zaXplOiAxLjU3ZW07XG4gIH1cbn1cblxuLmV2ZW50LWFjY2VudCBwIHtcbiAgbWF4LXdpZHRoOiA2NmNoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmV2ZW50LWFjY2VudDo6YmVmb3JlLFxuLmV2ZW50LWFjY2VudDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmV2ZW50LWFjY2VudDo6YmVmb3JlIHsgbWFyZ2luLWJvdHRvbTogMi40cmVtOyB9XG4uZXZlbnQtYWNjZW50OjphZnRlciB7IG1hcmdpbi10b3A6IDIuNHJlbTsgfVxuXG4vKiDQnNC10L3RjiDQstC10YfQtdGA0LAg4oCUINC/0L4g0YDQtdGE0LXRgNC10L3RgdGDINC70LXQvdC00LjQvdCz0LAgdmVjaGVydm9zb2JueWFrZS1pdGFseS5ydTpcbiAgINGC0ZHQvNC90YvQuSDRhNC+0L0g0YHRgtGA0LDQvdC40YbRiywg0YHQstC10YLQu9GL0Lkg0YLQtdC60YHRgiwg0YbQtdC90YLRgNC40YDQvtCy0LDQvdC90YvQtSDQt9Cw0LPQvtC70L7QstC60Lgg0YEg0LfQvtC70L7RgtGL0LzQuCDQu9C40L3QuNGP0LzQuCAqL1xuXG4uZXZlbnQtbWVudSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMS42cmVtO1xufVxuXG4uZXZlbnQtbWVudV9faW50cm8ge1xuICBmb250LXNpemU6IDEuMjFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtbWVudV9fZ3JvdXBzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAzLjZyZW07XG59XG5cbi5ldmVudC1tZW51X19ncm91cCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmV2ZW50LW1lbnVfX2dyb3VwLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxLjZyZW07XG4gIG1hcmdpbjogMCAwIDEuOHJlbTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMS1leHRlbmRlZCk7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmV2ZW50LW1lbnVfX2dyb3VwLXRpdGxlOjpiZWZvcmUsXG4uZXZlbnQtbWVudV9fZ3JvdXAtdGl0bGU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZmxleDogMSAxIDA7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAjYzQ0YzAxO1xufVxuXG4uZXZlbnQtbWVudV9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxLjFyZW07XG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbn1cblxuLmV2ZW50LW1lbnVfX2l0ZW0ge1xuICBtYXgtd2lkdGg6IDQ2Y2g7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LW1lbnVfX21vcmUge1xuICBkaXNwbGF5OiBjb250ZW50czsgLyog0LPRgNGD0L/Qv9GLINC90LDRgdC70LXQtNGD0Y7RgiDRgdC10YLQutGDIC5ldmVudC1tZW51X19ncm91cHMgKi9cbn1cblxuLmV2ZW50LW1lbnVfX21vcmVbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ldmVudC1tZW51X190b2dnbGUge1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZzogMS4ycmVtIDIuOHJlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2M0NGMwMTtcbiAgYm9yZGVyLXJhZGl1czogMi40cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmV2ZW50LW1lbnVfX3RvZ2dsZTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG4gIGJhY2tncm91bmQ6IHJnYigyMzAgODkgMSAvIDEwJSk7XG59XG5cbi5ldmVudC1tZW51X19mdWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuM2VtO1xufVxuXG4vKiDQk9Cw0LvQtdGA0LXRjyAqL1xuXG4uZXZlbnQtZ2FsbGVyeSB7XG4gIC8qINCw0YHQuNC80LzQtdGC0YDQuNGH0L3QsNGPINGB0LXRgtC60LA6INGD0LfQutCw0Y8gKNC/0L7RgNGC0YDQtdGCKSArINGI0LjRgNC+0LrQsNGPICjQu9Cw0L3QtNGI0LDRhNGCKSwg0LfQsNGC0LXQvCDRgdC70LDQudC0INCy0L4g0LLRgdGOINGI0LjRgNC40L3RgyAqL1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiAxLjJyZW07XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgM2ZyO1xuICAgIGdhcDogMS42cmVtO1xuICB9XG59XG5cbi5ldmVudC1nYWxsZXJ5X19maWd1cmUge1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcbiAgaGVpZ2h0OiAzMnJlbTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBoZWlnaHQ6IDUycmVtO1xuICB9XG59XG5cbi5ldmVudC1nYWxsZXJ5X19maWd1cmUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTIpO1xufVxuXG4uZXZlbnQtZ2FsbGVyeV9fZmlndXJlOmhvdmVyIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi8qINC60LDQttC00YvQuSDRgtGA0LXRgtC40Lkg0YHQu9Cw0LnQtCAo0LrQsNGA0YLQsCDQv9GA0L7RhdC+0LTQsCkg4oCUINGB0LDQvNC+0YHRgtC+0Y/RgtC10LvRjNC90YvQuSDRhtC10L3RgtGA0LjRgNC+0LLQsNC90L3Ri9C5INCx0LvQvtC6XG4gICDRgSDQtdGB0YLQtdGB0YLQstC10L3QvdGL0LzQuCDQv9GA0L7Qv9C+0YDRhtC40Y/QvNC4INC40LfQvtCx0YDQsNC20LXQvdC40Y8sINC60LDQuiDQvdCwINGA0LXRhNC10YDQtdC90YHQtSAqL1xuLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZTpudGgtY2hpbGQoM24pIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBhc3BlY3QtcmF0aW86IGF1dG87XG4gIG1heC13aWR0aDogNzJyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZTpudGgtY2hpbGQoM24pIGltZyB7XG4gIGhlaWdodDogYXV0bztcbiAgb2JqZWN0LWZpdDogdW5zZXQ7XG59XG5cbi5ldmVudC1nYWxsZXJ5X19maWd1cmUgLmdsaWdodGJveCB7XG4gIC8qINC40L3Qu9Cw0LnQvdC+0LLQsNGPINGB0YHRi9C70LrQsCDQvdC1INC00LDRkdGCINCy0YvRgdC+0YLRgyBpbWcg4oCUINGA0LDRgdGC0Y/Qs9C40LLQsNC10Lwg0L3QsCDQstC10YHRjCBmaWd1cmUgKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5ldmVudC1nYWxsZXJ5X19maWd1cmUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTIpO1xufVxuXG4uZXZlbnQtZ2FsbGVyeV9fZmlndXJlOmhvdmVyIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi8qIC0tLS0gU3RpY2t5IHRpY2tldCBjYXJkIC0tLS0gKi9cblxuLyog0J3QsCDQvNC+0LHQuNC70LUg0LrQsNGA0YLQvtGH0LrQsCDQtNGD0LHQu9C40YDRg9C10YIg0YTQvtGA0LzRgyDQsdGA0L7QvdC4ICjRgdCy0L7QtNC60LArQ1RBKSDigJQg0L/QvtC60LDQt9GL0LLQsNC10Lwg0YLQvtC70YzQutC+INC90LAg0LTQtdGB0LrRgtC+0L/QtSAqL1xuLmV2ZW50LXRpY2tldCB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgLyog0LvQuNC/0LrQsNGPINGI0LDQv9C60LAgMTJyZW0g0LLRi9GB0L7RgtC+0LkgKyDQstC+0LfQtNGD0YUgKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMTQuNHJlbTtcbiAgfVxufVxuXG4uZXZlbnQtdGlja2V0X19jYXJkIHtcbiAgcGFkZGluZzogMi42cmVtIDIuNHJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDEyJSk7XG4gIGJvcmRlci1yYWRpdXM6IDEuOHJlbTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZGF0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMS40cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE2JSk7XG59XG5cbi5ldmVudC10aWNrZXRfX2RhdGUtZGF5IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNC40cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtdGlja2V0X19kYXRlLXJlc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZGF0ZS1tb250aCB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC10aWNrZXRfX2RhdGUtd2Vla2RheSB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5ldmVudC10aWNrZXRfX2ZhY3RzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjFyZW07XG59XG5cbi5ldmVudC10aWNrZXRfX2ZhY3RzIGxpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMS42cmVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZmFjdHMgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZmFjdHMgYiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC10aWNrZXRfX3NlYXRzIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmV2ZW50LXRpY2tldF9fcHJpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogMC44cmVtO1xuICBwYWRkaW5nOiAxLjhyZW0gMDtcbiAgbWFyZ2luLWJvdHRvbTogMS44cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE2JSk7XG59XG5cbi5ldmVudC10aWNrZXRfX3ByaWNlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LXRpY2tldF9fcHJpY2UtdmFsdWUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtdGlja2V0X19wcmljZS12YWx1ZS0tdGJhIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LXRpY2tldF9fY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiDQlNC70LjQvdC90YvQuSDRgtC10LrRgdGCICjCq9CSINC70LjRgdGCINC+0LbQuNC00LDQvdC40Y/CuyDQuCDRgi7Qvy4pINC90LUg0LvQvtC80LDQtdGCINC60L3QvtC/0LrRgyDRhNC40LrRgS3QstGL0YHQvtGC0YsgKi9cbi5ldmVudC10aWNrZXRfX2N0YS5idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDVyZW07XG4gIHBhZGRpbmctYmxvY2s6IDEuMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZXZlbnQtdGlja2V0X19zaGFyZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuOHJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDEuMnJlbTtcbiAgcGFkZGluZzogMXJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uZXZlbnQtdGlja2V0X19zaGFyZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLyogLS0tLS0tLS0tLSDQntGE0L7RgNC80LvQtdC90LjQtSAtLS0tLS0tLS0tICovXG5cbi5ldmVudC1idXkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBwYWRkaW5nLXRvcDogMDsgLyogLnNlY3Rpb24g0LTQsNGR0YIgNnJlbSDRgdCy0LXRgNGF0YMsINCwIGV2ZW50LWJvZHkg0YPQttC1INC00LDRkdGCIDZyZW0g0YHQvdC40LfRgyDigJQg0LTQstC+0LnQvdC+0Lkg0LfQsNC30L7RgCAqL1xufVxuXG4vKiDQt9Cw0LPQvtC70L7QstC+0LosINC/0L7QtNCy0L7QtNC60LAg0Lgg0YTQvtGA0LzQsCDigJQg0L/QviDRhtC10L3RgtGA0YMg0JvQldCS0J7QmSDQutC+0LvQvtC90LrQuCDQtNCy0YPRhdC60L7Qu9C+0L3QvtGH0L3QvtCz0L4g0LHQu9C+0LrQsCDQstGL0YjQtVxuICAgKNC60L7QvdGC0LXQvdGCINGB0YPQttCw0LXRgtGB0Y8g0L3QsCDRiNC40YDQuNC90YMgYXNpZGUgMzZyZW0gKyBnYXAgNXJlbSkgKi9cbi5ldmVudC1idXkgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMy4ycmVtO1xufVxuXG4uZXZlbnQtYnV5IC5oZWFkaW5nLXdyYXAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMS40cmVtO1xufVxuXG5AbWVkaWEgKC0tbWQpIHtcbiAgLmV2ZW50LWJ1eSAuc2VjdGlvbl9faXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQxcmVtKTtcbiAgfVxuXG4gIC8qINC60LDRgNGC0L7Rh9C60YMg0YTQvtGA0LzRiyDRhtC10L3RgtGA0LjRgNGD0LXQvCDQv9C+INGC0L7QuSDQttC1INC70LXQstC+0Lkg0LrQvtC70L7QvdC60LU6XG4gICAgIG1heC13aWR0aCttYXJnaW46YXV0byDRhtC10L3RgtGA0LjRgNC+0LLQsNC70Lgg0LXRkSDQv9C+INCy0YHQtdC80YMg0LrQvtC90YLQtdC50L3QtdGA0YMgKi9cbiAgLmV2ZW50LWJ1eSAuZXZlbnQtYnV5X19mb3JtIHtcbiAgICBtYXJnaW4tbGVmdDogbWF4KDByZW0sIGNhbGMoKDEwMCUgLSA0MXJlbSAtIDc2cmVtKSAvIDIpKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4uZXZlbnQtYnV5X19oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMS1leHRlbmRlZCk7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGZvbnQtc2l6ZTogMi41N2VtO1xuICB9XG59XG5cbi5ldmVudC1idXlfX3N1YiB7XG4gIG1heC13aWR0aDogNzJjaDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZvbnQtc2l6ZTogMS4xNGVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi8qINCf0LDQvdC10LvRjCDRhNC+0YDQvNGLIOKAlCDQutCw0Log0LrQsNGA0YLQvtGH0LrQsCDQsdC40LvQtdGC0LAg0LIgYXNpZGUgKi9cblxuLmV2ZW50LWJ1eV9fZm9ybSB7XG4gIG1heC13aWR0aDogNzZyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDEyJSk7XG4gIGJvcmRlci1yYWRpdXM6IDEuOHJlbTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBwYWRkaW5nOiAzLjJyZW0gMy42cmVtO1xuICB9XG59XG5cbi8qINCi0ZHQvNC90LDRjyDRhNC+0YDQvNCwOiDQv9C+0LvRjy3QsdC+0LrRgdGLINGBINCy0LjQtNC40LzRi9C80Lgg0LvQtdC50LHQu9Cw0LzQuCAqL1xuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19pbnB1dCB7XG4gIHBhZGRpbmc6IDEuM3JlbSAxLjZyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgY2FyZXQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyA2JSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE2JSk7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyA1NSUpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19pbnB1dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDklKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyA2MCUpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19pdGVtLmVycm9yIC5mb3JtLWNhbGxiYWNrX19pbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xufVxuXG4uZm9ybS10aWNrZXRfX2xhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLyog0KHQstC+0LTQutCwOiDRh9GC0L4g0LHRgNC+0L3QuNGA0YPQtdC8ICovXG5cbi5mb3JtLXRpY2tldF9fc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEuNnJlbSAyLjRyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZy1ib3R0b206IDEuOHJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE2JSk7XG59XG5cbi5mb3JtLXRpY2tldF9fc3VtbWFyeS10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmZvcm0tdGlja2V0X19zdW1tYXJ5LW1ldGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZm9ybS10aWNrZXRfX3N1bW1hcnktcHJpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5mb3JtLXRpY2tldF9fc3VtbWFyeS1wcmljZSBzcGFuIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmZvcm0tdGlja2V0X19zdW1tYXJ5LXByaWNlIGIge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLyog0JjRgtC+0LPQviDigJQg0LvQtdC50LHQuyDQuCDRhtC10L3QsCDQv9C+INCx0LDQt9C+0LLQvtC5INC70LjQvdC40LggKi9cblxuLmZvcm0tdGlja2V0X190b3RhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjdyZW07XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5mb3JtLXRpY2tldF9fdG90YWwgYiB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qINCa0L3QvtC/0LrQsCDigJQg0LTQtdC90LXQttC90L7QtSDQtNC10LnRgdGC0LLQuNC1INC90LAg0LLRgdGOINGI0LjRgNC40L3RgyAqL1xuXG4uZXZlbnQtYnV5IC5mb3JtLXRpY2tldF9fc3VibWl0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiDQodC+0L7QsdGJ0LXQvdC40LUg0L7QsSDRg9GB0L/QtdGF0LUg0L3QsCDRgtGR0LzQvdC+0LwgKi9cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFja19fc3VjY2Vzcy10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFja19fc3VjY2Vzcy10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvZGF0YS9pbWcvdWkvaWNvbnMvaWNvbi10cmlhbmdsZS1kb3duLWNvbG9yLTEuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxLjRyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMy44cmVtO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19zZWxlY3Q6aW52YWxpZCB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyA1NSUpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19zZWxlY3Qgb3B0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFja19fY3VzdG9tLWNoZWNrYm94IC5mb3JtLWNhbGxiYWNrX19jaGVja21hcmsge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19jaGVja21hcms6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2tfX3BsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19ydWxlcyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFja19faW5wdXQ6Zm9jdXMtdmlzaWJsZSxcbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94OmZvY3VzLXZpc2libGUgKyAuZm9ybS1jYWxsYmFja19fY2hlY2ttYXJrLFxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFjayBidXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiDQpNC+0YDQvNCwINC30LDQutCw0LfQsCDQsdC40LvQtdGC0LA6INGB0LLQvtC4IGdyaWQt0L7QsdC70LDRgdGC0Lgg0L/QvtCy0LXRgNGFINCx0LDQt9C+0LLQvtC5INGE0L7RgNC80YsgKi9cblxuLmZvcm0tdGlja2V0X19jb250YWluZXIge1xuICBnYXA6IDEuOHJlbTtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcInN1bW1hcnlcIlxuICAgIFwibmFtZVwiXG4gICAgXCJwaG9uZVwiXG4gICAgXCJlbWFpbFwiXG4gICAgXCJ0aWNrZXRzXCJcbiAgICBcInRvdGFsXCJcbiAgICBcImJ1dHRvblwiXG4gICAgXCJwb2xpY3lcIlxuICAgIFwicnVsZXNcIlxuICAgIFwiZXJyb3JcIjtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgY29sdW1uLWdhcDogMi40cmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICBcInN1bW1hcnkgc3VtbWFyeVwiXG4gICAgICBcIm5hbWUgcGhvbmVcIlxuICAgICAgXCJlbWFpbCB0aWNrZXRzXCJcbiAgICAgIFwidG90YWwgdG90YWxcIlxuICAgICAgXCJidXR0b24gYnV0dG9uXCJcbiAgICAgIFwicG9saWN5IHBvbGljeVwiXG4gICAgICBcInJ1bGVzIHJ1bGVzXCJcbiAgICAgIFwiZXJyb3IgZXJyb3JcIjtcbiAgfVxufVxuXG4uZm9ybS1jYWxsYmFja19faXRlbS5mb3JtLXRpY2tldC1pdGVtLXN1bW1hcnkge1xuICBncmlkLWFyZWE6IHN1bW1hcnk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19pdGVtLmZvcm0tdGlja2V0LWl0ZW0tdG90YWwge1xuICBncmlkLWFyZWE6IHRvdGFsO1xufVxuXG4uZm9ybS1jYWxsYmFja19faXRlbS5mb3JtLXRpY2tldC1pdGVtLW5hbWUge1xuICBncmlkLWFyZWE6IG5hbWU7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19pdGVtLmZvcm0tdGlja2V0LWl0ZW0tcGhvbmUge1xuICBncmlkLWFyZWE6IHBob25lO1xufVxuXG4uZm9ybS1jYWxsYmFja19faXRlbS5mb3JtLXRpY2tldC1pdGVtLWVtYWlsIHtcbiAgZ3JpZC1hcmVhOiBlbWFpbDtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2l0ZW0uZm9ybS10aWNrZXQtaXRlbS10aWNrZXRzIHtcbiAgZ3JpZC1hcmVhOiB0aWNrZXRzO1xufVxuXG4vKiDQn9GA0LjQv9C40YHQutCwINC/0YDQviDQvtC/0LvQsNGC0YM6INCy0L4g0LLRgdGOINGI0LjRgNC40L3RgyDRhNC+0YDQvNGLLCDQutGA0YPQv9C90LXQtSAqL1xuLmZvcm0tY2FsbGJhY2tfX2l0ZW0uZm9ybS10aWNrZXQtcGF5LW5vdGUge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xufVxuXG4uZm9ybS10aWNrZXQtcGF5LW5vdGUgLmZvcm0tY2FsbGJhY2tfX3J1bGVzIHtcbiAgZm9udC1zaXplOiAwLjkzZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qINCa0L7Qu9C40YfQtdGB0YLQstC+INC80LXRgdGCOiDRgdGC0LXQv9C/0LXRgCDiiJIvKyAqL1xuXG4uZm9ybS10aWNrZXRfX3F0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42cmVtO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjU1IDI1NSAyNTUgLyA2JSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE2JSk7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG5cbi5mb3JtLXRpY2tldF9fcXR5LWJ0biB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMuNHJlbTtcbiAgaGVpZ2h0OiAzLjRyZW07XG4gIGZvbnQtc2l6ZTogMS45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMjUlKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLmZvcm0tdGlja2V0X19xdHktYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIH1cbn1cblxuLmZvcm0tdGlja2V0X19xdHktYnRuOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4zNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tdGlja2V0X19xdHktaW5wdXQge1xuICB3aWR0aDogNnJlbTtcbiAgcGFkZGluZzogMC40cmVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLmZvcm0tdGlja2V0X19xdHktaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4uZm9ybS10aWNrZXRfX3F0eS1pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuI3BhZ2UtY29udGVudDpoYXMoLmV2ZW50LWRldGFpbCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLyogLS0tLS0tLS0tLSBNb2JpbGUgc3RpY2t5IGJhciAtLS0tLS0tLS0tICovXG5cbi5ldmVudC1zdGlja3liYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IHZhcigtLXotaW5kZXgtMyk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxLjZyZW07XG4gIHBhZGRpbmc6IDEuMnJlbSAxLjZyZW0gY2FsYygxLjJyZW0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci03KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE0JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0xKTtcblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5ldmVudC1zdGlja3liYXIuaXMtaGlkZGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEyMCUpO1xufVxuXG4uZXZlbnQtc3RpY2t5YmFyX19wcmljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi5ldmVudC1zdGlja3liYXJfX2xhYmVsIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LXN0aWNreWJhcl9fdmFsdWUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuOXJlbTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtc3RpY2t5YmFyX19jdGEge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNhcmQtZXZlbnQsXG4gIC5jYXJkLWV2ZW50X19pbWcsXG4gIC5ldmVudC1nYWxsZXJ5X19maWd1cmUgaW1nLFxuICAuZXZlbnQtc3RpY2t5YmFyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4iXX0= */