/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
:root {
    --tosa-orange: #f14910;
    --tosa-blue: #4545DB;
    --tosa-blue-light: #E6F3F9;
    --tosa-teal: #0d6b6e;
    --tosa-yellow: #FFE350;
    --tosa-light-blue: #E6F3F9;
}

@media (min-width: 1200px) {
    .container-xl {
        max-width: 1600px;
    }
}

.container-xl {
    padding-left: clamp(1rem, 2.5vw, 2rem) !important;
    padding-right: clamp(1rem, 2.5vw, 2rem) !important;
}

body,
button,
input,
select,
textarea,
optgroup {
    font-family: 'Epilogue', sans-serif !important;
}

:root {
    --bs-body-color: #1D1D1B;
    --bs-body-color-rgb: 29, 29, 27;
}
body {
    color: #1D1D1B;
}
/* Force Epilogue everywhere — overrides Bootstrap defaults and any inline
   font-family set by external content (e.g. DropInBlog post HTML). */
*,
*::before,
*::after {
    font-family: inherit;
}
.dib-post,
.dib-post-content,
.dib-post-content * {
    font-family: 'Epilogue', sans-serif !important;
}

/* ── Reusable Components ─────────────────────────── */

/* Section dots - three small orange circles used as decorators before section titles */
.section-dots span,
.hero__dots span {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tosa-orange);
    margin-right: 4px;
}

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

.section-title {
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    color: #1a1a2e;
}

/* CTA Buttons - orange buttons with clip-path cut on top-right corner */
.cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 32px;
    font-size: 1rem;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
    border: none;
    cursor: pointer;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
    transition: background-color 0.2s;
}

.cta-btn--orange {
    background-color: var(--tosa-orange);
    color: #fff;
}

.cta-btn--green {
    background-color: #1DC58C;
    color: #fff;
}

.cta-btn--green:hover {
    background-color: #17a374;
    color: #fff;
}

.cta-btn--blue {
    background-color: #3846D8;
    color: #fff;
}

.cta-btn--blue:hover {
    background-color: #2c38b8;
    color: #fff;
}

.cta-btn--orange:hover {
    background-color: #d63d09;
    color: #fff;
}

.cta-btn__icon {
    font-size: 1.25rem;
    font-weight: 300;
}

/* ── Menubar ──────────────────────────────────────── */
/* Keep all existing menubar styles */
.navbar { min-height: 72px; padding-top: 0; padding-bottom: 0; }
@media (min-width: 992px) {
    .navbar .navbar-collapse { min-width: 0; }
}
.navbar .nav-link { color: #1a1a1a !important; }
.menubar__cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; font-size: 0.875rem; font-weight: 600; white-space: nowrap; cursor: pointer; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%); }
.menubar__cta-btn--dark { background-color: #1a1a1a; color: #fff; }
.menubar__cta-btn--dark:hover { background-color: #333; color: #fff; }
.menubar__cta-btn--orange { background-color: var(--tosa-orange); color: #fff; }
.menubar__cta-btn--orange:hover { background-color: #d63d09; color: #fff; }
.menubar__chevron { transition: transform 0.2s ease; -webkit-text-stroke: 0.8px currentColor; }
.dropdown.show .menubar__chevron, .nav-item.show .menubar__chevron { transform: rotate(180deg); }

/* Navbar nav links spacing */
.navbar .navbar-nav .nav-link,
.navbar .navbar-nav .menubar__link {
    padding: 1.5rem 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1a1a1a !important;
    position: relative;
    cursor: default;
    white-space: nowrap;
}
.navbar .navbar-nav .menubar__link:hover {
    color: var(--tosa-orange) !important;
}
.navbar .navbar-nav .menubar__item:not(.dropdown) .menubar__link {
    cursor: pointer;
}

.navbar .container-xl {
    max-width: 99%;
    min-height: 72px;
    align-items: stretch;
}

.navbar #menubarNav {
    min-height: 72px;
    align-items: stretch;
}

.navbar .navbar-nav {
    min-height: 72px;
    align-items: stretch;
    margin-left: auto !important;
    margin-right: auto !important;
}

.navbar .navbar-brand {
    display: flex;
    align-items: center;
}
/* Active / open state: orange underline + 3 orange dots centered below the link */
.menubar__item {
    position: relative;
}
.menubar__item::after {
    /* orange underline aligned with bottom of navbar */
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background-color: var(--tosa-orange);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s ease;
    pointer-events: none;
}
.menubar__item .menubar__link::before {
    /* 3 orange dots centered below the link */
    content: "• • •";
    position: absolute;
    left: 50%;
    bottom: 0.5rem;
    transform: translateX(-50%);
    color: var(--tosa-orange);
    font-size: 0.65rem;
    letter-spacing: 3px;
    line-height: 1;
    font-weight: 700;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}
.navbar ul.menubar__dropdown::before{
    content: "";
}
.menubar__item.show:not(.menubar__item--account)::after,
.menubar__item:hover:not(.menubar__item--account)::after,
.menubar__item:not(.menubar__item--account):has(.menubar__link[aria-expanded="true"])::after {
    transform: scaleX(1);
}
.menubar__item.show:not(.menubar__item--account) .menubar__link::before,
.menubar__item:hover:not(.menubar__item--account) .menubar__link::before,
.menubar__item:not(.menubar__item--account) .menubar__link[aria-expanded="true"]::before {
    opacity: 1;
}

/* Dropdown menus — cards stacked with no gap, no rounded corners */
.navbar .menubar__dropdown {
    margin-top: 1.2rem;
    padding: 0;
    min-width: 280px;
    border: none;
    background: transparent;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-radius: 0;
    overflow: visible;
    position: absolute;
}
/* Upward-pointing arrow on top of the first submenu item */
.navbar .menubar__dropdown::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 24px;
    width: 0;
    height: 0;
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
    border-bottom: 9px solid #fff;
    filter: drop-shadow(0 -2px 2px rgba(0, 0, 0, 0.06));
    z-index: 1;
}
/* For the Account dropdown (menu-end), place the arrow on the right side */
.navbar .dropdown-menu-end.menubar__dropdown::before {
    left: auto;
    right: 24px;
}
.navbar .menubar__dropdown > li {
    margin: 0 !important;
}
.navbar .menubar__dropdown .menubar__dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1a1a1a;
    background-color: #fff;
    border-radius: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    transition: color 0.15s ease, background-color 0.15s ease;
}
.navbar .menubar__dropdown > li:last-child .menubar__dropdown-item {
    border-bottom: none;
}
.navbar .menubar__dropdown .menubar__dropdown-item i.bi-chevron-right {
    color: var(--tosa-orange);
    font-size: 0.875rem;
    font-weight: 700;
    -webkit-text-stroke: 0.5px currentColor;
}
.navbar .menubar__dropdown .menubar__dropdown-item:hover,
.navbar .menubar__dropdown .menubar__dropdown-item:focus {
    color: var(--tosa-orange);
    background-color: #fff6f1;
}

/* Nested submenu (used on Solutions > Certifications) */
.navbar .menubar__has-submenu {
    position: relative;
}
.navbar .menubar__submenu {
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    margin: 0 0 0 4px;
    min-width: 260px;
}
.navbar .menubar__submenu::before {
    /* Move the arrow to the left side so it points back at the parent item */
    top: 16px;
    left: -8px;
    border-left: 0;
    border-right: 9px solid #fff;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    filter: drop-shadow(-2px 0 2px rgba(0, 0, 0, 0.06));
}

/* Open dropdown on hover for desktop */
@media (min-width: 992px) {
    .navbar .nav-item.dropdown:hover > .dropdown-menu,
    .navbar .dropdown:hover > .dropdown-menu,
    .navbar .menubar__item--account:hover > .dropdown-menu {
        display: block;
    }
    .navbar .menubar__has-submenu:hover > .menubar__submenu,
    .navbar .menubar__has-submenu:focus-within > .menubar__submenu {
        display: block;
    }

    /* Invisible hover bridge — fills the 1.2rem (2rem for the Account
       menu) gap between the nav-link and the dropdown so the cursor
       can travel between them without losing :hover. Pure hover target,
       no visible change. */
    .navbar .menubar__dropdown::after {
        content: "";
        position: absolute;
        top: -1.2rem;
        left: 0;
        right: 0;
        height: 1.2rem;
        background: transparent;
        pointer-events: auto;
    }
    .navbar .menubar__item--account > .dropdown-menu-end::after {
        top: -2rem;
        height: 2rem;
    }
    .navbar .menubar__item--lang > .dropdown-menu-end::after {
        top: calc(-2rem - 3px);
        height: calc(2rem + 3px);
    }
}

.navbar .menubar__item--account {
    position: relative;
}
.navbar .menubar__item--account > .dropdown-menu-end {
    right: 0;
    left: auto;
    margin-top: 2rem;
}

/* Language switcher: same placement as the Account menu */
.navbar .menubar__item--lang {
    position: relative;
}
.navbar .menubar__item--lang > .dropdown-menu-end {
    right: 0;
    left: auto;
    margin-top: calc(2rem + 3px);
    min-width: 200px;
}
.navbar .menubar__item--lang .menubar__dropdown-item {
    justify-content: flex-start;
    gap: 10px;
}
.navbar .menubar__item--lang .menubar__dropdown-item.is-active,
.navbar .menubar__item--lang .menubar__dropdown-item.is-active .login-header__lang-code-mini {
    color: var(--tosa-orange);
}

/* ── Hero ─────────────────────────────────────────── */
/* Full width hero with background image covering the entire section. Text overlays on the left. */
.hero {
    position: relative;
    min-height: 85vh;
}

.hero__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.hero__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0) 65%);
}

.hero__title {
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    color: #1a1a2e;
}

.hero__subtitle {
    color: #555;
    max-width: 500px;
}

.min-vh-75 {
    min-height: 75vh;
}

/* ── Beyond Diploma ───────────────────────────────── */
.beyond-diploma {
    background: #fff;
    position: relative;
    overflow: hidden;
    padding: 80px 0;
}

/* Vector.png decorative shape on the left */
.beyond-diploma::before {
    content: '';
    position: absolute;
    top: 40px;
    left: 0;
    width: 49%;
    height: 110%;
    background: url(/build/images/vector-beyond.0e5c4489.png) no-repeat left top;
    background-size: cover;
    pointer-events: none;
    z-index: 0;
    opacity: 0.5;
}

.beyond-diploma .container-xl {
    position: relative;
    z-index: 1;
}



/* Grey dots above the beyond-diploma image */
.beyond-diploma__grey-dots {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
}

.beyond-diploma__grey-dots span {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #c0c0c0;
    margin-right: 0;
}

.beyond-diploma__image-wrapper {
    position: relative;
    display: inline-block;
}

.beyond-diploma__image {
    display: block;
    width: 480px;
    height: 580px;
    object-fit: cover;
    object-position: 60% 15%;
    clip-path: polygon(0 0, 82% 0, 100% 14%, 100% 100%, 0 100%);
    border-radius: 0;
}

/* Stat card overlapping the image at bottom-right */
.beyond-diploma__stat-card {
    position: absolute;
    bottom: 40px;
    right: -60px;
    background: #fff;
    border-radius: 0;
    padding: 22px 24px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.08);
    max-width: 210px;
    z-index: 3;
}

/* Blue circle briefcase icon floating at top-right of stat card */
.beyond-diploma__stat-icon {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 52px;
    height: 52px;
    background: var(--tosa-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.5rem;
    z-index: 4;
    box-shadow: 0 4px 16px rgba(69,69,219,0.3);
}

.beyond-diploma__stat-number {
    font-size: 2.6rem;
    font-weight: 700;
    color: var(--tosa-blue);
    line-height: 1;
    margin-bottom: 12px;
    padding-left: 12px;
    border-left: 4px solid var(--tosa-blue);
}

.beyond-diploma__stat-text {
    font-size: 0.875rem;
    color: #666;
    margin: 0;
    line-height: 1.4;
}

/* Software icons row below the image */
.beyond-diploma__software-icons {
    display: flex;
    gap: 20px;
    margin-top: 40px;
}

.beyond-diploma__sw-icon {
    width: 64px;
    height: 64px;
    background: #f5f5f5;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.beyond-diploma__sw-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

/* Right column text styling */
.beyond-diploma .section-title {
    color: #1a1a2e;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
}

/* Highlighted text inside beyond-diploma paragraph */
.text-highlight {
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ── Certify Skills ───────────────────────────────── */
.certify-skills {
    background-color: #f0f7f7;
    background-image: url(/build/images/vector-certifyslider.cff1111f.png), linear-gradient(180deg, #f0f7f7 0%, #fff 100%);
    background-repeat: no-repeat, no-repeat;
    background-position: center center, center center;
    background-size: auto, cover;
    overflow: hidden;
}

/* Swiper container - fade aux bords gauche et droit */
.swiper.certify-swiper {
    width: 100%;
    overflow: visible !important;
    padding-top: 30px;
    padding-bottom: 40px;
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 12%,
        black 88%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 12%,
        black 88%,
        transparent 100%
    );
}

.certify-swiper .swiper-wrapper {
    transition-timing-function: linear !important;
    -webkit-transition-timing-function: linear !important;
    align-items: center;
    will-change: transform;
    overflow: visible !important;
}

/* Override Swiper default width: 100% on slides - fixed width */
.certify-swiper .swiper-slide {
    width: 260px !important;
    min-width: 260px !important;
    max-width: 260px !important;
    height: auto;
    display: flex;
    align-items: stretch;
}

.certify-card {
    background: #fff;
    padding: 32px 20px;
    text-align: center;
    width: 260px;
    min-width: 260px;
    max-width: 260px;
    height: 280px;
    min-height: 280px;
    max-height: 280px;
    overflow: hidden;
    flex-shrink: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-shadow: 0px 3px 20px #dedede;
}

.certify-card__icon {
    width: 100px;
    height: 100px;
    min-width: 100px;
    min-height: 100px;
    margin: auto;
    margin-bottom: 2em;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.certify-card__icon img {
    width: 100px !important;
    height: 100px !important;
    min-width: 100px;
    min-height: 100px;
    object-fit: contain;
    object-position: center;
    display: block;
    flex-shrink: 0;
}

/* Bundle cards — the bundle banner is wide, so override the square icon slot */
.certify-card--bundle {
    color: inherit;
}
.certify-card__icon--bundle {
    width: 100%;
    height: 120px;
    min-width: 0;
    min-height: 0;
    margin-bottom: 1.2em;
}
.certify-card__icon--bundle img {
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    min-height: 0;
    object-fit: contain;
}

.certify-card__label {
    font-size: 0.8rem;
    font-weight: 600;
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    width: 100%;
    color: #1a1a2e;
    margin: 0;
    line-height: 1.3;
    min-height: 2.6em;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Certification Offerings ──────────────────────── */
.cert-offerings {
    position: relative;
    min-height: 600px;
    background-color: #3846d8;
    background-image: url("/build/images/Group%20108.2387bf19.png");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.cert-offerings__heading {
    display: inline-block;
    background: #FFE350;
    color: #1a1a2e;
    font-weight: 700;
    border-radius: 50px;
    padding: 14px 48px;
    max-width: 100%;
    text-wrap: balance;
    margin-bottom: 1.25rem;
    font-size: clamp(1rem, 2.4vw, 1.9rem);
    line-height: 1.2;
}
.cert-offerings__lead {
    max-width: 720px;
    color: #fff;
    font-size: 1.0625rem;
    line-height: 1.6;
}
.cert-offerings__tabs-label {
    color: #fff;
    letter-spacing: 0.02em;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.cert-offerings__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.cert-offerings__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}

.cert-offerings__arrow {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: auto;
    object-fit: contain;
    object-position: left center;
    z-index: 1;
    pointer-events: none;
}

.cert-offerings__card {
    background: #fff;
    border-radius: 0;
    padding: 48px;
    position: relative;
    z-index: 2;
}

.cert-offerings__logo-item {
    padding: 8px 0;
}

.cert-offerings__logo-line {
    height: 3px;
    width: 100%;
    border-radius: 2px;
}

/* ── Learning Platform ────────────────────────────── */
.learning-platform {
    background-color: #fff;
    background-image: url(/build/images/gradient-bg.9466a959.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.platform-feature__icon {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* Subtle shadow ellipse below the icon */
.platform-feature__icon::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 8px;
    border-radius: 50%;
    background: rgba(69, 69, 219, 0.08);
    filter: blur(3px);
}

.platform-feature__icon img,
.platform-feature__icon video {
    width: 48px;
    height: 48px;
    object-fit: contain;
    position: relative;
    z-index: 1;
}

/* Why-choose & Who-we-serve icon size constraints */
.why-card__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 12px;
}
.why-card__icon img,
.why-card__icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
/* ── Who We Serve ─────────────────────────────────── */
.who-we-serve {
    background: #fff;
    padding: 40px 0;
    position: relative;
    overflow: hidden;
}

.who-we-serve .container-xl {
    background: var(--tosa-blue) url(/build/images/vector-whoweserve.67be3c7f.png) no-repeat;
    background-size: countain;
    color: #fff;
    padding: 64px 56px;
    position: relative;
    overflow: hidden;
    background-position-x: 80%;
    clip-path: polygon(0 0, 94% 0, 100% 14%, 100% 100%, 0 100%);
}

.who-we-serve .col-lg-7{
    padding-top: 4em;
}

.who-we-serve .col-lg-5{
   padding: 0% 3%;
}

.who-we-serve .section-dots--orange span{
    background: var(--tosa-yellow) !important;
}
.who-we-serve .section-title {
    color: #fff;
}

.who-we-serve p {
    color: rgba(255,255,255,0.85);
}

.section-dots--orange span {
    background: var(--tosa-orange) !important;
}

.section-dots--yellow span {
    background: var(--tosa-yellow) !important;
}

.serve-card {
    background: #fff;
    padding: 41px 20px;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 0;
}

.serve-card__title {
    font-size: 1rem;
    color: #1a1a2e;
    margin: 0;
}

.serve-card__icon {
    width: 100px;
    height: 100px;
    margin-bottom: 66px;
}
.serve-card__icon img,
.serve-card__icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.platform-feature__title {
    font-size: 1.1rem;
    color: var(--tosa-blue) !important;
}

.platform-feature__text {
    font-size: 0.9rem;
}

/* ── Why Choose ───────────────────────────────────── */
.why-choose {
    background: #E6F3F9 url(/build/images/vector-whychoose.2af2d342.png) no-repeat center center;
    background-size: cover;
    position: relative;
    overflow: hidden;
    padding: 80px 0;
}

.why-choose .container-xl {
    position: relative;
    z-index: 1;
}

.why-choose .section-title {
    color: #1a1a2e;
}

.why-choose .row {
    background: #fff;
}

.why-choose .why-card {
    background: #fff;
    border-radius: 0;
    padding: 40px 28px;
    text-align: left;
    height: 100%;
    border: 1px solid #E6F3F9;
    position: relative;
    min-height: 430px;
}

.why-card__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
}

.why-card__icon img,
.why-card__icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Small blue underline between icon and title - blurred */
.why-card__line {
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    margin-bottom: 16px;
    border-radius: 2px;
    filter: blur(7px);
    margin-left: 16px;
}

.why-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--tosa-blue);
    margin-bottom: 12px;
    line-height: 1.25;
    margin-top: 62px;
}

.why-card__text {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.55;
    margin: 0;
}

/* CTA card: orange background */
.why-card--cta {
    background: var(--tosa-orange) url(/build/images/whychooselink.ea58f6d8.png) no-repeat bottom left !important;
    background-size: auto 65% !important;
    padding: 40px 28px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-right: none !important;
    color: #fff;
    text-decoration: none;
    transition: background-color 0.2s;
}

.why-card--cta:hover {
    background-color: #d63d09 !important;
    color: #fff;
}

.why-card__cta-title {
    font-size: 1.35rem;
    line-height: 1.25;
    color: #fff;
    margin: 0;
}


.why-card__cta-arrow {
    width: 56px;
    height: 56px;
    background: var(--tosa-yellow);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #1a1a2e;
    margin-top: 32px;
    align-self: flex-end;
}

/* ── Testimonials ─────────────────────────────────── */
.testimonials {
    background: linear-gradient(to right, #05676A 0%, #05676A 50%, #005356 50%, #005356 100%);
    position: relative;
    overflow: hidden;
    padding-bottom: 280px !important;
}

.testimonials::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.5px;
    height: 100%;
    background: rgba(255, 255, 255, 0.3);
    z-index: 2;
    pointer-events: none;
}

.testimonials__left {
    position: relative;
    z-index: 1;
    padding-left: 80px;
    padding-top: 40px;
    padding-bottom: 40px;
}

.testimonials::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    height: 129%;
    background: url(/build/images/vector-testimonial-left.43362597.png) no-repeat bottom left;
    background-size: cover;
    pointer-events: none;
    z-index: 0;
}

.testimonials__right {
    position: relative;
    z-index: 1;
}

.testimonials > .container-xl::after {
    content: '';
    position: absolute;
    bottom: -280px;
    right: -220px;
    width: 600px;
    height: 500px;
    background: url(/build/images/vector-testimonial-right.3f3d7a58.png) no-repeat bottom right;
    background-size: contain;
    pointer-events: none;
    z-index: 0;
}

.testimonials > .container-xl {
    position: relative;
}

.testimonial-card.is-active {
    background: transparent;
}

/* Speech-bubble background image. The image's tail is ~34% of its height, so
   the bottom inset is a PERCENTAGE of the card height (not a fixed px): the
   image's body then always covers the quote + author no matter how long the
   quote is, and the tail extends proportionally below. */
.testimonial-card.is-active::before {
    content: '';
    position: absolute;
    top: -40px;
    left: -40px;
    right: -40px;
    bottom: -55%;
    background: url(/build/images/vector-testimonial-dialog.90c704f2.webp) no-repeat center center;
    background-size: 100% 100%;
    z-index: -1;
    pointer-events: none;
}

.testimonials__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 5px solid var(--tosa-teal);
    margin-left: -15px;
    overflow: hidden;
    cursor: pointer;
    display: inline-block;
    position: relative;
}

.testimonials__avatar:nth-child(1) { z-index: 1; }
.testimonials__avatar:nth-child(2) { z-index: 2; }
.testimonials__avatar:nth-child(3) { z-index: 3; }

.testimonials__avatar:first-child {
    margin-left: 0;
}

.testimonials__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(100%);
    transition: filter 0.3s;
}

.testimonials__avatar.is-active img {
    filter: grayscale(0%);
}


.testimonials__nav-btn {
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background-color 0.2s;
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}

.testimonials__nav-btn--prev {
    background: #fff;
    color: var(--tosa-orange);
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%, 0 14px);
}

.testimonials__nav-btn--prev:hover {
    background: #f0f0f0;
}

.testimonials__nav-btn--next {
    background: var(--tosa-orange);
    color: #fff;
}

.testimonials__nav-btn--next:hover {
    background: #d63d09;
}

/* Slider wrapper */
.testimonials__slider {
    position: relative;
    max-width: 80%;
    margin-left: auto;
}

/* All slides hidden by default */
.testimonials__slide {
    display: none;
}

/* Active slide: block + fade-in animation */
.testimonials__slide.is-active {
    display: block;
    animation: testimonial-fadein 0.4s ease forwards;
}

@keyframes testimonial-fadein {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

.testimonial-card {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 56px 64px;
    position: relative;
    z-index: 2;
    min-height: 460px;
}

.testimonials__slide.is-active.testimonial-card {
    display: flex;
    flex-direction: column;
    justify-content: normal;
}

.testimonial-card__quote p {
    color: #fff;
    font-size: 1.35rem;
    line-height: 1.6;
}

.testimonial-card__author-line {
    width: 4px;
    height: 48px;
    background: var(--tosa-yellow);
    border-radius: 2px;
}

.testimonial-card__author-img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--tosa-teal);
}

.testimonial-card__author-name {
    color: var(--tosa-yellow);
    font-size: 1.1rem;
}

.testimonial-card__author-role {
    color: rgba(255,255,255,0.7);
}

/* ── Get Started ──────────────────────────────────── */
.get-started {
    background: transparent;
    padding: 0;
    position: relative;
    margin-top: -220px;
    margin-bottom: -220px;
    z-index: 2;
}

.get-started__card {
    background: var(--tosa-yellow);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    max-width: 1140px;
    margin: 0 auto;
    /* Clip-path cut on top-right to match design style */
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
}

.get-started__card > .container-xl {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
}

.get-started__image-wrapper {
    position: relative;
    height: 100%;
    min-height: 420px;
    overflow: hidden;
}

.get-started__image {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 440px;
    object-fit: cover;
}

/* Blog page variant: image stretches to the bottom of the card. */
.get-started--blog .get-started__image-wrapper {
    height: 100%;
    min-height: 0;
}
.get-started--blog .get-started__image {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center bottom;
}

.get-started__title {
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    color: #1a1a2e;
    line-height: 1.2;
}

.get-started__text {
    color: #1a1a2e;
    opacity: 0.85;
    font-size: 1.05rem;
}

/* ── Newsletter ───────────────────────────────────── */
.newsletter {
    background-color: #eaf3fb;
    background-position: bottom;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
    padding-top: 320px !important;
    padding-bottom: 80px !important;
}

.newsletter__input-wrapper {
    position: relative;
}

.newsletter__input-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 1.1rem;
}

.newsletter__input {
    padding: 16px 16px 16px 48px;
    border: 1px solid #ddd;
    border-radius: 0;
    font-size: 1rem;
    background: #fff;
    height: 56px;
}

.newsletter__select {
    padding-left: 48px;
    border-radius: 0;
    height: 56px;
}

.newsletter__input:focus {
    border-color: var(--tosa-orange);
    box-shadow: 0 0 0 0.2rem rgba(241, 73, 16, 0.15);
}

.newsletter__multiselect {
    position: relative;
}
.newsletter__multiselect-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    height: 56px;
    padding: 16px 16px 16px 48px;
    border: 1px solid #ddd;
    border-radius: 0;
    background: #fff;
    font-family: inherit;
    font-size: 1rem;
    color: #6c757d;
    text-align: left;
    cursor: pointer;
}
.newsletter__multiselect-trigger[aria-expanded="true"] {
    border-color: var(--tosa-orange);
    box-shadow: 0 0 0 0.2rem rgba(241, 73, 16, 0.15);
}
.newsletter__multiselect-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.newsletter__multiselect-label.has-selection {
    color: #212529;
}
.newsletter__multiselect-caret {
    flex-shrink: 0;
    color: #999;
    transition: transform 0.15s ease;
}
.newsletter__multiselect-trigger[aria-expanded="true"] .newsletter__multiselect-caret {
    transform: rotate(180deg);
}
.newsletter__multiselect-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 20;
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 10px 28px rgba(20, 30, 60, 0.15);
    padding: 8px 0;
}
.newsletter__multiselect-option {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 10px 16px;
    font-size: 0.95rem;
    color: #212529;
    cursor: pointer;
}
.newsletter__multiselect-option:hover {
    background: #f5f7fc;
}
.newsletter__multiselect-option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--tosa-orange);
    cursor: pointer;
}
.newsletter__error {
    margin: 0 0 12px;
    padding: 10px 14px;
    background: rgba(241, 73, 16, 0.1);
    border-left: 3px solid var(--tosa-orange);
    color: #8a4b1a;
    font-size: 0.92rem;
    line-height: 1.45;
}
.newsletter__success {
    padding: 14px 18px;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(20, 30, 60, 0.12);
    color: #1a1a2e;
    font-weight: 600;
    text-align: center;
}

/* ── Footer ───────────────────────────────────────── */
.footer {
    background: #1a1a2e;
    position: relative;
    overflow: hidden;
}

.footer::before {
    content: '';
    position: absolute;
    top: 21px;
    left: 0;
    bottom: 0;
    width: 100%;
    background: url(/build/images/vector-footer.28e6318c.png) no-repeat left center;
    background-size: contain;
    pointer-events: none;
    z-index: 0;
}

.footer > .container-xl {
    position: relative;
    z-index: 1;
}


.footer__links a:hover {
    opacity: 1 !important;
    text-decoration: underline !important;
}

.footer__social-btn {
    width: 44px;
    height: 44px;
    border-radius: 0;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
    background: rgba(255,255,255,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.1rem;
    text-decoration: none;
    transition: background 0.2s;
    flex-shrink: 0;
}

.footer__social-img {
    width: 20px;
    height: auto;
}
.footer__social-btn:hover {
    background: rgba(255,255,255,0.18);
    color: #fff;
}

.footer__heading-dots span {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--tosa-orange);
    margin-right: 3px;
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 991.98px) {
    .hero {
        min-height: 60vh;
    }

    .hero__bg::after {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.5) 100%);
    }

    .cert-offerings__shape {
        display: none;
    }

    .cert-offerings__card {
        padding: 32px;
    }

    .get-started__image-wrapper {
        min-height: 250px;
    }
}

/* ══════════════════════════════════════════════════
   CERTIFICATIONS PAGE
   ══════════════════════════════════════════════════ */

/* Cert Hero */
.cert-hero {
    position: relative;
    padding: 96px 0 160px;
}
.cert-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}
.cert-hero__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 89%;
}
.cert-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0) 65%);
}
.cert-hero__row {
    min-height: 60vh;
}
.cert-hero__title {
    font-size: clamp(2rem, 4vw, 3.25rem);
    color: #1a1a2e;
}
.cert-hero__subtitle {
    color: #222;
    max-width: 540px;
}

/* Cert Unique Section */
.cert-unique {
    background: transparent;
}
.cert-unique__card {
    position: relative;
    background: var(--tosa-blue);
    clip-path: polygon(0 0, calc(100% - 80px) 0, 100% 80px, 100% 100%, 0 100%);
    padding: 5px;
    overflow: hidden;
}
.cert-unique__card-inner {
    position: relative;
    clip-path: polygon(0 0, calc(100% - 78px) 0, 100% 78px, 100% 100%, 0 100%);
    background: #EDEEFB;
    padding: 72px 64px;
    overflow: hidden;
}
.cert-unique__vector {
    display: block;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin-top: 32px;
    opacity: 0.85;
}
.cert-unique__item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid rgba(69, 69, 219, 0.2);
}
.cert-unique__items .cert-unique__item:first-child {
    border-top: none;
    padding-top: 0;
}
.cert-unique__icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 0;
    background: transparent;
    padding: 0;
    object-fit: contain;
}
.cert-unique__title {
    font-size: 1.125rem;
    color: var(--tosa-blue);
    margin-bottom: 6px;
}
.cert-unique__desc {
    color: #333;
    line-height: 1.55;
    font-size: 0.95rem;
}

/* 5 Steps pill title */
.cert-unique__steps {
    text-align: center;
}
.cert-steps__title-pill {
    display: inline-block;
    border: 2px solid var(--tosa-blue);
    border-radius: 50px;
    padding: 10px 36px;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--tosa-blue) !important;
    background: #fff;
    margin: 32px 0 40px;
    line-height: 1.2;
}
.cert-unique__items {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.cert-unique__item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.cert-unique__icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 12px;
}
.cert-unique__body {
    flex: 1;
}
.cert-unique__title {
    font-size: 1.25rem;
    color: var(--tosa-blue);
    margin-bottom: 8px;
}
.cert-unique__desc {
    color: #333;
    line-height: 1.6;
}

/* Cert Step (image-based) */
.cert-step__img {
    width: auto;
    height: 241px;
    display: block;
    margin: auto;
}
@media (min-width: 1200px) and (max-width: 1479.98px) {
    .cert-step__img {
        height: 190px;
    }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
    .cert-step__img {
        height: 145px;
    }
}
.cert-step__desc {
    margin: 1.25rem 0 0;
    color: #4a4a55;
    font-size: 0.9rem;
    line-height: 1.55;
    text-align: center;
    padding: 0 .25rem;
}

/* Cert Offerings Section */
.cert-offerings__tabs {
    justify-content: center;
    gap: 80px;
    border-bottom: 0;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 992px) and (max-width: 1399.98px) {
    .cert-offerings__tabs {
        gap: 24px;
        flex-wrap: nowrap;
    }
    .cert-offerings__tabs .nav-item {
        min-width: 0;
    }
    .cert-offerings__tabs .nav-link {
        padding: 16px 12px;
    }
}
.cert-offerings__tabs .nav-item {
    flex: 1;
    position: relative;
}
.cert-offerings__tabs .nav-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    gap: 8px;
    border: 2px solid rgba(255, 255, 255, 0.6);
    color: #777;
    font-weight: 600;
    padding: 24px 28px;
    font-size: 1rem;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 16px;
    margin-bottom: 0;
    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.cert-offerings__tabs .nav-link.active {
    color: var(--tosa-blue);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
}
.cert-offerings__tab-logo {
    height: 64px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    display: block;
    margin: auto;
}
@media (min-width: 992px) {
    .cert-offerings__tabs {
        flex-wrap: nowrap;
    }
    .cert-offerings__tabs .nav-item {
        min-width: 0;
    }
}
.cert-offerings__tab-chevron {
    font-size: 1.25rem;
    color: #9aa0b5;
    line-height: 1;
}
.cert-offerings__tabs .nav-link.active .cert-offerings__tab-chevron {
    visibility: hidden;
}
.cert-offerings__tabs .nav-link.active::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -28px;
    transform: translateX(-50%);
    border-left: 13px solid transparent;
    border-right: 13px solid transparent;
    border-top: 15px solid #fff;
}
.cert-offerings__mockup {
    background-color: rgba(255, 255, 255, 0.88);
    border: 0;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    margin: 0 auto;
    padding: 32px;
}
.cert-offerings__mockup-header {
    padding: 8px 8px 20px;
    text-align: left;
}
.cert-offerings__mockup-title {
    font-size: 2rem;
    color: #1a1a2e;
}
.cert-offerings__mockup-content {
    padding: 24px 32px 32px;
}
.cert-offerings__app-icon {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    aspect-ratio: 1 / 1;
    padding: 16px 10px;
    background: #D9D9D933;
    border: 1px solid #D9D9D9;
    border-radius: 14px;
    text-decoration: none;
    color: #1a1a1a;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s, background-color 0.2s;
}
.cert-offerings__app-icon:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(69, 69, 219, 0.08);
    border-color: var(--tosa-blue);
    color: var(--tosa-blue);
}
.cert-offerings__app-icon img {
    max-width: 100%;
    max-height: 74px;
    object-fit: contain;
}
.cert-offerings__trademark {
    position: absolute;
    top: 6px;
    right: 10px;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
}
.cert-offerings__app-icon--bundle {
    padding: 8px;
}
.cert-offerings__app-icon--bundle img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.cert-offerings__app-name {
    font-size: 0.85rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

/* Cert Steps */
.cert-steps {
    background: linear-gradient(135deg, #f5f5ff 0%, #e8f0ff 100%);
}
.cert-steps__title-pill {
    display: inline-block;
    border: 2px solid var(--tosa-blue);
    border-radius: 50px;
    padding: 12px 48px;
    font-size: 1.75rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 48px;
}
.cert-step {
    text-align: center;
}
.cert-step__chart {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 16px;
}
.cert-step__level {
    padding: 4px 8px;
    font-size: 0.75rem;
    border-bottom: 1px solid #f0f0f0;
}
.cert-step__level--active {
    color: var(--tosa-orange);
    font-weight: 700;
}
.cert-step__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--tosa-orange);
    color: #fff;
    font-weight: 700;
    font-size: 0.875rem;
}
.cert-step__name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--tosa-blue);
}
.cert-step__sub {
    display: inline-block;
    background: #333;
    color: #fff;
    font-size: 0.7rem;
    padding: 2px 10px;
    border-radius: 4px;
}
.cert-step__score {
    padding: 4px 8px;
    font-size: 0.75rem;
    border-bottom: 1px solid #f0f0f0;
}
.cert-step__score--active {
    background: var(--tosa-yellow);
    font-weight: 700;
}

/* Cert Catalog / Offerings Tabs */
.cert-catalog {
    background: #e8f4f8;
}
.cert-catalog__tabs {
    display: flex;
    gap: 0;
    margin-bottom: 0;
}
.cert-catalog__tab {
    flex: 1;
    padding: 16px 24px;
    background: transparent;
    border: none;
    font-weight: 600;
    color: #999;
    cursor: pointer;
    transition: all 0.2s;
    opacity: 0.5;
}
.cert-catalog__tab--active,
.cert-catalog__tab:hover {
    background: #fff;
    color: #1a1a2e;
    opacity: 1;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.05);
}
.cert-catalog__tab img {
    height: 32px;
    object-fit: contain;
}
.cert-catalog__browser {
    background: #fff;
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}
.cert-catalog__browser-bar {
    background: #f5f5f5;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #eee;
}
.cert-catalog__browser-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ddd;
}
.cert-catalog__browser-url {
    flex: 1;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 20px;
    padding: 6px 16px;
    font-size: 0.8rem;
    color: #666;
}
.cert-catalog__app-icon {
    background: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}
.cert-catalog__app-icon:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.cert-catalog__app-icon img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    margin-bottom: 8px;
}
.cert-catalog__app-icon p {
    font-size: 0.8rem;
    font-weight: 500;
    margin: 0;
}

/* Cert Bundles */
.cert-bundles {
    background: #fff;
}
.cert-bundles__inner {
    padding: 24px 48px;
}
.cert-bundles__intro {
    max-width: 860px;
    color: #333;
    line-height: 1.6;
}
.cert-bundles__graphic {
    background: #fff;
    padding: 48px;
    border-radius: 4px;
}
.cert-bundles__graphic img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
}
button.cert-bundles__graphic--zoom:not(:disabled) {
    display: block;
    width: 100%;
    border: 0;
    cursor: zoom-in;
}
button.img-zoom-btn:not(:disabled) {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}
.cert-bundles__zoom-content {
    background: #fff;
}
.cert-bundles__zoom-close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    background-color: #fff;
    padding: 12px;
}
.cert-bundles__zoom-scroll {
    overflow: auto;
    height: 100%;
    display: flex;
    align-items: center;
}
.cert-bundles__zoom-scroll img {
    width: 100%;
    min-width: 1000px;
    max-width: none;
    margin: auto;
    padding: 24px;
}
.cert-bundles__credly {
    max-width: 780px;
    color: #333;
    line-height: 1.6;
}
.cert-bundles__credly a {
    color: var(--tosa-orange);
}
.cert-bundles__matrix-img {
    max-width: 100%;
    height: auto;
}

/* Cert Entries (individual certifications) */
.cert-entries {
    background: url(/build/images/bg-01.f480dd6c.jpg) center/cover no-repeat;
}
.cert-entries .container-xl {
    max-width: 1440px;
}
.cert-entry {
    margin-bottom: 48px;
    box-shadow: 0 43px 40px rgba(0, 0, 0, 0.15);
}
.cert-entry:last-child {
    margin-bottom: 0;
}
.cert-entry__inner {
    display: flex;
    align-items: stretch;
    gap: 80px;
}
.cert-entry--reverse .cert-entry__inner {
    flex-direction: row-reverse;
}

/* Cert Ready (audiences) */
.cert-ready__disclaimer {
    margin: 24px auto 0;
    font-size: 0.8125rem;
    font-style: italic;
    line-height: 1.5;
    color: #1a1a2e;
    text-align: center;
    max-width: 860px;
}
.cert-ready__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid #dcdce5;
    background: #fff;
}
.cert-ready__card {
    display: flex;
    flex-direction: column;
    padding: 32px 24px;
    background: #fff;
    border-right: 1px solid #dcdce5;
}
.cert-ready__card:last-child {
    border-right: none;
}
.cert-ready__card--highlight {
    background: var(--tosa-yellow);
}
.cert-ready__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 24px;
    object-fit: contain;
    display: block;
}
.cert-ready__title {
    font-size: 1.125rem;
    color: var(--tosa-blue);
    margin-bottom: 12px;
}
.cert-ready__text {
    color: #333;
    font-size: 0.925rem;
    line-height: 1.5;
    flex: 1;
}
.cert-ready__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: none;
    margin-top: 24px;
}
.cert-ready__card--highlight .cert-ready__link {
    color: var(--tosa-blue);
}
.cert-ready__arrow {
    font-size: 1.1rem;
    line-height: 1;
}

/* Cert Testimonial */
.cert-testimonial {
    position: relative;
    background: #005356;
    overflow: hidden;
    padding-top: 120px;
    padding-bottom: 280px;
}
.cert-testimonial__vector {
    position: absolute;
    top: 0;
    bottom: 0;
    height: 100%;
    width: auto;
    pointer-events: none;
}
.cert-testimonial__vector--left { left: 0; }
.cert-testimonial__vector--right { right: 0; }
.cert-testimonial__quote {
    position: relative;
    max-width: 1040px;
    margin: 80px auto;
    padding: 72px 80px;
    color: #fff;
    font-size: 1.3125rem;
    line-height: 1.65;
    text-align: center;
    border: 1.5px solid rgba(255, 255, 255, 0.85);
    border-image: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.5) 60%, rgba(255,255,255,0) 100%) 1;
    background: transparent;
}
.cert-testimonial__quote--with-photo {
    padding-top: 40px;
}
.cert-testimonial__photo {
    display: block;
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #05676a;
    background: #05676a;
}
.cert-testimonial__text {
    font-style: italic;
}
.cert-testimonial__footer {
    margin-top: 8px;
}
.cert-testimonial__author {
    color: var(--tosa-yellow);
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 2px;
}
.cert-testimonial__role {
    color: #fff;
    font-size: 0.875rem;
    font-weight: 400;
}
@media (max-width: 991.98px) {
    .cert-ready__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .cert-ready__card:nth-child(2n) {
        border-right: none;
    }
    .cert-ready__card:nth-child(-n+2) {
        border-bottom: 1px solid #dcdce5;
    }
}
@media (max-width: 575.98px) {
    .cert-ready__grid {
        grid-template-columns: 1fr;
    }
    .cert-ready__card {
        border-right: none;
        border-bottom: 1px solid #dcdce5;
    }
    .cert-ready__card:last-child {
        border-bottom: none;
    }
}
.cert-entry__badge-col {
    flex: 0 0 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
    padding: 48px;
    clip-path: polygon(0 0, calc(100% - 56px) 0, 100% 56px, 100% 100%, 0 100%);
}
.cert-entry--reverse .cert-entry__badge-col {
    clip-path: polygon(56px 0, 100% 0, 100% 100%, 0 100%, 0 56px);
}
.cert-entry__badge-link {
    display: inline-block;
    line-height: 0;
    transition: transform .15s ease, opacity .15s ease;
}
.cert-entry__badge-link:hover,
.cert-entry__badge-link:focus-visible {
    transform: translateY(-2px);
    opacity: 0.92;
}
.cert-entry__badge-link .cert-entry__badge {
    display: block;
}
.cert-entry__badge {
    max-width: 100%;
    width: 400px;
    height: auto;
}
.cert-entry__body {
    flex: 1;
    max-width: 620px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 56px;
}
.cert-entry--reverse .cert-entry__body {
    padding-right: 0;
    padding-left: 56px;
}
.cert-entry__title {
    font-size: 1.5rem;
    color: #1a1a2e;
}
.cert-entry__description {
    color: #333;
    line-height: 1.55;
}
.cert-entry__levels {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cert-entry__levels li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 10px;
    color: #333;
    line-height: 1.5;
}
.cert-entry__levels li::before {
    content: '›';
    position: absolute;
    left: 0;
    top: -2px;
    color: var(--tosa-orange);
    font-weight: 700;
    font-size: 1.2rem;
}
@media (max-width: 767.98px) {
    .cert-entry {
        margin-bottom: 32px;
    }
    .cert-entry__inner,
    .cert-entry--reverse .cert-entry__inner {
        flex-direction: column;
        gap: 24px;
    }
    .cert-entry__badge-col {
        flex: initial;
        padding: 32px;
    }
    .cert-entry__body {
        flex: initial;
    }
}

/* Cert Badges */
.cert-badges {
    background: #f8f8f8;
}
.cert-badges__img {
    max-width: 280px;
    width: 100%;
}

/* ══════════════════════════════════════════════════
   SHARED PAGE HERO (all inner pages)
   ══════════════════════════════════════════════════ */
.page-hero {
    position: relative;
    min-height: 50vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.page-hero--light {
    background: linear-gradient(135deg, #f0f7f7 0%, #e8f0ff 50%, #f5f5ff 100%);
}
.page-hero--teal {
    background: var(--tosa-teal);
    color: #fff;
}
.page-hero--blue {
    background: var(--tosa-blue);
    color: #fff;
}
.page-hero__title {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
}
.page-hero__subtitle {
    font-size: 1.15rem;
    max-width: 600px;
}

/* ══════════════════════════════════════════════════
   EXPERTISE PAGE
   ══════════════════════════════════════════════════ */
.expertise-features {
    background: linear-gradient(135deg, #f8f5ff 0%, #fff 100%);
}
.expertise-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 32px 24px;
    height: 100%;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}
.expertise-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.expertise-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #e8f0ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--tosa-blue);
}
.expertise-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--tosa-blue);
    margin-bottom: 12px;
}
.expertise-stats {
    background: var(--tosa-blue);
}
.expertise-stat {
    text-align: center;
    color: #fff;
    padding: 24px;
}
.expertise-stat__number {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--tosa-yellow);
}
.expertise-stat__label {
    font-size: 0.9rem;
    opacity: 0.85;
}
.expertise-table {
    background: #fff;
}
.expertise-table table {
    width: 100%;
}
.expertise-table th {
    background: var(--tosa-blue);
    color: #fff;
    padding: 16px;
    font-weight: 600;
}
.expertise-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
}

/* ══════════════════════════════════════════════════
   DELIVER TOSA PAGE
   ══════════════════════════════════════════════════ */
.deliver-benefits {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.deliver-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 32px 24px;
    height: 100%;
    text-align: center;
    transition: transform 0.2s;
}
.deliver-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.deliver-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #fff3e0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--tosa-orange);
}
.deliver-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 12px;
}
.deliver-steps {
    background: #fff;
}
.deliver-step__number {
    width: 64px;
    height: 64px;
    background: var(--tosa-orange);
    color: #fff;
    font-size: 1.75rem;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}
.deliver-tiers {
    background: linear-gradient(135deg, #f5f5ff 0%, #fff 100%);
}
.deliver-tier {
    background: #fff;
    border: 2px solid #eee;
    border-radius: 12px;
    padding: 40px 24px;
    text-align: center;
    height: 100%;
    transition: transform 0.2s;
}
.deliver-tier:hover {
    transform: translateY(-4px);
}
.deliver-tier--gold {
    border-color: var(--tosa-yellow);
}
.deliver-tier--platinum {
    border-color: var(--tosa-blue);
    background: linear-gradient(135deg, #f8f5ff, #fff);
}
.deliver-tier__badge {
    width: 80px;
    height: 80px;
    margin: 0 auto 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}
.deliver-tier__badge--silver { background: #e0e0e0; color: #666; }
.deliver-tier__badge--gold { background: var(--tosa-yellow); color: #333; }
.deliver-tier__badge--platinum { background: var(--tosa-blue); color: #fff; }

/* ══════════════════════════════════════════════════
   TAKE EXAM PAGE
   ══════════════════════════════════════════════════ */
.exam-paths {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.exam-path-card {
    background: #fff;
    border: 2px solid #eee;
    border-radius: 12px;
    padding: 48px 32px;
    text-align: center;
    height: 100%;
    transition: transform 0.2s, border-color 0.2s;
}
.exam-path-card:hover {
    transform: translateY(-4px);
    border-color: var(--tosa-blue);
}
.exam-path-card__icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    background: #e8f0ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--tosa-blue);
}
.exam-expect {
    background: #fff;
}
.exam-expect__item {
    background: #f8f8f8;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    height: 100%;
}
.exam-expect__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    background: var(--tosa-orange);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

/* ══════════════════════════════════════════════════
   REMOTE EXAM PAGE
   ══════════════════════════════════════════════════ */
.remote-requirements {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.remote-req-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    height: 100%;
}
.remote-req-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #e8f0ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--tosa-blue);
}
.remote-process {
    background: #fff;
}
.remote-step {
    text-align: center;
    position: relative;
}
.remote-step__number {
    width: 48px;
    height: 48px;
    background: var(--tosa-orange);
    color: #fff;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}
.remote-faq {
    background: linear-gradient(135deg, #f8f5ff 0%, #fff 100%);
}
.remote-faq .accordion-button:not(.collapsed) {
    background: #f0f0ff;
    color: var(--tosa-blue);
}

/* ══════════════════════════════════════════════════
   FIND CENTER PAGE
   ══════════════════════════════════════════════════ */
.center-search {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.center-search__form {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.center-map {
    background: #e8f4f8;
    min-height: 400px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: 1.25rem;
}
.center-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 24px;
    height: 100%;
}
.center-card__name {
    font-weight: 700;
    color: var(--tosa-blue);
}

/* ══════════════════════════════════════════════════
   CHECK SCORE PAGE
   ══════════════════════════════════════════════════ */
.score-lookup {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.score-lookup__form {
    background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    max-width: 600px;
    margin: 0 auto;
}
.score-scale {
    background: #fff;
}
.score-level {
    border-radius: 8px;
    padding: 24px 20px;
    text-align: center;
    height: 100%;
}
.score-level--beginner { background: #f0f0f0; }
.score-level--basic { background: #e3f2fd; }
.score-level--productive { background: #e8f5e9; }
.score-level--advanced { background: #fff3e0; }
.score-level--expert { background: #fce4ec; }
.score-level__range {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a2e;
}
.score-level__name {
    font-weight: 600;
    color: var(--tosa-blue);
}

/* ══════════════════════════════════════════════════
   RESPONSIVE OVERRIDES
   ══════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
    .hero {
        min-height: 60vh;
    }
    .hero__bg::after {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.5) 100%);
    }
    .cert-hero {
        min-height: 60vh;
    }
    .cert-hero__bg::after {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.5) 100%);
    }
    .cert-unique__card {
        padding: 32px;
        clip-path: none;
    }
    .cert-offerings__shape {
        display: none;
    }
    .why-card {
        padding: 24px 16px;
    }
    .testimonial-card {
        padding: 32px 24px;
        min-height: 0;
    }
    .cert-steps__title-pill {
        font-size: 1.25rem;
        padding: 10px 32px;
    }
    .cert-catalog__tabs {
        flex-wrap: wrap;
    }
    .cert-catalog__tab {
        flex: 1 1 50%;
    }

    /* Navbar mobile: release min-height so collapsed menu can expand */
    .navbar .container-xl,
    .navbar #menubarNav,
    .navbar .navbar-nav {
        min-height: 0;
    }
    .navbar #menubarNav {
        padding: 1rem 0;
    }
    .navbar .navbar-nav {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .navbar .navbar-nav .nav-link,
    .navbar .navbar-nav .menubar__link {
        padding: 0.75rem 0;
    }
    .menubar__item::after {
        display: none;
    }
    .navbar .menubar__dropdown {
        position: static !important;
        margin-top: 0.5rem;
        box-shadow: none;
    }
    .navbar .menubar__dropdown::before {
        display: none;
    }
    .navbar .menubar__item--account > .dropdown-menu-end,
    .navbar .menubar__item--lang > .dropdown-menu-end {
        margin-top: 0.5rem;
    }

    /* Testimonials: stack columns, drop background split & decorative vectors */
    .testimonials {
        background: #05676A;
        padding-bottom: 180px !important;
    }
    .testimonials::before,
    .testimonials::after,
    .testimonials > .container-xl::after {
        display: none;
    }
    .testimonials__left {
        padding-left: 16px;
    }
    .testimonials__slider {
        max-width: 100%;
        margin-left: 0;
    }
    .testimonial-card.is-active::before {
        display: none;
    }

    /* Get Started: reduce overlap */
    .get-started,
    .he-cta {
        margin-top: -120px;
        margin-bottom: -120px;
    }
    .st-cta {
        margin-bottom: -120px;
    }
    .get-started__card,
    .he-cta__card,
    .st-cta__card {
        clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 0 100%);
    }
    .get-started__image-wrapper,
    .st-cta__image-wrapper {
        min-height: 280px;
    }

    /* Newsletter: reduce top padding */
    .newsletter {
        padding-top: 200px !important;
    }

    /* Footer: shrink decorative vector */
    .footer::before {
        width: 180px;
        opacity: 0.5;
    }
}

/* Mobile (<768px) */
@media (max-width: 767.98px) {
    .testimonials {
        padding-bottom: 140px !important;
    }
    .testimonials__left {
        padding-top: 20px;
        padding-bottom: 20px;
    }
    .testimonial-card {
        padding: 24px 20px;
    }
    .testimonial-card__quote p {
        font-size: 1rem;
    }

    .get-started,
    .he-cta {
        margin-top: -80px;
        margin-bottom: -80px;
    }
    .st-cta {
        margin-bottom: -80px;
    }
    .get-started__image-wrapper,
    .st-cta__image-wrapper {
        min-height: 220px;
    }

    .newsletter {
        padding-top: 40px !important;
    }

    .footer::before {
        width: 120px;
        opacity: 0.3;
    }
}

/* ──────────────────────────────────────────────────────────────
   Subject Details page
   ────────────────────────────────────────────────────────────── */
.subject-details { background: #fff; }

/* Reduce the newsletter top padding on the subject details page only. */
.subject-details ~ .newsletter {
    padding-top: 20px !important;
}

.subject-details__sidebar {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.subject-details__schedule-cta {
    align-self: flex-start;
    max-width: 100%;
    white-space: normal;
}

.subject-details__card {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 22px 24px;
}

.subject-details__card-title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e3e4ef;
}

.subject-details__bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.subject-details__bullet-list li {
    position: relative;
    padding: 6px 0 6px 20px;
    font-size: 0.95rem;
    line-height: 1.45;
}
.subject-details__bullet-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--tosa-blue);
    font-weight: 700;
    font-size: 1.1rem;
}

.subject-details__lang-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.subject-details__lang-pill {
    border: 1px solid #d9dae6;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 0.9rem;
    background: #fff;
}

.subject-details__resource-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.subject-details__resource-list li {
    position: relative;
    padding: 6px 0 6px 20px;
    font-size: 0.95rem;
}
.subject-details__resource-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--tosa-orange);
    font-weight: 700;
    font-size: 1.1rem;
}
.subject-details__resource-link {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.subject-details__resource-link:hover {
    color: #d63d09;
}

.subject-details__main {
    min-width: 0;
}

.subject-details > .container-xl.pt-5 {
    max-width: 100%;
    padding: 0 !important;
}
.subject-details > .container-xl.pb-5 {
    max-width: 100%;
    padding-left: clamp(16px, 4vw, 64px);
    padding-right: clamp(16px, 4vw, 64px);
}
.subject-details__hero {
    background: var(--tosa-light-blue) url(/build/images/Banner.ffea2286.jpg) center/cover no-repeat;
    padding: 48px 24px;
    margin-bottom: 48px;
    position: relative;
    overflow: hidden;
    /* Contain the ::before blend so it only recolors the banner artwork. */
    isolation: isolate;
}
.subject-details__hero-disclaimer {
    margin: 32px 0 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: #1a1a2e;
    max-width: 860px;
}
/* Recolors the shared banner with the subject's gamme color (set inline as
   --gamme-color, same palette as the certifications-page tabs). */
.subject-details__hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--gamme-color, transparent);
    mix-blend-mode: color;
    pointer-events: none;
}
.subject-details__hero-title {
    font-size: clamp(2rem, 4vw, 3rem);
    color: #1a1a1a;
    margin: 0;
}
/* Long product names must still fit the painted banner box. */
.subject-details__hero-title--long {
    font-size: clamp(1.5rem, 2.8vw, 2.2rem);
    overflow-wrap: break-word;
}
.subject-details__hero-tile {
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.subject-details__hero-icon {
    width: 160px;
    height: 160px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}
.subject-details__hero-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Desktop: lock the hero to the banner's aspect ratio so `cover` fills it
   exactly (no distortion, no letterbox). The square in the banner then sits
   at a fixed fraction, so the logo can be centered on it at any width. */
@media (min-width: 768px) {
    .subject-details__hero {
        aspect-ratio: 1920 / 592;
        padding: 0;
    }
    .subject-details__hero-title {
        position: absolute;
        left: 3.5%;
        top: 50%;
        transform: translateY(-50%);
        max-width: 46%;
    }
    .subject-details__hero-tile {
        position: absolute;
        left: 78%;
        top: 52%;
        transform: translate(-50%, -50%);
        margin: 0;
        padding: 0;
    }
}

.subject-details__section { margin-bottom: 56px; }

.subject-details__section-title {
    font-size: clamp(1.6rem, 2.6vw, 2.2rem);
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 18px;
    line-height: 1.2;
}

.subject-details__sub-title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 28px 0 12px;
}

.subject-details__inline-link {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.subject-details__inline-link:hover {
    color: #d63d09;
}

.subject-details__sample-wrap,
.subject-details__chart-wrap {
    margin: 24px 0;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 16px;
}
.subject-details__sample-img,
.subject-details__chart { width: 100%; height: auto; }

.subject-details__domains {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.subject-details__domain-card {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 18px;
    align-items: flex-start;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 20px 24px;
}
.subject-details__domain-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tosa-blue);
}
.subject-details__domain-icon img { max-width: 100%; max-height: 100%; }
.subject-details__domain-title {
    color: var(--tosa-blue);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 8px;
}

.subject-details__table-wrap {
    background: #fff;
    border: 2px solid #c9cbe0;
    border-radius: 6px;
    overflow-x: auto;
    margin-top: 16px;
}
.subject-details__score-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 520px;
}
.subject-details__score-table th,
.subject-details__score-table td {
    padding: 18px 24px;
    text-align: left;
    vertical-align: top;
    font-size: 0.95rem;
    border-bottom: 2px solid #c9cbe0;
    border-right: 2px solid #c9cbe0;
}
.subject-details__score-table th:last-child,
.subject-details__score-table td:last-child {
    border-right: none;
}
.subject-details__score-table tbody tr:last-child td {
    border-bottom: none;
}
.subject-details__score-table thead th {
    color: var(--tosa-blue);
    font-weight: 700;
    background: #fff;
}
.subject-details__score-table tbody tr:nth-child(odd) td {
    background: #f5f7fd;
}
.subject-details__score-table .subject-details__credly-link,
a.subject-details__credly-link {
    color: var(--tosa-orange) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 500;
}
.subject-details__score-table .subject-details__credly-link:hover,
a.subject-details__credly-link:hover {
    color: #d63d09 !important;
}

.subject-details__prep-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 8px;
}
.subject-details__prep-item {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 20px;
    align-items: flex-start;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 22px 26px;
}
.subject-details__prep-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #eef0fb;
    overflow: hidden;
    flex-shrink: 0;
}
.subject-details__prep-icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}
.subject-details__prep-body { min-width: 0; }
.subject-details__prep-title {
    color: var(--tosa-blue);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 8px;
    line-height: 1.3;
}
.subject-details__prep-desc {
    font-size: 0.95rem;
    line-height: 1.55;
}
.subject-details__prep-desc p { margin-bottom: 0.6em; }
.subject-details__prep-desc p:last-child { margin-bottom: 0; }

.subject-details__flow { text-align: center; }
.subject-details__flow img { max-width: 100%; height: auto; }

.subject-details__bundle-card {
    position: relative;
    background: var(--tosa-blue);
    padding: 32px 36px;
    margin-top: 16px;
    max-width: 520px;
    clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 100%, 0 100%);
}
/* Inner fill inset by the border width — the blue card background showing
   through the 2px gap is the border, and it follows the diagonal cut too. */
.subject-details__bundle-card::before {
    content: "";
    position: absolute;
    inset: 2px;
    background: #f5f6ff;
    clip-path: polygon(0 0, calc(100% - 38px) 0, 100% 38px, 100% 100%, 0 100%);
    z-index: 0;
}
.subject-details__bundle-card > * {
    position: relative;
    z-index: 1;
}
.subject-details__bundle-badge {
    max-width: 160px;
    margin-bottom: 16px;
}
.subject-details__bundle-badge img { width: 100%; height: auto; }
.subject-details__bundle-title {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 12px;
    color: #1a1a1a;
}
.subject-details__bundle-desc { margin-bottom: 20px; }

.subject-details__bundle-tiers {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 16px;
    padding-top: 20px;
    border-top: 1px solid #d4d6f0;
}
.subject-details__bundle-tier {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 16px;
    align-items: flex-start;
}
.subject-details__bundle-tier-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tosa-blue);
}
.subject-details__bundle-tier-icon img { max-width: 100%; max-height: 100%; }
.subject-details__bundle-tier-title {
    color: var(--tosa-blue);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 4px;
}

@media (max-width: 991.98px) {
    .subject-details__sidebar {
        position: static;
        margin-bottom: 32px;
    }
    .subject-details__hero { padding: 32px 24px; }
    .subject-details__hero-tile { margin-top: 24px; }
}

@media (max-width: 575.98px) {
    .subject-details__hero { padding: 24px 18px; }
    .subject-details__card { padding: 18px 20px; }
    .subject-details__domain-card {
        grid-template-columns: 1fr;
        padding: 18px;
    }
    .subject-details__domain-icon {
        width: 48px;
        height: 48px;
    }
    .subject-details__bundle-card { padding: 22px 20px; }
    .subject-details__prep-item {
        grid-template-columns: 56px 1fr;
        gap: 14px;
        padding: 18px 20px;
    }
    .subject-details__prep-icon {
        width: 48px;
        height: 48px;
    }
}


/* ── Higher Education page ──────────────────────── */

/* Banner */
.he-banner {
    position: relative;
    width: 100%;
    height: 592px;
    overflow: hidden;
    background: #fff;
}
.he-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.he-banner__bg--k12 {
    object-position: right 27%;
}

.he-banner::after {
  background: linear-gradient(90deg, rgba(255,255,255,0.92) 0%, rgba(255, 255, 255, 0.53) 40%, rgba(255, 255, 255, 0) 65%);
  content: '';
  position: absolute;
  inset: 0;
}

.he-banner__inner {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    z-index: 2;
}
.he-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    max-width: 540px;
}

/* S1 Drive Student Success */
.he-s1 {
    padding: 80px 0;
}
.he-s1__media {
    position: relative;
}
.he-s1__media > img {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
    border-radius: 8px;
}
.he-s1__media::before,
.he-s1__media::after {
    content: '';
    position: absolute;
    background-image: radial-gradient(circle, #c4c4c4 2px, transparent 2.5px);
    background-size: 14px 14px;
    z-index: 2;
    pointer-events: none;
}
.he-s1__media::before {
    top: -28px;
    left: 0;
    width: 70px;
    height: 14px;
}
.he-s1__media::after {
    bottom: -32px;
    right: 0;
    width: 70px;
    height: 28px;
}
.he-s1__photo {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
}
.he-s1__vector {
    position: absolute;
    top: -91px;
    left: -237px;
    width: 124%;
    height: auto;
    z-index: 0;
    pointer-events: none;
}
.he-s1__text {
    color: #333;
    line-height: 1.6;
}

/* S1b Solving Key Challenges in K-12 Education */
.he-s1b {
    position: relative;
    padding: 80px 0 0;
    background-color: #F5FAFC;
    background-image: url(/build/images/shape-yellow.8885795a.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
}
.he-s1b > .container-xl { padding-bottom: 0 !important; }
.he-s1b .he-features__icon { background: transparent; }
.he-s1b__intro {
    color: #333;
    line-height: 1.6;
    max-width: 880px;
}
.he-s1b__media {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.he-s1b__boy {
    position: relative;
    display: block;
    width: 100%;
    max-width: 520px;
    height: auto;
}

/* S2 Why HE Institutions Choose Tosa */
.he-s2 {
    background: linear-gradient(135deg, #E6F3F4 0%, #F2F8F8 100%);
    padding: 80px 0;
}
.he-s2__media {
    position: relative;
    background: var(--tosa-teal);
    padding: 30px 30px 0;
    clip-path: polygon(0 0, calc(100% - 50px) 0, 100% 50px, 100% 100%, 0 100%);
    overflow: hidden;
}
.he-s2__vector {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.45;
    z-index: 0;
    pointer-events: none;
    filter: brightness(0) invert(1); /* white tint over teal bg */
    mix-blend-mode: soft-light;
}
.he-s2__portrait {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
}

/* He Features (image + checklist) — used in S2 */
.he-features__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.he-features__item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 18px 0;
    border-top: 1px solid rgba(69, 69, 219, 0.18);
}
.he-features__list .he-features__item:first-child {
    border-top: none;
    padding-top: 0;
}
.he-features__icon-wrap {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}
.he-features__icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    object-fit: cover;
    background: #fff;
}
.he-features__bar {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    border-radius: 2px;
    filter: blur(7px);
}
.he-features__title {
    font-size: 1.0625rem;
    color: var(--tosa-blue);
    margin-bottom: 6px;
}
.he-features__text {
    color: #333;
    line-height: 1.55;
    font-size: 0.95rem;
}

/* S3 Key Tosa Differentiators */
.he-s3 {
    background: linear-gradient(135deg, #E6F3F8 0%, #F2F8FB 100%);
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}
.he-s3::before,
.he-s3::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(152, 221, 229, 0.35);
    pointer-events: none;
}
.he-s3::before {
    width: 280px;
    height: 280px;
    left: -100px;
    top: 30%;
}
.he-s3::after {
    width: 320px;
    height: 320px;
    right: -120px;
    bottom: 10%;
}
.he-s3__cards {
    position: relative;
    z-index: 1;
}
@media (min-width: 992px) {
    .he-s3__cards {
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }
}
.he-s3__card {
    background: #fff;
    border-radius: 4px;
    padding: 40px 28px;
    height: 100%;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}
@media (min-width: 992px) {
    .he-s3__card {
        border-radius: 0;
        padding: 48px 40px;
        box-shadow: none;
        border-right: 1px solid rgba(56, 70, 216, 0.2);
    }
    .he-s3__cards > *:last-child .he-s3__card {
        border-right: none;
    }
}
.he-s3__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    border-radius: 0;
    object-fit: cover;
}
.he-s3__bar {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    border-radius: 2px;
    filter: blur(7px);
    margin-bottom: 28px;
}
.he-s3__title {
    font-size: 1.375rem;
    color: var(--tosa-blue);
    margin-bottom: 16px;
    line-height: 1.3;
}
.he-s3__text {
    color: #555;
    font-size: 0.9375rem;
    line-height: 1.6;
}

/* S4 Turnkey Credentialing Solution */
.he-s4 {
    background: var(--tosa-blue);
    padding: 80px 0;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.he-s4__title {
    color: #fff;
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
}
.he-s4__text {
    color: rgba(255,255,255,0.95);
    line-height: 1.6;
}
.he-s4__browser {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 16px 60px rgba(0,0,0,0.2);
}
.he-s4__browser-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    background: #f0f0f5;
    border-bottom: 1px solid #e0e0e5;
}
.he-s4__browser-bar span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ccc;
}
.he-s4__browser-bar span:nth-child(1) { background: #ff5f56; }
.he-s4__browser-bar span:nth-child(2) { background: #ffbd2e; }
.he-s4__browser-bar span:nth-child(3) { background: #27c93f; }
.he-s4__url {
    flex: 1;
    margin-left: 12px;
    background: #fff;
    border-radius: 4px;
    padding: 4px 10px;
    font-size: 0.75rem;
    color: #666;
}
.he-s4__video {
    width: 100%;
    height: 360px;
    object-fit: cover;
    background: var(--tosa-yellow);
    display: block;
}

/* S5 Why Students/Instructors Love Tosa */
.he-s5 {
    background: linear-gradient(135deg, #fff 0%, #F2F8FB 100%);
    padding: 60px 0;
}
.he-s5__card {
    background: #fff;
    box-shadow: 0 12px 50px rgba(0,0,0,0.10);
    overflow: hidden;
    max-height: 770px;
}
.he-s5__media {
    height: 100%;
    min-height: 280px;
    overflow: hidden;
    border-top-right-radius: 80px;
}
.he-s5 .flex-row-reverse .he-s5__media {
    border-top-right-radius: 0;
    border-top-left-radius: 80px;
}
.he-s5__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.he-s5__body {
    padding: 40px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.he-s5__body .cta-btn {
    align-self: flex-start;
    margin-bottom: 24px;
}

/* ── Become a Tosa-Approved Testing Center (reusable CTA banner) ── */
.cert-testing-center {
    padding: 0;
    background: var(--tosa-yellow);
    overflow: hidden;
}
.cert-testing-center > .container-xl {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.cert-testing-center__row {
    min-height: 620px;
}
.cert-testing-center__row > [class*="col-"] {
    display: flex;
}
.cert-testing-center__media {
    flex: 1;
    width: 100%;
    min-height: 620px;
    background: url(/build/images/image-with-bg.5b44957a.jpg) no-repeat center center;
    background-size: contain;
}
.cert-testing-center__body {
    padding: 60px 96px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}
.cert-testing-center__body .cta-btn {
    align-self: flex-start;
}
.cert-testing-center__text {
    color: #1a1a2e;
    line-height: 1.6;
    font-size: 1.0625rem;
}
@media (min-width: 1200px) {
    .cert-testing-center__row,
    .cert-testing-center__media {
        min-height: 720px;
    }
    .cert-testing-center__body {
        padding: 100px 320px 100px 96px;
    }
}
.he-s5__subtitle {
    color: var(--tosa-blue);
    font-size: 1.75rem;
}
.he-s5__text {
    color: #333;
    line-height: 1.6;
}

/* FAQ on dark blue */
.faq {
    padding: 0;
    background: var(--tosa-blue);
}
/* Variant for pages where the FAQ sits directly above the .he-cta, whose
   negative top margin would otherwise cover the last items. */
.faq--pad-cta {
    padding-bottom: 352px;
}
@media (max-width: 991.98px) {
    .faq--pad-cta { padding-bottom: 160px; }
}
@media (max-width: 767.98px) {
    .faq--pad-cta { padding-bottom: 112px; }
}
.faq__card {
    background: var(--tosa-blue);
    border-radius: 0;
    padding: 80px 48px;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.faq__accordion {
    max-width: 880px;
    margin: 24px auto 0;
}
.faq__item {
    background: transparent;
    border: 2px solid #fff;
    border-radius: 0;
    /* Override Bootstrap's accordion radius variables — the default
       :first-of-type / :last-of-type rules round the first and last
       button by reading these custom properties. */
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
    margin-bottom: 16px;
}
/* Bootstrap removes the top border from non-first items to avoid double
   borders when items stack — restore it because we want each item
   visibly framed. */
.faq__item:not(:first-of-type) {
    border-top: 2px solid #fff;
}
.faq__button {
    background: transparent;
    color: #fff;
    font-weight: 600;
    font-size: 1.0625rem;
    padding: 18px 24px;
    box-shadow: none;
    border-radius: 0;
}
.faq__button:not(.collapsed) {
    background: transparent;
    color: #fff;
    box-shadow: none;
}
.faq__button:focus {
    box-shadow: none;
    border-color: transparent;
}
.faq__button::after {
    background-image: none;
    content: "+";
    color: #fff;
    font-size: 1.5rem;
    width: auto;
    height: auto;
    transform: none;
    transition: transform 0.2s;
}
.faq__button:not(.collapsed)::after {
    content: "−"; /* U+2212 minus sign — replaces the + when the panel is open */
    background-image: none; /* kill Bootstrap's default chevron icon */
    transform: none;
}
.faq__body {
    color: rgba(255,255,255,0.85);
    padding: 0 24px 18px;
}
.faq__body p { margin-bottom: 12px; }
.faq__body p:last-child { margin-bottom: 0; }
.faq__body ul { margin: 4px 0 12px; padding-left: 20px; }
.faq__body li { margin-bottom: 6px; }
.faq__body strong { color: #fff; }
.faq__body a { color: #fff; text-decoration: underline; }
.faq__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
}
/* White on the dark-blue FAQ card (scoped to beat the generic link rule). */
.faq__body .faq__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
}
.faq__body .faq__link:hover {
    color: #fff;
    text-decoration: underline;
}
.faq__body .faq__link .bi { font-size: 0.78rem; }

/* CTA Ready to Empower */
.he-cta {
    background: transparent;
    padding: 0;
    position: relative;
    margin-top: -320px;
    margin-bottom: -320px;
    z-index: 2;
}
.he-cta__card {
    background: var(--tosa-yellow);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    max-width: 1140px;
    margin: 0 auto;
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
}
.he-cta__img {
    width: 100%;
    max-width: 480px;
    height: auto;
    display: block;
}
.he-cta__body {
    padding: 24px 48px 24px 0;
}
.he-cta__text {
    color: #333;
    line-height: 1.6;
    font-size: 1rem;
}

/* ── 404 / Error page ────────────────────────────────── */
.error-page {
    background: #f7f8fe;
    padding: 96px 0 120px;
    min-height: 70vh;
    display: flex;
    align-items: center;
}
.error-page__code {
    font-size: clamp(6rem, 16vw, 12rem);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -0.04em;
    margin: 0 0 1rem;
    color: var(--tosa-orange);
    background: linear-gradient(180deg, var(--tosa-orange) 0%, #ffb38a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.error-page__title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    color: #1a1a2e;
    line-height: 1.2;
}
.error-page__text {
    color: #4a4a55;
    font-size: 1.0625rem;
    line-height: 1.6;
    max-width: 580px;
}
.error-page__actions {
    display: inline-flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.error-page__link {
    color: var(--tosa-blue);
    text-decoration: none;
    font-weight: 600;
}
.error-page__link:hover {
    color: #2d2db8;
    text-decoration: underline;
}

/* ── Blog page ──────────────────────────────────────── */
.blog-header {
    background: #f7f8fe;
}
.blog-header__title {
    font-size: clamp(2.25rem, 4vw, 3rem);
    color: #1a1a2e;
    letter-spacing: -0.02em;
}
.blog-header__text {
    color: #4a4a55;
    font-size: 1.0625rem;
    line-height: 1.6;
    max-width: 720px;
}

/* ── Server-rendered grid ─────────────────────────────── */
.blog-grid-section {
    background: #f7f8fe url(/build/images/scoring-bg.06285efa.jpg) bottom/cover no-repeat;
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 2rem;
    margin-bottom: 3rem;
}
@media (max-width: 991.98px) {
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .blog-grid { grid-template-columns: 1fr; }
}

.blog-card {
    background: transparent;
    display: flex;
    flex-direction: column;
}
.blog-card__media {
    display: block;
    overflow: hidden;
    background: #f1f3f8;
    /* Top-right corner clipped diagonally (no rounded radius). */
    clip-path: polygon(0 0, calc(100% - 32px) 0, 100% 32px, 100% 100%, 0 100%);
}
.blog-card__img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}
.blog-card__body {
    padding: 1.25rem 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    flex: 1 1 auto;
}
.blog-card__title {
    font-size: 1.15rem;
    line-height: 1.35;
    font-weight: 700;
    margin: 0;
    color: #1a1a2e;
    flex: 1 1 auto;
}
.blog-card__title a {
    color: inherit;
    text-decoration: none;
}
.blog-card__title a:hover {
    color: #F14910;
}
.blog-card__more {
    color: #F14910;
    font-weight: 600;
    text-decoration: none;
    font-size: .95rem;
    margin-top: .25rem;
}
.blog-card__more:hover {
    color: #c8390a;
}

/* ── Card meta (author • read time) ──────────────────── */
.dib-meta-text {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .5rem;
    margin: 0;
    color: #6b7280;
    font-size: .85rem;
    line-height: 1.4;
}
.dib-meta-item {
    display: inline-flex;
    align-items: center;
}
.dib-meta-item + .dib-meta-item::before {
    content: "•";
    margin-right: .5rem;
    color: #b8bcc7;
}
.dib-meta-author {
    font-weight: 600;
    color: #1a1a2e;
}
.dib-meta-readtime {
    font-style: italic;
}

/* ── Pagination ──────────────────────────────────────── */
.blog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 2.5rem 0 1rem;
}
.blog-pagination__pages {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: .5rem;
}
.blog-pagination__btn,
.blog-pagination__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    height: 2.75rem;
    padding: 0 .9rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .2s, color .2s, border-color .2s;
}
.blog-pagination__btn--nav {
    background: #F14910;
    color: #fff;
    padding: 0 1.6rem;
    gap: .5rem;
    min-width: 9rem;
}
.blog-pagination__btn--prev {
    /* top-left corner cut diagonally (bottom edges stay square) */
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%, 0 14px);
}
.blog-pagination__btn--next {
    /* top-right corner cut diagonally (bottom edges stay square) */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.blog-pagination__btn--nav:hover {
    background: #c8390a;
    color: #fff;
}
.blog-pagination__btn.is-disabled {
    background: #f1f1f1;
    color: #aaa;
    pointer-events: none;
}
.blog-pagination__page {
    background: rgba(69, 69, 219, 0.1); /* var(--tosa-blue) @ 10% */
    color: var(--tosa-blue);
    border-color: transparent;
}
.blog-pagination__page:hover {
    background: rgba(69, 69, 219, 0.18);
    color: var(--tosa-blue);
    border-color: transparent;
}
.blog-pagination__page.is-active {
    background: var(--tosa-blue);
    color: #fff;
    border-color: var(--tosa-blue);
    cursor: default;
}

/* Single-post embed wrapper (kept for ?p=<slug>) */
.blog-feed {
    background: url(/build/images/scoring-bg.06285efa.jpg) center/cover no-repeat;
    min-height: 480px;
}
.blog-feed__container {
    max-width: 1100px;
    margin: 0 auto;
}
.blog-feed__loading {
    color: var(--tosa-blue);
}

/* ── Single post (server-rendered) ──────────────────── */
.dib-post {
    background: transparent;
    padding: 48px clamp(1.25rem, 4vw, 3.5rem);
    max-width: none;
    width: 100%;
    margin: 0;
}
.dib-post-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.2;
    margin: 0 0 1rem;
}
.dib-post .dib-meta-text {
    margin-bottom: 1.5rem;
}
.dib-post-featured-image {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 2rem;
}
.dib-audio {
    background: #fff;
    border: none;
    border-radius: 0;
    padding: .85rem 1.25rem;
    margin: 0 0 2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 6px 20px rgba(20, 30, 60, 0.08);
}
.dib-audio audio {
    display: none; /* hidden — replaced by the custom controls below */
}
.dib-audio__btn {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    color: #1a1a2e;
    font-size: 1.25rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.dib-audio__btn:hover {
    color: #000;
}
.dib-audio__play {
    color: var(--tosa-orange);
    font-size: 1.85rem;
}
.dib-audio__play:hover {
    color: #c8390a;
}
.dib-audio__time {
    font-variant-numeric: tabular-nums;
    color: #1a1a2e;
    font-size: .9rem;
    white-space: nowrap;
    font-weight: 500;
}
.dib-audio__progress {
    flex: 1 1 auto;
    height: 6px;
    background: #DBEDF5; /* light cyan track */
    border-radius: 999px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    min-width: 80px;
}
.dib-audio__progress-fill {
    background: var(--tosa-teal); /* darker teal progress */
    width: 0%;
    height: 100%;
    border-radius: 999px;
    transition: width .1s linear;
}
.dib-audio__progress:focus {
    outline: 2px solid rgba(13, 107, 110, 0.4);
    outline-offset: 2px;
}
.dib-post-content {
    color: #2a2a3a;
    line-height: 1.7;
    font-size: 1.0625rem;
}
/* All links inside the article use the Tosa orange. */
.dib-post a,
.dib-post a:visited,
.dib-post a span {
    color: var(--tosa-orange) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.dib-post a:hover,
.dib-post a:focus {
    color: #c8390a !important;
    text-decoration: underline;
}
.dib-post-content p { margin: 0 0 1.1rem; }
.dib-post-content img { max-width: 100%; height: auto; }
.dib-post-content h2 { font-size: 1.5rem; margin: 2rem 0 1rem; }
.dib-post-content h3 { font-size: 1.2rem; margin: 1.6rem 0 .8rem; }
.dib-related {
    margin: 4rem 0 0;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(20, 30, 60, 0.12);
}
.dib-related__title {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 700;
    color: #1a1a2e;
    margin: 0;
    text-align: center;
}
.dib-related__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
@media (max-width: 991.98px) {
    .dib-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .dib-related__grid { grid-template-columns: 1fr; }
}
/* Related-post card titles stay black + no underline,
   overriding the orange/underline rule applied to all anchors inside .dib-post. */
.dib-related .blog-card__title a,
.dib-related .blog-card__title a:visited {
    color: #1a1a2e !important;
    text-decoration: none !important;
}
.dib-related .blog-card__title a:hover {
    color: #F14910 !important;
}
.dib-related .blog-card__more,
.dib-related .blog-card__more span,
.dib-related .blog-card__title a span {
    text-decoration: none !important;
}

.dib-post-back {
    margin-top: 2.5rem;
    font-weight: 600;
}
.dib-post-back a {
    color: var(--tosa-blue);
    text-decoration: none;
}
.dib-post-back a:hover {
    text-decoration: underline;
}

/* Online-store variant of the newsletter — extra-tall section with the team
   photo above the form. */
.newsletter--online-store {
    padding-top: 80px !important;
    padding-bottom: 96px !important;
}
.newsletter--online-store__photo-wrap {
    max-width: 1100px;
    margin: 0 auto;
}
.newsletter--online-store__photo {
    display: block;
    width: 100%;
    height: auto;
    clip-path: polygon(0 0, calc(100% - 80px) 0, 100% 80px, 100% 100%, 0 100%);
}

/* ── Book Exam page ──────────────────────────────────── */

/* Hero — full-section cover image with overlay copy on the left.
   The aspect-ratio is locked to the source image (≈1600×873) so the entire
   photo is always visible, edge-to-edge. Capped to stay below viewport
   height so the whole hero (and a hint of the section below) fits on screen. */
.be-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 1600 / 873;
    max-height: calc(100vh - 100px);
    min-height: 360px;
    overflow: hidden;
    background: #eaf3fb;
}
.be-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}
.be-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.35) 60%, rgba(255, 255, 255, 0) 75%);
}
.be-hero__inner {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 64px;
}
.be-hero__copy { max-width: 620px; }
.be-hero__title {
    color: #1a1a2e;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
}
.be-hero__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
.be-hero__link {
    color: var(--tosa-orange);
    text-decoration: underline;
}
.be-hero__link:hover {
    color: var(--tosa-orange);
}
@media (max-width: 767.98px) {
    .be-hero__overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.85) 100%);
    }
}

/* Steps */
.be-steps {
    background: #fff;
}
.be-steps__card {
    background: transparent;
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px clamp(20px, 3vw, 56px);
    box-shadow: none;
}
.be-step {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    padding: 28px 26px;
    background: #fff;
    height: 100%;
    min-height: 156px;
}
.be-step__icon-wrap {
    position: relative;
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Soft blue blurred line under the icon. */
.be-step__icon-wrap::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -10px;
    transform: translateX(-50%);
    width: 60px;
    height: 6px;
    background: var(--tosa-blue);
    border-radius: 999px;
    filter: blur(6px);
    opacity: 0.5;
    pointer-events: none;
}
.be-step__icon {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: block;
}
.be-step__title {
    color: var(--tosa-blue);
    font-size: 1.05rem;
    margin: 0 0 6px;
}
.be-step__text {
    color: #4a4a5e;
    line-height: 1.55;
    font-size: 0.92rem;
}
.be-step__link {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 500;
}
.be-step__link:hover {
    color: #c8390a;
}

/* ─── Purchase wizard (4-step browser mockup) ────────────────────── */
.be-purchase {
    background-color: #f7fbfd;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Step indicator — solid rectangles, one per step. Inactive steps stay
   light blue with grey text; the active step and previously-completed steps
   get a solid Tosa blue background with white text. */
.be-purchase__steps {
    list-style: none;
    padding: 0;
    margin: 0 auto 40px;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
    max-width: 1100px;
}
.be-purchase__step {
    flex: 1;
    text-align: center;
    color: #9aa0b4;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
    padding: 22px 16px;
    background: #eaf3fb;
    box-shadow: 0 4px 14px rgba(20, 30, 60, 0.04);
    transition: background-color .2s, color .2s;
}
.be-purchase__step.is-active,
.be-purchase__step.is-done {
    background: var(--tosa-blue);
    color: #fff;
}
/* Skipped (e.g. step 2 when the chosen subject has no language/version
   choice to make) — keep the dot visible but visibly muted so the flow
   doesn't shift and the user understands this step was bypassed. */
.be-purchase__step.is-skipped {
    background: #d8dde8;
    color: #8b93a8;
    cursor: not-allowed;
    opacity: 0.85;
}
.be-purchase__step.is-skipped.is-done,
.be-purchase__step.is-skipped.is-active {
    /* If skipped, never show the active/done blue treatment. */
    background: #d8dde8;
    color: #8b93a8;
}
.be-purchase__step-num { display: block; }

/* Browser mockup wrapper — the browser chrome is stretched as a background,
   and .be-purchase__inner sits inside, padded down past the URL bar so the
   content lives within the chrome's empty area. The inner radius matches the
   chrome's rounded corners so the white frame doesn't peek out past them. */
.be-purchase__frame {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% 100%;
    border-radius: 0 0 13px 13px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(20, 30, 60, 0.10);
}
.be-purchase__inner {
    /* The browser chrome PNG (1440×961) reserves ~75px at the top for the
       URL bar — push our content past it. Bottom padding gives the chrome
       a thin frame around the content too. */
    padding: 92px clamp(28px, 3vw, 56px) 56px;
}
.be-purchase__pane { display: none; min-height: 520px; }
.be-purchase__pane.is-active { display: block; }
/* Step 3 has fewer items than the others — center its content vertically so
   the pane never looks cramped against the wider step 1 / 2 / 4 layouts. */
.be-purchase__pane[data-purchase-pane="3"].is-active {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Tabs (step 1) — reuse the chrome from .cert-offerings */
.be-purchase__tabs {
    justify-content: center;
    gap: 0;
    border-bottom: 1px solid #ececf3;
    margin-bottom: 28px;
}
.be-purchase__tabs .nav-link {
    border: 0;
    background: transparent;
    padding: 12px 24px;
    color: #777;
    font-weight: 600;
    border-bottom: 3px solid transparent;
    border-radius: 0;
}
.be-purchase__tabs .nav-link.active {
    background: #fff;
    color: var(--tosa-blue);
    border-bottom-color: var(--tosa-blue);
}
.be-purchase__tab-logo {
    height: 48px;
    width: auto;
    display: block;
}
.be-purchase__heading {
    color: #1a1a2e;
    font-size: 1.5rem;
    margin: 0 0 4px;
}
.be-purchase__pane-intro {
    color: #2a2a3a;
    font-size: 1rem;
    line-height: 1.55;
    text-align: center;
    max-width: 760px;
    margin: 0 auto 28px;
}
.be-purchase__subtitle {
    font-size: 0.95rem;
    margin: 0;
}

/* Subject buttons */
.be-purchase__subject {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    aspect-ratio: 1 / 1;
    width: 100%;
    padding: 16px 10px;
    background: transparent;
    border: 1px solid #E6F3F9;
    color: #1a1a1a;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color .2s, border-color .2s, box-shadow .2s, transform .2s, color .2s;
}
.be-purchase__subject:hover {
    background: #fff;
    border-color: var(--tosa-orange);
    box-shadow: 0 6px 20px rgba(241, 73, 16, 0.10);
    transform: translateY(-2px);
    color: var(--tosa-blue);
}
.be-purchase__subject img {
    max-width: 100%;
    max-height: 64px;
    object-fit: contain;
}
.be-purchase__subject span { line-height: 1.2; text-align: center; }

/* Step 2 — language + version */
.be-purchase__group-title {
    color: var(--tosa-blue);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 16px;
}
.be-purchase__radio-list {
    list-style: none;
    padding: 0;
    margin: 0 0 8px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.be-purchase__radio-list label {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    color: #1a1a2e;
    font-size: 1rem;
}
.be-purchase__radio-list input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: var(--tosa-orange);
}
.be-purchase__photo {
    display: block;
    width: 100%;
    height: auto;
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%);
}

/* Step 1 — subject details (confirmation card after picking a subject).
   Rectangular layout, mirrors the legacy bookanexam page treatment. */
.be-purchase__details {
    padding: 4px 8px;
}
.be-purchase__details[hidden] { display: none; }
.be-purchase__details-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}
.be-purchase__details-back {
    background: transparent;
    border: 0;
    color: var(--tosa-orange);
    font-size: 1.1rem;
    line-height: 1;
    padding: 6px 8px;
    cursor: pointer;
    border-radius: 0;
}
.be-purchase__details-back:hover {
    color: #d83a04;
}
.be-purchase__details-eyebrow {
    color: #1a1a2e;
    font-size: 1rem;
    font-weight: 500;
}
.be-purchase__details-eyebrow strong {
    font-weight: 700;
}
.be-purchase__details-icon {
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 0;
    padding: 56px 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
}
.be-purchase__details-icon img {
    max-width: 220px;
    max-height: 220px;
    width: 100%;
    height: auto;
    object-fit: contain;
}
.be-purchase__details-desc {
    color: #1f2937;
    line-height: 1.6;
    font-size: 0.95rem;
    margin-bottom: 18px;
}
.be-purchase__details-h {
    color: var(--tosa-blue);
    font-size: 1rem;
    font-weight: 700;
    margin: 18px 0 8px;
}
.be-purchase__details-list {
    list-style: none;
    padding: 0;
    margin: 0 0 4px;
    color: #374151;
    font-size: 0.9rem;
    line-height: 1.7;
}
.be-purchase__details-list li {
    padding-left: 16px;
    position: relative;
}
.be-purchase__details-list li::before {
    content: '›';
    color: #6b7280;
    position: absolute;
    left: 0;
    font-weight: 700;
}
.be-purchase__details-learnmore {
    margin: 18px 0 0;
    color: #1f2937;
    font-size: 0.9rem;
}
.be-purchase__details-learnmore a {
    color: var(--tosa-orange);
    font-weight: 700;
    text-decoration: none;
}
.be-purchase__details-learnmore a:hover {
    text-decoration: underline;
}

/* Step 3 — proctoring */
.be-purchase__proctor {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 36px;
    padding: 80px 32px;
    min-height: 360px;
    height: 100%;
    border: 1px solid #d9dae6;
    cursor: pointer;
    text-align: center;
    transition: border-color .2s, background-color .2s;
}
.be-purchase__proctor:hover {
    border-color: var(--tosa-blue);
    background: #f7fbfd;
}
/* Selected state — match the orange ✓ in the corner with an orange
   card border so the choice reads at a glance. `:has(input:checked)`
   targets the label whose nested radio is checked. */
.be-purchase__proctor:has(input:checked) {
    border-color: var(--tosa-orange);
    background: #fff7f3;
}
.be-purchase__proctor input[type="checkbox"],
.be-purchase__proctor input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.be-purchase__proctor-check {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 22px;
    height: 22px;
    border: 1.5px solid #d9dae6;
    background: #fff;
    transition: background-color .15s, border-color .15s;
}
.be-purchase__proctor input:checked ~ .be-purchase__proctor-check {
    background: var(--tosa-orange);
    border-color: var(--tosa-orange);
}
.be-purchase__proctor input:checked ~ .be-purchase__proctor-check::after {
    content: '✓';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}
.be-purchase__proctor-icon {
    width: 110px;
    height: 110px;
    object-fit: contain;
}
.be-purchase__proctor-label {
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    max-width: 280px;
}
.be-purchase__proctor-text {
    color: #4a4a5e;
    font-size: 0.9rem;
    line-height: 1.55;
    max-width: 300px;
    margin-top: -20px;
}
.be-purchase__proctor-text a {
    color: var(--tosa-orange);
}
.be-purchase__proctor-error {
    color: var(--tosa-orange);
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    margin: 16px 0 0;
}

/* Next link */
.be-purchase__next {
    display: inline-block;
    color: var(--tosa-orange);
    font-weight: 700;
    text-decoration: none;
    font-size: 1rem;
    padding: 6px 4px;
}
.be-purchase__next:hover { color: #c8390a; }

/* Step 4 — packs */
.be-purchase__legal {
    color: #2a2a3a;
    font-size: 0.92rem;
    line-height: 1.55;
}
.be-purchase__packs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    border: 1px solid #ececf3;
}
@media (max-width: 991.98px) { .be-purchase__packs { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .be-purchase__packs { grid-template-columns: 1fr; } }
.be-purchase__pack {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-right: 1px solid #ececf3;
}
.be-purchase__pack:last-child { border-right: 0; }

.be-purchase__pack-head {
    padding: 22px 20px;
    background: #f5f7ff;
    border-bottom: 1px solid #ececf3;
    min-height: 92px;
    display: flex;
    align-items: center;
}
.be-purchase__pack.is-active .be-purchase__pack-head,
.be-purchase__pack:hover .be-purchase__pack-head {
    background: var(--tosa-orange);
}
.be-purchase__pack-name {
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.25;
}
.be-purchase__pack.is-active .be-purchase__pack-name,
.be-purchase__pack:hover .be-purchase__pack-name { color: #fff; }

.be-purchase__pack-body {
    flex: 1 1 auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.be-purchase__pack-desc {
    color: #2a2a3a;
    font-size: 0.92rem;
    line-height: 1.5;
    margin: 0;
}
/* Reset the browser's default ul indent inside the pack description so the
   bullets align with the rest of the text. The list comes straight from
   the API (spe_det.tosa_pri_det.des HTML), so we style it inline here. */
.be-purchase__pack-desc ul {
    list-style: disc;
    margin: 8px 0 0;
    padding-left: 1.1rem;
}
.be-purchase__pack-desc li {
    margin-bottom: 2px;
}
.be-purchase__pack-features {
    list-style: disc inside;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 auto;
}
.be-purchase__pack-features li {
    color: #2a2a3a;
    font-size: 0.9rem;
    line-height: 1.4;
}
.be-purchase__pack-features li::marker { color: var(--tosa-blue); }

.be-purchase__pack-price {
    color: var(--tosa-blue);
    font-size: 1.5rem;
    font-weight: 700;
    margin-top: auto;
}

.be-purchase__pack-checkout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 18px;
    background: #f5f7ff;
    border: 0;
    border-top: 1px solid #ececf3;
    color: #2a2a3a;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.be-purchase__pack.is-active .be-purchase__pack-checkout,
.be-purchase__pack:hover .be-purchase__pack-checkout {
    background: var(--tosa-orange);
    color: #fff;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
}
.be-purchase__pack-radio {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 1.5px solid #d9dae6;
    background: #fff;
    flex-shrink: 0;
    margin-right: 8px;
    position: relative;
}
.be-purchase__pack.is-active .be-purchase__pack-radio,
.be-purchase__pack:hover .be-purchase__pack-radio {
    background: var(--tosa-yellow);
    border-color: var(--tosa-yellow);
}
.be-purchase__pack.is-active .be-purchase__pack-radio::after,
.be-purchase__pack:hover .be-purchase__pack-radio::after {
    content: '✓';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a1a2e;
    font-size: 12px;
    font-weight: 700;
}
.be-purchase__pack-arrow { margin-left: auto; }

/* ── Contact Us page ─────────────────────────────────── */
.cu-banner {
    position: relative;
    width: 100%;
    min-height: 800px;
    overflow: hidden;
    background: #eaf3fb;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .cu-banner { min-height: 880px; }
}
.cu-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.cu-banner__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.88) 30%, rgba(255, 255, 255, 0.45) 55%, rgba(255, 255, 255, 0) 70%);
}
.cu-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 64px;
}
.cu-banner__copy { max-width: 520px; }
.cu-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.5rem, 4.5vw, 3.5rem);
}
.cu-banner__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1.125rem;
}
@media (max-width: 767.98px) {
    .cu-banner__overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.85) 100%);
    }
}

/* Form section */
.cu-form-section { background: #fff; }
.cu-form-card {
    position: relative;
    isolation: isolate;
    color: #fff;
    padding: 56px clamp(24px, 4vw, 64px);
    max-width: 1100px;
    margin: 0 auto;
}
.cu-form-card::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--tosa-blue);
    clip-path: polygon(0 0, calc(100% - 36px) 0, 100% 36px, 100% 100%, 0 100%);
}
.cu-form-card__title {
    color: #fff;
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    margin: 0 0 1.5rem;
}

.cu-form { width: 100%; }
.cu-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}
.cu-form__row--full {
    grid-template-columns: 1fr;
}
.cu-form__group { width: 100%; }
.cu-form__label {
    display: block;
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 500;
    margin-bottom: 8px;
    line-height: 1.3;
}
.cu-form__required {
    color: #ff5a5a;
    margin-left: 2px;
    font-weight: 700;
}
.cu-form__input {
    width: 100%;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 4px;
    color: #fff;
    font-size: 1rem;
    line-height: 1.4;
}
.cu-form__input::placeholder {
    color: rgba(255, 255, 255, 0.7);
}
.cu-form__input:focus {
    outline: 0;
    border-color: #fff;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}
.cu-form__textarea {
    resize: vertical;
    min-height: 120px;
}
.cu-form__consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 16px 0 8px;
    color: #fff;
    font-size: 1rem;
    line-height: 1.5;
}
.cu-form__consent input[type="checkbox"] {
    flex-shrink: 0;
    margin-top: 4px;
    width: 18px;
    height: 18px;
    accent-color: var(--tosa-orange);
}
.cu-form__privacy {
    margin: 0 0 24px 30px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.8125rem;
    line-height: 1.5;
}
.cu-form__privacy-link {
    color: rgba(255, 255, 255, 0.95);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cu-form__privacy-link:hover {
    color: #fff;
}
.cu-form__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
/* reCAPTCHA widget container — the iframe inserted by Google renders at
   ~304×78 with its own chrome, so we just give it a transparent slot. */
.cu-form__captcha {
    display: inline-block;
    min-height: 78px;
}
.cu-form__captcha .g-recaptcha {
    display: inline-block;
}

/* Inline error returned by the AJAX submit. */
.cu-form__error {
    margin: 0 0 12px;
    padding: 10px 14px;
    background: rgba(255, 73, 16, 0.18);
    border-left: 3px solid var(--tosa-orange);
    color: #fff;
    font-size: 0.92rem;
    line-height: 1.45;
}

/* Success confirmation shown after a valid client-side submit. */
.cu-form__success {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px 24px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #fff;
    line-height: 1.5;
    font-size: 1rem;
}
.cu-form__success i {
    color: var(--tosa-yellow);
    font-size: 1.5rem;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}
.cu-form__submit { flex-shrink: 0; }

@media (max-width: 575.98px) {
    .cu-form__row { grid-template-columns: 1fr; }
}

/* Office locations — reuses .wwa-offices__* classes from who-we-are */
.cu-offices {
    background-color: #e6f4f8;
    background-image: url("/build/images/How%20to%20Apply-bg.496bac33.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 40px 0;
}

/* Compact newsletter on contact-us page — trim shared 320px top padding. */
.cu-offices + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}

/* Shared office-locations card/pin/city styles used on both who-we-are and
   contact-us pages. Page-specific backgrounds live in their own stylesheets. */
.wwa-offices__row {
    align-items: stretch;
}
.wwa-offices__col + .wwa-offices__col {
    border-left: 1px solid rgba(26, 26, 46, 0.18);
}
.wwa-offices__card {
    background: transparent;
    border: 0;
    padding: 16px 28px;
    text-align: center;
    height: 100%;
    box-shadow: none;
    transition: transform .2s ease;
}
.wwa-offices__card:hover {
    transform: translateY(-2px);
}
.wwa-offices__pin {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: inline-block;
    margin-bottom: 1.5rem;
}
.wwa-offices__city {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    margin-bottom: 1rem;
}
.wwa-offices__addr {
    color: #1a1a2e;
    font-size: 1rem;
    line-height: 1.65;
}
@media (max-width: 767.98px) {
    .wwa-offices__col + .wwa-offices__col {
        border-left: 0;
        border-top: 1px solid rgba(26, 26, 46, 0.18);
    }
    .wwa-offices__card {
        padding: 28px 24px;
    }
}

/* ── State Approvals page ────────────────────────────── */

/* Banner */
.sa-banner {
    position: relative;
    width: 100%;
    min-height: 580px;
    overflow: hidden;
    background: #eaf3fb;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .sa-banner { min-height: 640px; }
}
.sa-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 70%;
    opacity: 0.85;
}
.sa-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
}
.sa-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
}

/* Section: Recognized Nationally (full-bleed image left) */
.sa-recognized {
    background: #fff;
    padding: 0;
}
.sa-recognized > .container-xl.py-5 {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.sa-recognized > .container-xl.py-5 > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    margin: 0;
}
.sa-recognized > .container-xl.py-5 > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}
.sa-recognized__img {
    display: block;
    width: 80%;
    height: auto;
    max-width: none;
    clip-path: none;
}
.sa-recognized__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
@media (min-width: 992px) {
    .sa-recognized > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 80px;
        padding-right: 120px;
    }
}
@media (min-width: 1400px) {
    .sa-recognized > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 120px;
        padding-right: 200px;
    }
}
@media (max-width: 991.98px) {
    .sa-recognized > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding: 40px 24px;
    }
}

/* Section: Approved Across the United States (dark map background) */
.sa-map {
    position: relative;
    color: #fff;
    background-color: #1f2a8d;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    padding: 80px 0;
}
.sa-map > .container-xl.py-5 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}
.sa-map__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(31, 42, 141, 0.92) 0%, rgba(31, 42, 141, 0.55) 60%, rgba(31, 42, 141, 0.85) 100%);
}
.sa-map__inner {
    position: relative;
    z-index: 2;
}
.sa-map__header {
    max-width: 1200px;
}
.sa-map__intro {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    max-width: 760px;
    font-size: 1.125rem;
}
.sa-map__states {
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
    max-width: 640px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 56px;
}
.sa-map__state {
    position: relative;
    padding-left: 28px;
    color: #fff;
    font-size: 1.25rem;
    line-height: 1.5;
    font-weight: 600;
}
.sa-map__state::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    width: 10px;
    height: 10px;
    background: var(--tosa-yellow);
    border-radius: 50%;
}
.sa-map__state-link {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1.5px;
}
.sa-map__state-link:hover {
    color: var(--tosa-yellow);
}
/* Yellow section-dots variant (override base section-dots span color) */
.section-dots--yellow span {
    background: var(--tosa-yellow);
}
@media (max-width: 767.98px) {
    .sa-map__states { grid-template-columns: 1fr; }
}

/* Combined section: Expanding Access + Bring Tosa to Your State */
.sa-combo {
    background-color: #f0f9fc;
    background-image: url("/build/images/Expanding%20Access-bg.bbb5784c.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 80px 0;
}
.sa-combo__row {
    padding: 32px 0;
}
.sa-combo__row + .sa-combo__row {
    margin-top: 32px !important;
}
.sa-combo__card {
    background: #fff;
    padding: 48px 56px;
    box-shadow: 0 12px 30px rgba(20, 30, 60, 0.08);
}
.sa-expanding__img,
.sa-bring__img {
    display: block;
    width: 67%;
    height: auto;
    clip-path: none;
}
.sa-expanding__text,
.sa-bring__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
@media (max-width: 991.98px) {
    .sa-expanding__img,
    .sa-bring__img {
        width: 100%;
    }
}
@media (max-width: 991.98px) {
    .sa-combo__card {
        padding: 32px 28px;
    }
}

/* Compact newsletter on state-approvals page — trim the shared section's
   deep 320px top padding sized for an overlapping testimonial. */
.sa-combo + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}
.sa-bring__list {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sa-bring__list li {
    position: relative;
    padding-left: 22px;
    color: #2a2a3a;
    font-size: 0.98rem;
    line-height: 1.5;
}
.sa-bring__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}

/* ── State detail page (e.g. /state/texas) ───────────── */

/* Banner */
.st-banner {
    position: relative;
    width: 100%;
    min-height: 460px;
    overflow: hidden;
    background: #dcebf7;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .st-banner { min-height: 520px; }
}
.st-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.st-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
}
.st-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    text-wrap: balance;
}
/* Keep long titles clear of the agency-logo zone on the right (the logo's
   horizontal position follows the banner artwork, so the safe width grows
   with the viewport). */
@media (min-width: 992px) {
    .st-banner__content { max-width: 50%; }
}
@media (min-width: 1200px) {
    .st-banner__content { max-width: 55%; }
}
@media (min-width: 1400px) {
    .st-banner__content { max-width: 60%; }
}
.st-banner__bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.st-banner__bullets li {
    position: relative;
    padding-left: 22px;
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 500;
}
.st-banner__bullets li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}
.st-banner__agency {
    position: absolute;
    top: 50%;
    left: calc(100% - 0.2162 * max(100%, 1686px));
    transform: translate(-50%, -50%);
    z-index: 3;
    width: clamp(220px, 26vw, 340px);
    height: clamp(140px, 15vw, 250px);
    object-fit: contain;
}

/* Intro + download */
.st-intro {
    padding: 2.5rem 0;
    background: #fff url(/build/images/Vector.f7946dca.png) no-repeat left 60px;
    background-size: 50% auto;
}
.st-intro__text {
    color: #2a2a3a;
    line-height: 1.7;
    font-size: 1.0625rem;
    max-width: 980px;
}

/* The Official Approved List (dark teal) */
.st-official {
    background-color: var(--tosa-teal);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
}
.st-official__sub {
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
}
.st-official__text {
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.65;
    font-size: 1rem;
}
.st-official__img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}
@media (min-width: 1400px) {
    .st-official__img {
        width: 83%;
        margin-left: auto;
    }
}
.st-quote {
    background: rgba(255, 255, 255, 0.08);
    border-left: 4px solid var(--tosa-yellow);
    padding: 24px 28px;
    margin: 0;
}
.st-quote p {
    color: rgba(255, 255, 255, 0.95);
    font-size: 0.95rem;
    line-height: 1.6;
    font-style: italic;
}
.st-quote cite {
    color: var(--tosa-yellow);
    font-size: 0.9rem;
    font-weight: 600;
    font-style: normal;
}

/* Eligible Schools and Grades */
.st-eligible { background: #fff; }
.st-eligible__img {
    display: block;
    width: 80%;
    height: auto;
    border-radius: 0;
}
.st-eligible__text,
.st-text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
.st-h3 {
    color: #1a1a2e;
    font-size: clamp(1.4rem, 2.4vw, 1.85rem);
    font-weight: 700;
}
.st-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}
/* Portrait shots (e.g. Reporting Process) would tower over the text column
   at full column width — cap them and center in the column instead. */
.st-img--capped {
    width: auto;
    max-width: 100%;
    max-height: 450px;
    margin-inline: auto;
}
/* Fill the column and match the sibling column's height. */
.st-img--cover {
    height: 100%;
    object-fit: cover;
}

/* Shared tables */
.st-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
    background: #fff;
}
.st-table thead th {
    background: var(--tosa-blue);
    color: #fff;
    font-weight: 600;
    padding: 12px 16px;
    text-align: left;
    vertical-align: middle;
}
.st-table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid #e6e9f2;
    color: #2a2a3a;
    line-height: 1.5;
    vertical-align: top;
}
.st-table tbody tr:nth-child(even) td {
    background: var(--tosa-blue-light);
}
.st-table--two td:first-child {
    font-weight: 600;
    color: #1a1a2e;
    white-space: nowrap;
}
.st-eligible .st-table,
.st-eligible .st-table th,
.st-eligible .st-table td {
    border: 1px solid #d7dcea;
}
.st-note {
    background: #fdeee6;
    border-radius: 0;
    padding: 14px 18px;
    color: #5a4a3a;
    font-size: 0.9rem;
    line-height: 1.55;
}
.st-warning {
    background: #fdeee6;
    border-radius: 6px;
    padding: 14px 18px;
    color: #8a4b1a;
    font-size: 0.9rem;
    line-height: 1.55;
}
.st-link {
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Tier Structure (blue) */
.st-tier {
    background-color: var(--tosa-blue);
    background-size: auto 145%;
    background-position: center top;
    background-repeat: no-repeat;
    color: #fff;
    padding: 3.5rem 0;
}
.st-tier .section-dots--yellow span {
    background: var(--tosa-orange) !important;
}
.st-tier__intro {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.05rem;
}
.st-tier__card {
    position: relative;
    background: #fff;
    padding: 28px 26px;
    height: 100%;
    box-shadow: 0 12px 30px rgba(20, 30, 60, 0.12);
}
.st-tier__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 26px;
    width: 56px;
    height: 4px;
    background: var(--tosa-orange);
}
.st-tier__title {
    color: var(--tosa-orange);
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.st-tier__card p {
    color: #2a2a3a;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}
.st-tier__footnote {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}
.st-tier__table-wrap {
    max-width: 980px;
    margin: 0 auto;
    border-radius: 0;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(20, 30, 60, 0.18);
}
.st-table--inverse thead th {
    background: #1a1a2e;
}
.st-table--inverse td:first-child {
    font-weight: 600;
    color: var(--tosa-orange);
    white-space: nowrap;
}

/* Approved Tosa Certifications */
.st-certs { background: #fff; }
.st-certs__intro {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}
.st-certs__group td {
    background: #eef1f8 !important;
    font-weight: 700;
    color: #1a1a2e;
}
.st-certs__group i {
    color: var(--tosa-orange);
    margin-right: 8px;
}
.st-certs__group-icon {
    width: 20px;
    height: 20px;
    margin-right: 8px;
    vertical-align: middle;
    object-fit: contain;
}
.st-certs__table .st-certs__name {
    color: var(--tosa-orange);
    font-weight: 600;
}
.st-certs__link {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: text-decoration-color 0.15s ease;
}
.st-certs__link:hover {
    text-decoration-color: currentColor;
}

.st-certs__list {
    margin: 0 0 6px;
    padding-left: 1rem;
}
.st-certs__list:last-child { margin-bottom: 0; }
.st-certs__list li { margin-bottom: 2px; }

.st-certs__table th,
.st-certs__table td {
    min-width: 100px;
}

/* Accountability (light blue) */
.st-accountability { background: var(--tosa-light-blue); }

/* Funding */
.st-funding { background: #fff; }
.st-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.st-list li {
    position: relative;
    padding-left: 22px;
    color: #2a2a3a;
    font-size: 0.98rem;
    line-height: 1.5;
}
.st-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}

/* CTA (yellow) — mirrors the homepage .get-started section */
.st-cta {
    background: transparent;
    padding: 0;
    position: relative;
    margin-bottom: -220px;
    z-index: 2;
}
@media (max-width: 991.98px) {
    .he-cta { margin-top: -120px; margin-bottom: -120px; }
    .st-cta { margin-bottom: -120px; }
}
@media (max-width: 767.98px) {
    .he-cta { margin-top: -80px; margin-bottom: -80px; }
    .st-cta { margin-bottom: -80px; }
}
.st-cta__card {
    background: var(--tosa-yellow);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    /* Clip-path cut on top-right to match get-started style */
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
}
.st-cta__image-wrapper {
    position: relative;
    height: 100%;
    min-height: 420px;
    overflow: hidden;
}
.st-cta__img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 440px;
    object-fit: cover;
}
.st-cta__title {
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    color: #1a1a2e;
    line-height: 1.2;
}
.st-cta__text {
    color: #1a1a2e;
    opacity: 0.85;
    font-size: 1.05rem;
}
@media (max-width: 991.98px) {
    .st-banner__agency {
        position: static;
        transform: none;
        display: block;
        width: clamp(200px, 60vw, 320px);
        height: clamp(110px, 32vw, 180px);
        margin: 24px auto 0;
    }
}

/* ── Partnerships page ───────────────────────────────── */

/* ── Careers page ────────────────────────────────────── */

/* Banner */
.careers-banner {
    position: relative;
    width: 100%;
    min-height: 580px;
    overflow: hidden;
    background: #eef3fa;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .careers-banner { min-height: 640px; }
}
@media (max-width: 991.98px) {
    .careers-banner { min-height: 300px; }
}
.careers-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.careers-banner__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.72) 30%, rgba(255, 255, 255, 0) 60%);
}
.careers-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
}
.careers-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.5rem, 5vw, 4rem);
}

/* Section 1 — Why Work with Us (full-bleed image left, padded text right) */
.careers-why {
    background: #fff;
    padding: 0;
}
.careers-why > .container-xl.py-5 {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.careers-why > .container-xl.py-5 > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    margin: 0;
}
.careers-why > .container-xl.py-5 > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}
.careers-why__img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    clip-path: none;
}
.careers-why__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
@media (min-width: 992px) {
    .careers-why > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 80px;
        padding-right: 120px;
    }
}
@media (min-width: 1400px) {
    .careers-why > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 120px;
        padding-right: 200px;
    }
}
@media (max-width: 991.98px) {
    .careers-why > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding: 40px 24px;
    }
}

/* Section 2 — Benefits & Perks */
.careers-benefits {
    background-color: #e8f5fa;
    background-image: url("/build/images/Benefits%20&%20Perks-bg.884f49bc.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 40px 0;
}
.careers-benefits > .container-xl.py-5 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}
.careers-benefits__intro {
    color: #1a1a2e;
    font-size: 1rem;
    font-weight: 500;
}
.careers-benefits__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 28px;
}
.careers-benefits__list li {
    position: relative;
    padding-left: 22px;
    color: #1a1a2e;
    font-size: 1rem;
    line-height: 1.5;
}
.careers-benefits__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}
.careers-benefits__img {
    display: block;
    width: 100%;
    height: auto;
    clip-path: none;
}
@media (max-width: 991.98px) {
    .careers-benefits__list { grid-template-columns: 1fr; }
}

/* Section 3 — How to Apply */
.careers-apply {
    background-color: #e6f4f8;
    background-image: url("/build/images/How%20to%20Apply-bg.496bac33.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    position: relative;
    overflow: hidden;
    padding: 60px 0;
}
.careers-apply > .container-xl.py-5 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}
.careers-apply__intro {
    color: #2a2a3a;
    line-height: 1.6;
    max-width: 760px;
    font-size: 1rem;
}
.careers-apply__row {
    box-shadow: 0 10px 30px rgba(30, 30, 60, 0.08);
}
.careers-apply__card {
    background: #fff;
    padding: 48px 40px 56px;
    min-height: 360px;
    height: 100%;
    position: relative;
    box-shadow: none;
    border-right: 1px solid #e0e3ed;
}
.careers-apply__row > [class*="col-"]:last-child .careers-apply__card {
    border-right: 0;
}
.careers-apply__step-pill {
    position: absolute;
    top: 24px;
    right: 24px;
    background: #b3e0d6;
    color: #005356;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 4px 10px;
}
.careers-apply__icon {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
    margin-bottom: 16px;
}
.careers-apply__bar {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    border-radius: 2px;
    filter: blur(7px);
    margin-bottom: 24px;
}
.careers-apply__title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    margin: 0 0 12px;
}
.careers-apply__text {
    color: #4a4a5e;
    line-height: 1.6;
    font-size: 0.95rem;
}
@media (max-width: 767.98px) {
    .careers-apply__card {
        border-right: 0;
        border-bottom: 1px solid #e0e3ed;
        min-height: 0;
        padding: 36px 28px 40px;
    }
    .careers-apply__row > [class*="col-"]:last-child .careers-apply__card {
        border-bottom: 0;
    }
}

/* Section 4 — Explore Opportunities */
.careers-jobs {
    background-color: var(--tosa-blue);
    background-image: url("/build/images/Explore%20Opportunities-bg.4d2f8122.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
}
.careers-jobs__intro {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    max-width: 760px;
    font-size: 1rem;
}
.careers-jobs__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;
}
.careers-jobs__card {
    background: #fff;
    padding: 24px 28px;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.careers-jobs__icon {
    width: 96px;
    height: 96px;
    object-fit: contain;
    flex-shrink: 0;
}
.careers-jobs__body {
    flex: 1 1 320px;
    min-width: 0;
}
.careers-jobs__title {
    color: var(--tosa-blue);
    font-size: 1.2rem;
    margin: 0 0 8px;
}
.careers-jobs__desc {
    color: #2a2a3a;
    line-height: 1.55;
    font-size: 0.95rem;
}
.careers-jobs__apply {
    flex-shrink: 0;
}

.careers-jobs__more {
    margin-top: 56px;
}
.careers-jobs__more-title {
    color: #fff;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
}
.careers-jobs__more-text {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    max-width: 880px;
    font-size: 1rem;
}
.careers-jobs__email {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.careers-jobs__email:hover {
    color: var(--tosa-yellow);
}

/* Compact newsletter on the careers page — the previous .careers-jobs section
   is already heavy, so trim the shared newsletter's deep top padding. */
.careers-jobs + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}

@media (max-width: 767.98px) {
    .careers-jobs__card { flex-direction: column; align-items: flex-start; }
    .careers-jobs__apply { align-self: stretch; }
}

/* ── Candidate / Admin Login pages ───────────────────── */
.login-header {
    background: #fff;
    border-bottom: 1px solid #ececf3;
    padding: 0;
}
.login-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.login-header__logo {
    display: inline-block;
    line-height: 0;
}
.login-header__logo img {
    display: block;
}
/* The header switch button reuses the .cta-btn--orange visual. */
.login-header__actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* Language switcher: minimal globe + locale code, no border/background.
   Dropdown lists the available locales with a small uppercase code +
   the language name. */
.login-header__lang {
    position: relative;
}
.login-header__lang-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    background: transparent;
    border: 0;
    color: #1a1a2e;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: color .15s;
}
.login-header__lang-btn i {
    font-size: 1.15rem;
    line-height: 1;
    color: #6b6b78;
    transition: color .15s;
}
.login-header__lang-btn:hover,
.login-header__lang-btn:focus,
.login-header__lang-btn[aria-expanded="true"] {
    color: var(--tosa-orange);
}
.login-header__lang-btn:hover i,
.login-header__lang-btn:focus i,
.login-header__lang-btn[aria-expanded="true"] i {
    color: var(--tosa-orange);
}
.login-header__lang-code {
    font-variant: small-caps;
}

.login-header__lang-menu {
    margin-top: 8px;
    border-radius: 0;
    padding: 4px 0;
    min-width: 200px;
    border: 1px solid #ececf3;
    box-shadow: 0 12px 28px rgba(20, 30, 60, 0.10);
}
.login-header__lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: 0.92rem;
    color: #1a1a2e;
}
.login-header__lang-item:hover,
.login-header__lang-item:focus {
    background: #f7f8fe;
    color: #1a1a2e;
}
.login-header__lang-code-mini {
    display: inline-block;
    min-width: 28px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #6b6b78;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.login-header__lang-item.is-active {
    background: #fff;
    color: var(--tosa-orange);
}
.login-header__lang-item.is-active .login-header__lang-code-mini {
    color: var(--tosa-orange);
}

.login-article {
    display: flex;
    flex-direction: row;
    min-height: calc(100vh - 80px);
    background: #fff;
}
.login-article__left {
    flex: 0 0 50%;
    max-width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    background-color: #E6F3F9;
}
.login-article__right {
    flex: 0 0 50%;
    max-width: 50%;
    background-color: var(--tosa-light-blue);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 320px;
}

.login-form {
    width: 100%;
    max-width: 420px;
    display: flex;
    flex-direction: column;
}
.login-form__title {
    font-size: clamp(1.625rem, 2.4vw, 2.125rem);
    color: var(--tosa-orange);
    font-weight: 500;
    margin: 0 0 28px;
    line-height: 1.15;
    white-space: nowrap;
}
.login-form__group {
    margin-bottom: 16px;
}
.login-form__group--password {
    position: relative;
}
.login-form__input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #555559;
    border-radius: 6px;
    background: #fff;
    font-size: 1rem;
    line-height: 1.4;
}
.login-form__group--password .login-form__input {
    padding-right: 48px;
}
.login-form__input:focus {
    outline: 0;
    border-color: var(--tosa-blue);
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, 0.25);
}
.login-form__toggle {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    color: #555559;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px;
}
.login-form__toggle:hover { color: var(--tosa-orange); }

.login-form__remember {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 0.9rem;
    color: #1a1a2e;
}

.login-form__lostpassword,
.login-form__helplogin {
    display: block;
    color: #1a1a2e;
    text-decoration: underline;
    font-size: 0.85rem;
    text-align: center;
    margin-bottom: 6px;
}
.login-form__lostpassword:hover,
.login-form__helplogin:hover {
    color: var(--tosa-orange);
}

.login-form__submit {
    align-self: center;
    margin-top: 20px;
}
.login-article--candidate .login-form__submit {
    background: #D63D0A;
}

.login-form__error {
    color: var(--tosa-orange);
    font-size: 0.9rem;
    min-height: 1.2em;
    margin: 16px 0 0;
}

.login-form__success {
    color: #1c7c3c;
    font-size: 0.9rem;
    min-height: 1.2em;
    margin: 8px 0 0;
}

#lost-password-modal .login-form__error,
#lost-password-modal .login-form__success {
    margin-top: 8px;
    text-align: center;
}

@media (max-width: 991.98px) {
    .login-article {
        flex-direction: column;
        min-height: auto;
    }
    .login-article__left,
    .login-article__right {
        flex: 0 0 100%;
        max-width: 100%;
    }
    .login-article__right {
        order: -1;
        height: 220px;
    }
    .login-article__left {
        padding: 40px 24px 60px;
    }
}

/* ── Who We Are page ─────────────────────────────────── */
.section-title--inverse {
    color: #fff;
}

/* =====================================================================
   Sample Tests modal — positioning tests catalog opened from the menubar
   ===================================================================== */
.sample-tests-modal .modal-content {
    border: 0;
    border-radius: 0;
    overflow: hidden;
    /* Override Bootstrap's modal radius custom properties so the corners
       stay rectangular, consistent with the rest of the new design. */
    --bs-modal-border-radius: 0;
    --bs-modal-inner-border-radius: 0;
}
.sample-tests-modal .modal-header {
    border-bottom: 1px solid #eee;
    padding: 1.25rem 1.5rem;
}
.sample-tests-modal .modal-body {
    padding: 1.5rem;
}
.sample-tests-modal h6 {
    color: #555;
    letter-spacing: 0.06em;
}
.sample-tests-modal__item {
    width: 100%;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0;
    padding: 12px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    color: #1a1a1a;
}
.sample-tests-modal__item:hover,
.sample-tests-modal__item:focus-visible {
    background-color: #f7f7f7;
    border-color: var(--tosa-orange);
    transform: translateY(-1px);
    outline: none;
}
.sample-tests-modal__item.is-loading {
    opacity: 0.6;
    pointer-events: none;
}
.sample-tests-modal__icon {
    width: 70px;
    height: 70px;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}
.sample-tests-modal__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.sample-tests-modal__icon i {
    font-size: 1.75rem;
    color: var(--tosa-blue);
}
.sample-tests-modal__title {
    font-size: 0.85rem;
    line-height: 1.2;
    font-weight: 500;
    text-align: center;
}

/* ──────────────────────────────────────────────────────────────────────
   FAQs page (templates/pages/faqs.html.twig)
   Light hero with title + search bar, followed by white accordion cards
   grouped by category. The active item gets a blue top accent.
   Prefix `fp` = "FAQs Page" — keeps it isolated from the dark `.faq`
   block reused inside online-store etc.
   ──────────────────────────────────────────────────────────────────── */
.fp-hero {
    /* Light banner (same palette as .lp-banner) so the hero stands out
       from the white content and the search bar pops. */
    background: #eaf3fb;
    border-bottom: 1px solid #dbe5ee;
    padding: 40px 0 32px;
    margin-bottom: 32px;
}
.fp-hero__title {
    font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem);
    color: #0f172a;
}
.fp-hero__search {
    display: flex;
    align-items: stretch;
    gap: 0;
    max-width: 560px;
    margin: 8px auto 0;
    background: #fff;
    padding: 6px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
}
.fp-hero__search-wrapper {
    position: relative;
    flex: 1;
}
.fp-hero__search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #6b7280;
    font-size: 0.95rem;
    pointer-events: none;
}
.fp-hero__search-input {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 10px 14px 10px 38px;
    color: #0f172a;
    font-size: 0.95rem;
}
.fp-hero__search-input:focus {
    outline: none;
    box-shadow: none;
}
.fp-hero__search-input::placeholder {
    color: #9aa1ad;
}
.fp-hero__search-btn {
    border: 0;
    background: var(--tosa-orange);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0 28px;
    cursor: pointer;
    transition: background-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    /* Top-right chamfer — matches the cta-btn / pack-checkout pattern. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.fp-hero__search-btn-icon {
    width: 16px;
    height: 16px;
    object-fit: contain;
    /* The asset is dark by default — invert it so it reads on the orange bg. */
    filter: brightness(0) invert(1);
}
.fp-hero__search-btn:hover {
    background: #d83a04;
}

/* Accordion list */
.fp-list {
    background: #fff;
}
.fp-list__empty {
    padding: 48px 16px;
    font-size: 1rem;
}
.fp-cat {
    max-width: 880px;
    margin: 0 auto;
    padding-top: 32px;
}
.fp-cat__title {
    color: #0f172a;
    font-size: 1.25rem;
    margin-bottom: 16px;
    padding-left: 4px;
}

/* Each item: white card, soft border, hover lift, blue top accent when open */
.fp-item {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0;
    margin-bottom: 12px;
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    /* Reset Bootstrap's accordion radius variables so first/last items
       don't pick up rounded corners from the default theme. */
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
}
.fp-item:hover {
    border-color: #cbd5e1;
}
.fp-item:has(.fp-item__btn:not(.collapsed)) {
    border-color: var(--tosa-blue);
    box-shadow: 0 4px 18px rgba(69, 69, 219, 0.08);
}
/* Bootstrap removes top border between stacked items — we want every card
   independently bordered, so re-establish it. */
.fp-item:not(:first-of-type) {
    border-top: 1px solid #e5e7eb;
}
.fp-item:has(.fp-item__btn:not(.collapsed)):not(:first-of-type) {
    border-top: 1px solid var(--tosa-blue);
}

.fp-item__btn {
    background: #fff;
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
    padding: 18px 56px 18px 22px;
    box-shadow: none;
    border-radius: 0;
    text-align: left;
    position: relative;
}
.fp-item__btn:not(.collapsed) {
    background: #fff;
    color: var(--tosa-blue);
    box-shadow: none;
}
.fp-item__btn:focus {
    box-shadow: none;
    border-color: transparent;
}
/* Replace Bootstrap's chevron with a + / − character in tosa orange. */
.fp-item__btn::after {
    background-image: none;
    content: "+";
    color: var(--tosa-orange);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    width: auto;
    height: auto;
    transform: none;
    transition: none;
    position: absolute;
    right: 22px;
    top: 50%;
    margin-top: -0.55rem;
}
.fp-item__btn:not(.collapsed)::after {
    content: "−"; /* U+2212 minus sign */
    background-image: none;
    transform: none;
}

.fp-item__a {
    color: #4b5563;
    padding: 0 22px 20px;
    line-height: 1.6;
    font-size: 0.95rem;
}
.fp-item__a a {
    color: var(--tosa-blue);
    text-decoration: underline;
}

@media (max-width: 575px) {
    .fp-hero__search {
        flex-direction: column;
        gap: 8px;
        background: transparent;
        padding: 0;
    }
    .fp-hero__search-wrapper {
        background: #fff;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
    }
    .fp-hero__search-btn {
        padding: 12px;
    }
}

/* FAQ — topic grid (the landing "sommaire") */
.fp-toc {
    max-width: 960px;
    margin: 0 auto;
    padding-top: 24px;
}
.fp-toc__intro {
    color: #6b7280;
    font-size: 1rem;
    margin-bottom: 28px;
}
.fp-toc__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.fp-toc__card {
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 20px 22px;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.fp-toc__card:hover {
    border-color: var(--tosa-blue);
    box-shadow: 0 6px 20px rgba(69, 69, 219, 0.1);
}
.fp-toc__num {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--tosa-orange);
    line-height: 1;
    flex-shrink: 0;
}
.fp-toc__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}
.fp-toc__card-title {
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
}
.fp-toc__count {
    color: #9aa1ad;
    font-size: 0.82rem;
}
.fp-toc__arrow {
    color: #cbd5e1;
    flex-shrink: 0;
    transition: color 0.15s ease, transform 0.15s ease;
}
.fp-toc__card:hover .fp-toc__arrow {
    color: var(--tosa-orange);
    transform: translateX(3px);
}

/* FAQ — section toolbar (back link + section selector) */
.fp-toolbar {
    max-width: 880px;
    margin: 0 auto 8px;
    padding-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.fp-toolbar__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 0;
    padding: 8px 4px;
    color: var(--tosa-blue);
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
}
.fp-toolbar__back:hover {
    color: var(--tosa-orange);
}
.fp-toolbar__selector {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.fp-toolbar__label {
    color: #6b7280;
    font-size: 0.9rem;
    margin: 0;
}
.fp-toolbar__select {
    border: 1px solid #d1d5db;
    border-radius: 0;
    background: #fff;
    padding: 10px 14px;
    font-size: 0.95rem;
    color: #0f172a;
    cursor: pointer;
    min-width: 240px;
}
.fp-toolbar__select:focus {
    outline: none;
    border-color: var(--tosa-orange);
    box-shadow: 0 0 0 0.2rem rgba(241, 73, 16, 0.15);
}

/* FAQ — related links inside an answer */
.fp-item__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #eef0f4;
}
/* Scoped under .fp-item__a to beat the generic `.fp-item__a a` blue rule. */
.fp-item__a .fp-item__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--tosa-orange);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
}
.fp-item__a .fp-item__link:hover {
    color: #d63d09;
    text-decoration: underline;
}
.fp-item__link .bi {
    font-size: 0.78rem;
}

/* [hidden] must win over Bootstrap's accordion/flex display values. */
.fp-toc[hidden],
.fp-toolbar[hidden],
.fp-cat[hidden],
.fp-item[hidden] {
    display: none !important;
}

@media (max-width: 575px) {
    .fp-toolbar,
    .fp-toolbar__selector {
        flex-direction: column;
        align-items: stretch;
    }
    .fp-toolbar__select {
        min-width: 0;
        width: 100%;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Score Checker modal (templates/modals/check_diploma.html.twig)
   Strict rectangular look — no border-radius anywhere — to match the
   FAQs page treatment.
   ──────────────────────────────────────────────────────────────────── */
.check-score-modal__content {
    border: 0;
    border-radius: 0;
    background: #fff;
    --bs-modal-border-radius: 0;
    --bs-modal-inner-border-radius: 0;
}
.check-score-modal__header {
    border-bottom: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 20px 24px;
}
.check-score-modal__title {
    font-weight: 700;
    font-size: 1.25rem;
    color: #0f172a;
}
.check-score-modal__close {
    border-radius: 0;
}
.check-score-modal__body {
    padding: 24px;
}
.check-score-modal__intro {
    color: #4b5563;
    font-size: 0.95rem;
    margin: 0 0 20px;
}
.check-score-modal__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.check-score-modal__field {
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* labels of unequal height: keep both inputs on the same line */
    gap: 6px;
}
.check-score-modal__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
}
.check-score-modal__input {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #0f172a;
    padding: 10px 12px;
    font-size: 0.95rem;
    border-radius: 0;
    transition: border-color 0.15s ease;
}
.check-score-modal__input:focus {
    outline: none;
    border-color: var(--tosa-blue);
    box-shadow: none;
}
.check-score-modal__alert {
    margin-top: 18px;
    padding: 12px 14px;
    font-size: 0.9rem;
    border: 1px solid transparent;
    border-radius: 0;
}
.check-score-modal__alert--success {
    background: #ecfdf5;
    border-color: #34d399;
    color: #065f46;
    text-align: center;
}
.check-score-modal__alert--error {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}
.check-score-modal__alert a {
    color: inherit;
    text-decoration: underline;
}
.check-score-modal__badge-wrap {
    text-align: center;
    margin-top: 18px;
}
.check-score-modal__badge {
    max-width: 100%;
    width: auto;
    height: auto;
    max-height: 320px;
    display: inline-block;
}
.check-score-modal__footer {
    border-top: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 16px 24px;
    gap: 12px;
}
.check-score-modal__btn {
    border: 0;
    padding: 10px 22px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    border-radius: 0;
    transition: background-color 0.15s ease;
    display: inline-flex;
    align-items: center;
}
.check-score-modal__btn--ghost {
    background: transparent;
    color: #4b5563;
    border: 1px solid #d1d5db;
}
.check-score-modal__btn--ghost:hover {
    background: #f3f4f6;
}
.check-score-modal__btn--orange {
    background: var(--tosa-orange);
    color: #fff;
    /* Top-right chamfer to match the FAQs Search button + the other CTAs. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.check-score-modal__btn--orange:hover {
    background: #d83a04;
}
.check-score-modal__btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

@media (max-width: 575px) {
    .check-score-modal__form {
        grid-template-columns: 1fr;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Legal pages — Privacy Policy + Terms of Service
   (templates/pages/privacy_policy.html.twig + terms_of_service.html.twig)
   Banner top, single-column long-form content. Strict rectangular look —
   no border-radius — to match the FAQs / Score Checker treatment.
   Prefix `lp` = Legal Page.
   ──────────────────────────────────────────────────────────────────── */
.lp-banner {
    position: relative;
    background: #eaf3fb;
    border-bottom: 1px solid #dbe5ee;
    padding: 56px 0;
}
.lp-banner__inner {
    position: relative;
    z-index: 1;
}
.lp-banner__title {
    color: #1a1a2e;
    font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem);
    margin: 0;
}
.lp-banner__subtitle {
    color: #5b6478;
    font-size: 0.95rem;
    margin: 12px 0 0;
}

.lp-content {
    background: #fff;
}
.lp-article {
    max-width: 880px;
    margin: 0 auto;
    color: #1f2937;
    line-height: 1.7;
    font-size: 1rem;
}
.lp-article p {
    margin: 0 0 16px;
}
.lp-article a {
    color: var(--tosa-orange);
    text-decoration: underline;
}
.lp-article a:hover {
    color: #d63d09;
}
.lp-article__lede {
    font-size: 1.05rem;
    color: #374151;
    margin-bottom: 28px;
}
.lp-article__h2 {
    color: var(--tosa-blue);
    font-size: 1.5rem;
    font-weight: 700;
    margin: 40px 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--tosa-blue);
    border-radius: 0;
    scroll-margin-top: 100px;
}
.lp-article__h3 {
    color: #0f172a;
    font-size: 1.2rem;
    font-weight: 700;
    margin: 28px 0 12px;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}
.lp-article__h4 {
    color: var(--tosa-orange);
    font-size: 1rem;
    font-weight: 700;
    margin: 22px 0 10px;
    text-transform: none;
    letter-spacing: 0;
}
.lp-article__list {
    margin: 0 0 18px;
    padding-left: 22px;
}
.lp-article__list li {
    margin-bottom: 8px;
}
.lp-article__list li::marker {
    color: var(--tosa-orange);
}
.lp-article__contact {
    margin-top: 40px;
    padding: 18px 22px;
    background: #f4f5f9;
    border-left: 4px solid var(--tosa-orange);
    border-radius: 0;
    color: #374151;
}
/* Inline note / caveat callout (e.g. "Mac users…", "Adobe web app…"). */
.lp-article__note {
    margin: 8px 0 24px;
    padding: 14px 18px;
    background: #eaf3fb;
    border-left: 4px solid var(--tosa-blue);
    color: #374151;
    font-style: italic;
}

/* Tables (data category breakdown in Privacy Policy). */
.lp-article__table-wrap {
    overflow-x: auto;
    margin: 8px 0 24px;
}
.lp-article__table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 0;
    background: #fff;
}
.lp-article__table th,
.lp-article__table td {
    border: 1px solid #d1d5db;
    padding: 12px 14px;
    text-align: left;
    vertical-align: top;
    font-size: 0.95rem;
}
.lp-article__table thead th {
    background: var(--tosa-blue);
    color: #fff;
    font-weight: 700;
}
.lp-article__table tbody tr:nth-child(even) {
    background: #f8fafc;
}

.lp-article code {
    color: inherit;
    background: #f1f5f9;
    padding: 0.1em 0.4em;
    border-radius: 4px;
    font-size: 0.875em;
}

/* ──────────────────────────────────────────────────────────────────────
   API error banner — used by online-store + certification when the Isograd
   API is down. The "Email Support" CTA opens a pre-filled mailto so the
   support team gets the failing act_id, params and exception in one click.
   Rectangular, no border-radius.
   ──────────────────────────────────────────────────────────────────── */
.api-error-banner {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: #fff7ed;
    border: 1px solid var(--tosa-orange);
    border-left-width: 6px;
    border-radius: 0;
    padding: 18px 22px;
    margin: 0 auto 24px;
    max-width: 980px;
    color: #1f2937;
}
.api-error-banner__icon {
    color: var(--tosa-orange);
    font-size: 1.5rem;
    line-height: 1;
    padding-top: 2px;
    flex-shrink: 0;
}
.api-error-banner__body {
    flex: 1 1 auto;
    min-width: 0;
}
.api-error-banner__title {
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 4px;
}
.api-error-banner__text {
    color: #4b5563;
    font-size: 0.95rem;
    line-height: 1.5;
}
.api-error-banner__details {
    color: #6b7280;
    font-size: 0.85rem;
}
.api-error-banner__details summary {
    cursor: pointer;
    color: var(--tosa-blue);
    font-weight: 500;
}
.api-error-banner__details summary:hover {
    text-decoration: underline;
}
.api-error-banner__params {
    list-style: none;
    padding: 10px 12px;
    margin: 0;
    background: #fff;
    border: 1px solid #fed7aa;
    border-radius: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.8rem;
    word-break: break-all;
}
.api-error-banner__params li {
    margin-bottom: 4px;
}
.api-error-banner__params li:last-child {
    margin-bottom: 0;
}
.api-error-banner__params code {
    color: #0f172a;
    background: #f3f4f6;
    padding: 1px 4px;
}
.api-error-banner__cta {
    flex-shrink: 0;
}
.api-error-banner__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--tosa-orange);
    color: #fff;
    border: 0;
    padding: 10px 18px;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    border-radius: 0;
    transition: background-color 0.15s ease;
    /* Top-right chamfer matching the other CTAs. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.api-error-banner__btn:hover {
    background: #d83a04;
    color: #fff;
}

@media (max-width: 575px) {
    .api-error-banner {
        flex-direction: column;
        align-items: stretch;
    }
    .api-error-banner__cta {
        align-self: flex-start;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Checkout signup modal (templates/modals/checkout_signup.html.twig)
   Two columns: Sign up (left) + Sign in (right). Rectangular layout
   to match the FAQs / Score Checker / API banner treatment.
   ──────────────────────────────────────────────────────────────────── */
.checkout-modal__content {
    border: 0;
    border-radius: 0;
    background: #fff;
    --bs-modal-border-radius: 0;
    --bs-modal-inner-border-radius: 0;
}
.checkout-modal__header {
    border-bottom: 1px solid #e5e7eb;
    padding: 20px 24px;
    border-radius: 0;
}
.checkout-modal__title {
    font-weight: 700;
    font-size: 1.25rem;
    color: #0f172a;
}
.checkout-modal__close {
    border-radius: 0;
}
.checkout-modal__body {
    padding: 28px 32px 32px;
}
.checkout-modal__intro {
    color: #4b5563;
    font-size: 0.95rem;
    text-align: center;
    margin: 0 auto 24px;
    max-width: 640px;
}
.checkout-modal__cols {
    border: 1px solid #e5e7eb;
    border-radius: 0;
}
.checkout-modal__col {
    padding: 28px;
}
.checkout-modal__col + .checkout-modal__col--right {
    border-left: 1px solid #e5e7eb;
}
.checkout-modal__col-title {
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 6px;
}
.checkout-modal__col-intro {
    color: #6b7280;
    font-size: 0.9rem;
    margin: 0 0 18px;
}
.checkout-modal__form {
    display: flex;
    flex-direction: column;
}
.checkout-modal__label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.checkout-modal__password {
    position: relative;
}
.checkout-modal__password .checkout-modal__input {
    padding-right: 42px;
}
.checkout-modal__password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: #6b7280;
    padding: 4px 8px;
    cursor: pointer;
    line-height: 1;
}
.checkout-modal__password-toggle:hover {
    color: #0f172a;
}
.checkout-modal__input {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #0f172a;
    padding: 10px 12px;
    font-size: 0.95rem;
    border-radius: 0;
    transition: border-color 0.15s ease;
    width: 100%;
}
.checkout-modal__input:focus {
    outline: none;
    border-color: var(--tosa-blue);
    box-shadow: none;
}
.checkout-modal__link {
    color: var(--tosa-blue);
    text-decoration: none;
    align-self: flex-start;
}
.checkout-modal__link:hover {
    text-decoration: underline;
}
.checkout-modal__link--right {
    align-self: flex-end;
}
.checkout-modal__submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 22px;
    border-radius: 0;
    border: 0;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color 0.15s ease;
}
.checkout-modal__submit-btn--orange {
    background: var(--tosa-orange);
    color: #fff;
    /* Top-right chamfer matching the rest of the CTAs. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.checkout-modal__submit-btn--orange:hover {
    background: #d83a04;
}
.checkout-modal__submit-btn--ghost {
    background: transparent;
    color: var(--tosa-blue);
    border: 1px solid var(--tosa-blue);
}
.checkout-modal__submit-btn--ghost:hover {
    background: #f0f3ff;
}
.checkout-modal__candidate-link {
    margin-top: 16px;
    font-size: 0.85rem;
    color: #6b7280;
}
.checkout-modal__candidate-link a {
    color: var(--tosa-blue);
    text-decoration: underline;
}

/* Inline status banner (success / error / info) shown under the two
   columns when the user submits the sign-up or sign-in form. */
.checkout-modal__alert {
    margin-top: 18px;
    padding: 12px 16px;
    font-size: 0.9rem;
    line-height: 1.5;
    border: 1px solid transparent;
    border-radius: 0;
    border-left-width: 4px;
}
.checkout-modal__alert--error {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}
.checkout-modal__alert--info {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1e3a8a;
}
.checkout-modal__alert--success {
    background: #ecfdf5;
    border-color: #34d399;
    color: #065f46;
}
.checkout-modal__alert a {
    color: inherit;
    text-decoration: underline;
}

@media (max-width: 767px) {
    .checkout-modal__col + .checkout-modal__col--right {
        border-left: 0;
        border-top: 1px solid #e5e7eb;
    }
    .checkout-modal__body {
        padding: 20px;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Bundle pages (Google Workspace / Microsoft Office / Adobe Graphic /
   Adobe Visual). One template, 4 themes — banner color is set inline
   from the controller config so we don't need 4 nearly-identical
   stylesheets. Per-theme accents (cert card band) live below.
   ──────────────────────────────────────────────────────────────────── */
.bundle__banner {
    padding: 56px clamp(16px, 4vw, 64px);
}
.bundle__title {
    color: #0f172a;
    font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem);
    margin: 0;
}
.bundle__banner-logo {
    max-width: 280px;
    width: 100%;
    height: auto;
    display: inline-block;
}

/* 2-col layout: sticky sidebar + scrollable main */
.bundle-page {
    background-image: url(/build/images/bg-01.f480dd6c.jpg);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    background-attachment: fixed;
}
/* Full-width container scoped to bundle pages only — leaves the global
   .container-xl untouched (header, footer, other pages keep 1140px). */
.bundle-page .container-xl {
    max-width: 100%;
    padding-left: clamp(16px, 4vw, 64px);
    padding-right: clamp(16px, 4vw, 64px);
}
.bundle-page__main {
    min-width: 0;
    padding-bottom: 32px;
}

.bundle-side {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 32px;
}

.bundle-side__card {
    background: #fff;
    border-radius: 0;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 22px 24px;
}

.bundle-side__card-title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e3e4ef;
}

.bundle-side__link-list,
.bundle-side__bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.bundle-side__link-list li,
.bundle-side__bullet-list li {
    position: relative;
    padding: 6px 0 6px 20px;
    font-size: 0.95rem;
    line-height: 1.45;
}
.bundle-side__link-list li::before,
.bundle-side__bullet-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--tosa-blue);
    font-weight: 700;
    font-size: 1.1rem;
}
.bundle-side__link-list a {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.bundle-side__link-list a:hover { color: #d63d09; }

.bundle-side__sub-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 0;
}
.bundle-side__sub-list li {
    position: relative;
    padding: 2px 0 2px 14px;
    font-size: 0.9rem;
    color: #4b5563;
}
.bundle-side__sub-list li::before {
    content: "•";
    position: absolute;
    left: 2px;
    top: 1px;
    color: var(--tosa-orange);
    font-size: 0.85rem;
}

.bundle-side__lang-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.bundle-side__lang-pill {
    border: 1px solid #d9dae6;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 0.9rem;
    background: #fff;
}

/* .cta-btn is nowrap by default — wrap long labels inside the narrow sidebar column. */
.bundle-side__cta {
    align-self: flex-start;
    max-width: 100%;
    white-space: normal;
    text-align: left;
}


@media (max-width: 991.98px) {
    .bundle-side {
        position: static;
        margin-bottom: 32px;
    }
    .bundle-page__main {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }
}

/* Validate Mastery */
.bundle-mastery { background: #fff; }
.bundle-mastery__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-mastery__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 100%;
}
.bundle-product {
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.08);
    padding: 32px 24px;
    text-align: center;
    height: 100%;
}
.bundle-product__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bundle-product__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.bundle-product__name {
    color: #0f172a;
    font-size: 1.1rem;
    margin: 0 0 12px;
}
.bundle-product__link {
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9rem;
}
.bundle-product__link:hover { text-decoration: underline; }

/* Credential Requirements */
.bundle-reqs { background: #f8fafc; }
.bundle-reqs__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-reqs__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-reqs__tier-title {
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--tosa-orange);
    border-radius: 0;
}
.bundle-reqs__list {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #374151;
    font-size: 0.95rem;
    line-height: 1.7;
}
.bundle-reqs__list li {
    padding-left: 16px;
    position: relative;
}
.bundle-reqs__list li::before {
    content: '›';
    color: var(--tosa-orange);
    position: absolute;
    left: 0;
    font-weight: 700;
}

/* Level summary cards (Experienced + Professional with animated icons) */
.bundle-levels {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.bundle-levels__card {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 18px;
    align-items: center;
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 20px 24px;
}
.bundle-levels__icon {
    width: 64px;
    height: 64px;
    object-fit: contain;
}
.bundle-levels__title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    margin: 0 0 6px;
}
.bundle-levels__text {
    color: #4b5563;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Cert cards (Experienced + Professional) */
.bundle-cert { background: #fff; }
.bundle-cert--experienced { background: #f8fafc; }
.bundle-cert__heading {
    color: var(--tosa-blue);
    font-size: 1.4rem;
}
.bundle-cert__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-cert__card {
    max-width: 540px;
    margin: 24px auto 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0;
}
.bundle-cert__sample {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 24px auto 0;
    box-shadow: 0 6px 24px rgba(30, 30, 60, 0.08);
}
.bundle-cert__card-band {
    background: var(--tosa-blue);
    color: #fff;
    padding: 14px 24px;
    font-weight: 700;
    text-align: center;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.bundle-cert__card-band--pro {
    background: var(--tosa-orange);
}
.bundle-cert__card-body {
    padding: 36px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.bundle-cert__card-name {
    color: #0f172a;
    font-size: 1.4rem;
}
.bundle-cert__card-tier {
    color: #6b7280;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Skills Badges with Credly */
.bundle-badges { background: #fff; }
.bundle-badges__title {
    color: var(--tosa-blue);
    font-size: 1.5rem;
}
.bundle-badges__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-badge {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 24px 22px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 20px;
}
.bundle-badge__link {
    display: block;
    height: 100%;
    text-decoration: none;
    color: inherit;
}
.bundle-badge__link:hover .bundle-badge__label {
    text-decoration: underline;
}
.bundle-badge__img {
    flex-shrink: 0;
    width: 96px;
    height: 96px;
    object-fit: contain;
}
.bundle-badge__label {
    margin: 0;
    color: var(--tosa-orange);
    font-size: 1.05rem;
    line-height: 1.3;
}

/* Stackable Credentials */
.bundle-stack__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-stack__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-stack__img {
    display: block;
    width: 100%;
    max-width: 940px;
    height: auto;
    margin: 0 auto;
}

/* Aligned Occupations */
.bundle-jobs__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-jobs__list {
    list-style: none;
    padding: 0;
    margin: 0;
    columns: 2;
    column-gap: 48px;
}
.bundle-jobs__list li {
    position: relative;
    padding: 8px 0 8px 24px;
    font-size: 0.95rem;
    color: #1f2937;
    break-inside: avoid;
}
.bundle-jobs__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--tosa-orange);
}
.bundle-jobs__footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 48px;
    align-items: center;
    margin-top: 32px;
}
.bundle-jobs__footer .cta-btn { margin: 0; }

.bundle-jobs__ce-link {
    justify-self: start;
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.bundle-jobs__ce-link:hover { color: #d63d09; }
.bundle-jobs__credential {
    max-width: 220px;
    width: auto;
    height: auto;
    object-fit: contain;
    justify-self: start;
}
@media (max-width: 575.98px) {
    .bundle-jobs__footer { grid-template-columns: 1fr; row-gap: 16px; }
    .bundle-jobs__credential { justify-self: center; }
}
@media (max-width: 575.98px) {
    .bundle-jobs__list { columns: 1; }
}

/* Ready to Start Certifying — reuses sections/cert_ready.html.twig */

/* Compact newsletter on bundle pages — overrides the global py-5 padding
   and the inner container's py-5 + mb-5 spacing without touching the
   shared sections/newsletter.html.twig template. */
.bundle-newsletter-wrap .newsletter {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.bundle-newsletter-wrap .newsletter > .container-xl {
    padding-top: 0;
    padding-bottom: 0;
}
.bundle-newsletter-wrap .newsletter .text-center.mb-5 {
    margin-bottom: 1.5rem !important;
}

:root {
    --fs-card-title: 1.5rem;
    --fs-card-text: 1.0625rem;
    --fs-card-label: 0.95rem;
}

.serve-card__title,
.platform-feature__title,
.why-card__title,
.cert-unique__title,
.cert-ready__title,
.expertise-card__title,
.deliver-card__title,
.he-features__title {
    font-size: var(--fs-card-title);
    line-height: 1.25;
}

.platform-feature__text,
.why-card__text,
.cert-unique__desc,
.cert-ready__text,
.he-features__text {
    font-size: var(--fs-card-text);
}

.certify-card__label,
.cert-offerings__app-name {
    font-size: var(--fs-card-label);
}

/* ── Application-requirements modal (shared: ILL course selector + Online Store e-learning packs) ── */
.cw-modal__content {
    border: 0;
    border-radius: 12px;
    overflow: hidden;
}
.cw-modal__header {
    background: var(--tosa-teal);
    color: #fff;
    align-items: flex-start;
    border-bottom: 0;
    padding: 20px 24px;
}
.cw-modal__eyebrow {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 2px;
}
.cw-modal__title {
    color: #fff;
    font-weight: 700;
    font-size: 1.3rem;
    margin: 0;
}
.cw-modal__close { margin: 0; }

.cw-modal__body { padding: 24px; }
.cw-modal__lead {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
}
.cw-modal__lead-icon {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex: 0 0 auto;
}
.cw-modal__intro {
    color: #2d2d3a;
    line-height: 1.5;
}
.cw-modal__app { font-weight: 700; }

.cw-modal__subhead {
    color: var(--tosa-teal);
    font-weight: 700;
    font-size: 0.95rem;
    margin: 20px 0 10px;
}
.cw-modal__reqs {
    list-style: disc;
    background: #f1f3f4;
    border-radius: 8px;
    margin: 0;
    padding: 14px 20px 14px 38px;
    color: #2d2d3a;
}
.cw-modal__reqs li { margin-bottom: 4px; line-height: 1.45; }
.cw-modal__reqs li:last-child { margin-bottom: 0; }

.cw-modal__steps {
    list-style: none;
    counter-reset: cw-step;
    padding: 0;
    margin: 0;
}
.cw-modal__steps li {
    counter-increment: cw-step;
    position: relative;
    padding-left: 40px;
    margin-bottom: 12px;
    min-height: 26px;
    line-height: 1.45;
    color: #2d2d3a;
}
.cw-modal__steps li:last-child { margin-bottom: 0; }
.cw-modal__steps li::before {
    content: counter(cw-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--tosa-teal);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
}
.cw-modal__note {
    background: #e8f4f4;
    border: 1px solid #bfe0e0;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 0.85rem;
    color: #2a4a4a;
    line-height: 1.45;
    margin-top: 16px;
}
.cw-modal__help {
    font-size: 0.85rem;
    color: #6a6a78;
    margin: 20px 0 0;
}
.cw-modal__help a { color: var(--tosa-teal); }

.cw-modal__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    background: #f7f8f9;
    border-top: 1px solid #e3e6e8;
    padding: 18px 24px;
}
.cw-modal__confirm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.85rem;
    color: #2d2d3a;
    line-height: 1.4;
    margin: 0;
    cursor: pointer;
}
.cw-modal__confirm input { margin-top: 2px; flex: 0 0 auto; }
.cw-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.cw-modal__btn {
    border: 0;
    border-radius: 4px;
    padding: 10px 22px;
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: opacity 0.18s ease, background 0.18s ease;
}
.cw-modal__btn--ghost { background: #0c2a2b; color: #fff; }
.cw-modal__btn--ghost:hover { background: #082020; color: #fff; }
.cw-modal__btn--orange { background: var(--tosa-orange); color: #fff; }
.cw-modal__btn--orange:hover { background: #d63f0c; color: #fff; }
.cw-modal__btn.is-disabled {
    opacity: 0.45;
    pointer-events: none;
}

@media (min-width: 576px) {
    .cw-modal__footer { flex-direction: row; align-items: center; justify-content: space-between; }
    .cw-modal__confirm { max-width: 60%; }
}

@media (min-width: 992px) and (max-width: 1479.98px) {
    .cert-testing-center__body {
        padding: 60px 48px;
    }
    .he-banner::after {
        background: linear-gradient(90deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.88) 45%, rgba(255,255,255,0.55) 65%, rgba(255,255,255,0) 82%);
    }
    .navbar .navbar-brand {
        margin-right: 0.75rem !important;
    }
    .navbar .navbar-brand img {
        height: 28px;
    }
    .navbar .navbar-nav .nav-link,
    .navbar .navbar-nav .menubar__link {
        padding: 1.5rem 0.6rem;
        font-size: 0.875rem;
        white-space: nowrap;
    }
    .menubar__actions {
        min-width: 0;
    }
    .menubar__search {
        width: auto;
        flex: 1 1 120px;
        min-width: 90px;
        max-width: 180px;
    }
    .menubar__cta-btn {
        padding: 10px 14px;
        font-size: 0.8125rem;
    }
    .menubar__actions .login-header__lang-btn {
        padding: 6px 4px;
        gap: 6px;
    }
}

@media (min-width: 1200px) and (max-width: 1699.98px) {
    .navbar .navbar-brand {
        margin-right: 0.75rem !important;
    }
    .navbar .navbar-brand img {
        height: 28px;
    }
    .navbar .navbar-nav .nav-link,
    .navbar .navbar-nav .menubar__link {
        padding: 1.5rem 0.5rem;
        font-size: 0.875rem;
        white-space: nowrap;
    }
    .menubar__actions {
        min-width: 0;
        gap: 0.75rem !important;
    }
    .menubar__search {
        width: auto;
        flex: 1 1 120px;
        min-width: 90px;
        max-width: 180px;
    }
    .menubar__cta-btn {
        padding: 10px 12px;
        font-size: 0.78125rem;
    }
    .menubar__actions .login-header__lang-btn {
        padding: 6px 4px;
        gap: 6px;
    }
}

@media (min-width: 992px) and (max-width: 1299.98px) {
    .navbar .container-xl {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    .navbar .navbar-brand {
        margin-right: 0.25rem !important;
    }
    .navbar .navbar-brand img {
        height: 22px;
    }
    .navbar .navbar-nav {
        gap: 0 !important;
    }
    .navbar .navbar-nav .nav-link,
    .navbar .navbar-nav .menubar__link {
        padding: 1.5rem 0.25rem;
        font-size: 0.78rem;
    }
    .menubar__actions {
        min-width: 0;
        gap: 0.375rem !important;
    }
    .menubar__search {
        width: auto;
        flex: 1 1 70px;
        min-width: 70px;
        max-width: 140px;
    }
    .menubar__cta-btn {
        padding: 10px 6px;
        font-size: 0.78125rem;
        gap: 4px;
    }
    .menubar__actions .login-header__lang-code {
        display: none;
    }
}

/* ── Mobile fixes ─────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    body {
        overflow-x: clip;
    }
    .row.g-5 {
        --bs-gutter-x: 2rem;
    }
    .cta-btn {
        white-space: normal;
        max-width: 100%;
    }
    .cert-testimonial__vector {
        display: none;
    }
    .he-s5 .he-s5__card {
        max-height: none;
    }
    .he-s4__video {
        height: auto;
        aspect-ratio: 16 / 9;
    }
    .he-banner {
        height: 300px;
    }
    .he-cta__body {
        padding: 32px 24px;
    }
    .cert-entry__body,
    .cert-entry--reverse .cert-entry__body {
        padding: 0 24px 32px;
    }
    .cert-unique__vector {
        display: none;
    }
    .cert-unique__card-inner {
        padding: 40px 32px;
    }
    .cert-offerings__tabs {
        gap: 12px;
    }
    .cert-offerings__tabs .nav-item {
        flex: 1 1 calc(50% - 6px);
    }
    .cert-offerings__tabs .nav-link {
        padding: 12px 8px;
        gap: 4px;
        border-radius: 10px;
    }
    .cert-offerings__tab-logo {
        height: 48px;
    }
    .cert-offerings__tab-chevron {
        display: none;
    }
    .cert-offerings__tabs .nav-link.active::after {
        display: none;
    }
    .cert-testing-center__row {
        min-height: 0;
    }
    .cert-testing-center__media {
        min-height: 0;
        aspect-ratio: 956 / 722;
        background-size: contain;
        background-position: center;
    }
    .cert-testing-center__body {
        padding: 40px 24px 56px;
    }
    .be-hero {
        aspect-ratio: auto;
        max-height: none;
    }
    .be-hero__inner {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}

@media (max-width: 767.98px) {
    .beyond-diploma__image-wrapper {
        display: block;
    }
    .beyond-diploma__image {
        width: 100%;
        height: 480px;
    }
    .beyond-diploma__stat-card {
        right: 8px;
        bottom: 75px;
    }
    .cert-offerings__card {
        padding: 32px 24px;
    }
    .cert-offerings__logo-item img {
        max-width: 100%;
        height: auto;
    }
    .cert-unique__card {
        padding: 5px;
    }
    .cert-unique__card-inner {
        padding: 32px 20px;
    }
    .cert-unique__vector {
        display: none;
    }
    .cert-unique__items {
        gap: 24px;
    }
    .cert-unique__item {
        gap: 14px;
    }
    .cert-unique__icon {
        width: 44px;
        height: 44px;
    }
    .cert-bundles__inner {
        padding: 16px 8px;
    }
    .cert-bundles__graphic {
        padding: 20px 12px;
    }
    .st-table {
        font-size: 0.875rem;
    }
    .st-table thead th,
    .st-table tbody td {
        padding: 10px 12px;
    }
    .st-table th,
    .st-table td {
        overflow-wrap: anywhere;
    }
    .st-tier__table-wrap {
        overflow-x: auto;
    }
    .st-table--two td:first-child,
    .st-table--inverse td:first-child {
        white-space: normal;
    }
    .st-table--stack thead {
        display: none;
    }
    .st-table--stack,
    .st-table--stack tbody,
    .st-table--stack tr,
    .st-table--stack td {
        display: block;
        width: 100%;
        min-width: 0;
    }
    .st-table--stack tbody tr {
        padding: 8px 0;
        border-bottom: 1px solid #e6e9f2;
    }
    .st-table--stack tbody tr:nth-child(even) {
        background: var(--tosa-blue-light);
    }
    .st-table--stack tbody td {
        padding: 6px 12px;
        border-bottom: 0;
        background: transparent !important;
    }
    .st-table--stack tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-size: 0.72rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: var(--tosa-blue);
        margin-bottom: 2px;
    }
    .st-table--stack .st-certs__group td {
        padding: 10px 12px;
    }
    .st-cta + .newsletter {
        padding-top: 72px !important;
    }
    .be-purchase__frame {
        background-image: none !important;
    }
    .be-purchase__inner {
        padding: 24px 16px 32px;
    }
    .be-step {
        min-height: 0;
        height: auto;
    }
    .he-s5__body {
        padding: 32px 24px;
    }
    .cert-offerings__tab-logo {
        height: 28px;
    }
}

@media (max-width: 575.98px) {
    .serve-card__icon {
        margin-bottom: 0;
    }
}

/* ──── FR shared sections (etablissement / organisme de formation) ────
   "Offre de certifications Tosa": white band, yellow chevron vector stuck
   to the left edge, light-blue card with a notched top-right corner. */
.etab-offer {
    position: relative;
    background: #fff;
    overflow: hidden;
}
.etab-offer__vector {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: auto;
    pointer-events: none;
}
.etab-offer__card {
    position: relative;
    background: #E3F1F5;
    /* Narrower and taller than the natural container width, for a squarish
       card rather than a wide flat band. */
    max-width: 1080px;
    margin: 0 auto;
    padding: 120px 88px;
    --etab-notch: 72px;
    clip-path: polygon(0 0, calc(100% - var(--etab-notch)) 0, 100% var(--etab-notch), 100% 100%, 0 100%);
}
.etab-offer__card .row { row-gap: 48px; }
.etab-offer__gamme {
    padding-top: 14px;
}
.etab-offer__gamme-logo {
    max-height: 44px;
    width: auto;
}
.etab-offer__gamme-apps {
    font-size: 0.78rem;
    color: #4a4a5e;
    margin-top: 10px;
}
@media (max-width: 767.98px) {
    .etab-offer__card { padding: 40px 24px; --etab-notch: 48px; }
    .etab-offer__vector { display: none; }
}

/* "Une solution pour chaque parcours": white band, pale vector on the left,
   blue dots, square evenly-spaced cards. */
.etab-parcours {
    position: relative;
    background: #fff;
    overflow: hidden;
}
.etab-parcours__vector {
    position: absolute;
    left: 0;
    top: 10%;
    height: 100%;
    width: auto;
    pointer-events: none;
}
.etab-parcours .section-dots--blue span {
    background: var(--tosa-blue);
}
.etab-parcours__card {
    background: #fff;
    box-shadow: 0 6px 24px rgba(30, 30, 60, 0.08);
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 24px;
    min-height: 0;
}
.etab-parcours__card .he-s3__icon {
    margin-bottom: 0;
}
.etab-parcours__card .he-s3__title {
    margin-bottom: 0;
    color: #1a1a2e;
}

/* ──── FR centre-agréé / certification-à-distance pages ──────── */
.ca-pill {
    display: inline-block;
    background: var(--tosa-yellow);
    border-radius: 50px;
    padding: 6px 20px;
    font-weight: 600;
    font-size: 0.9rem;
    margin: 6px;
    color: #1a1a2e;
}
/* Certification-à-distance page only */
.ca-pill--orange {
    color: var(--tosa-orange);
}
.ca-stat {
    position: relative;
    background: #fff;
    box-shadow: 0 6px 24px rgba(30, 30, 60, 0.08);
    padding: 36px 28px;
    height: 100%;
    max-width: 300px;
    min-height: 275px;
    margin: 0 auto;
}
/* Blue disc peeking out of the top-right corner */
.ca-stat::after {
    content: "";
    position: absolute;
    top: -48px;
    right: -33px;
    width: 75px;
    height: 75px;
    border-radius: 50%;
    background: var(--tosa-blue);
}
.ca-stat__num {
    position: relative;
    color: var(--tosa-blue);
    font-weight: 700;
    font-size: 3.25rem;
    line-height: 1;
    padding-left: 26px;
    padding-bottom: 20px;
}
/* Short vertical bar straddling the card's left edge */
.ca-stat__num::before {
    content: "";
    position: absolute;
    left: -31px;
    top: 4px;
    bottom: 4px;
    width: 6px;
    background: var(--tosa-blue);
}
.ca-stat__text {
    color: #4a4a5e;
    font-size: 0.95rem;
    margin-bottom: 0;
}
.ca-steps {
    background: #3846D8;
    color: #fff;
    overflow: hidden;
}
.ca-steps .section-title { color: #fff; }
.ca-steps__intro { color: rgba(255, 255, 255, 0.85); }
.ca-step {
    display: flex;
    gap: 16px;
    margin-bottom: 40px;
}
.ca-step__num {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--tosa-yellow);
    color: #1a1a2e;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Certification-à-distance page only */
.ca-step__num--orange {
    color: var(--tosa-orange);
}
.ca-step__title {
    color: #fff;
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.ca-step__text, .ca-step li { color: rgba(255, 255, 255, 0.88); }
.ca-step ul {
    list-style: none;
    padding-left: 14px;
    margin: 10px 0 0;
}
.ca-step ul li { position: relative; padding-left: 14px; margin-bottom: 6px; }
.ca-step ul li::before { content: '\00B7'; position: absolute; left: 0; font-weight: 700; }
.ca-step a { color: var(--tosa-yellow); }
.ca-reqs {
    background: #E3F1F5;
    color: #1a1a2e;
    border-radius: 10px;
    padding: 36px;
}
/* Certification-à-distance: decorative shapes behind the requirements card */
.ca-reqs-wrap {
    position: relative;
}
.ca-reqs-wrap > :not(.ca-reqs__vector) {
    position: relative;
    z-index: 1;
}
.ca-reqs__vector {
    position: absolute;
    top: 50%;
    left: 29%;
    transform: translate(-50%, -50%);
    width: 109%;
    max-width: none;
    pointer-events: none;
}
.ca-reqs__title { font-weight: 700; font-size: 1.3rem; margin-bottom: 18px; }
.ca-reqs dt { font-weight: 700; margin-top: 14px; }
.ca-reqs dd { margin: 0; color: #4a4a5e; }
.ca-finder {
    background: #fff;
    color: #fff;
    overflow: hidden;
    padding: 40px 0;
}
.ca-finder .container-xl {
    background: #3846D8;
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
    padding-left: 56px;
    padding-right: 56px;
}
.ca-finder .section-title { color: #fff; }
.ca-finder__text { color: rgba(255, 255, 255, 0.88); }
.ca-finder__form { display: flex; max-width: 560px; }
.ca-finder__input {
    flex: 1;
    border: none;
    padding: 14px 18px;
    font-size: 1rem;
}

/* Bundle sidebar — nested "Exams and Minimum Passing Scores" block
   (level → exams → "Plus 1 of the following N:" → exams). Selectors are
   scoped under .bundle-side__bullet-list to override its generic li rules. */
.bundle-side__bullet-list .bundle-side__score-groups {
    list-style: none;
    padding: 0;
    margin: 6px 0 0;
}
.bundle-side__bullet-list .bundle-side__score-group {
    position: relative;
    padding: 4px 0 4px 14px;
    font-size: 0.9rem;
}
.bundle-side__bullet-list .bundle-side__score-group::before {
    content: "•";
    position: absolute;
    left: 2px;
    top: 3px;
    color: var(--tosa-orange);
    font-size: 0.85rem;
    font-weight: 400;
}
.bundle-side__bullet-list .bundle-side__score-group--flat {
    padding-left: 0;
}
.bundle-side__bullet-list .bundle-side__score-group--flat::before {
    content: none;
}
.bundle-side__score-group-label {
    display: block;
    font-weight: 600;
    color: #1f2937;
}
.bundle-side__bullet-list .bundle-side__score-list {
    list-style: none;
    padding: 0;
    margin: 2px 0 0;
}
.bundle-side__bullet-list .bundle-side__score-list li {
    position: relative;
    padding: 2px 0 2px 14px;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #4b5563;
}
.bundle-side__bullet-list .bundle-side__score-list li::before {
    content: "–";
    position: absolute;
    left: 2px;
    top: 2px;
    color: #9ca3af;
    font-size: 0.9rem;
    font-weight: 400;
}
.bundle-side__score-exam::after {
    content: ":";
}
.bundle-side__score-value {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--tosa-blue);
    white-space: nowrap;
}
.bundle-side__score-note {
    display: block;
    margin: 6px 0 2px;
    font-style: italic;
    color: #374151;
}

/* ── Contact Us page — FR variant (templates/pages/contact_us_fr.html.twig) ── */

.cu-form__group--inline {
    position: relative;
}
.cu-form__group--inline .cu-form__label--inline {
    position: absolute;
    left: 17px;
    top: 15px;
    margin: 0;
    pointer-events: none;
    color: rgba(255, 255, 255, 0.92);
    transition: opacity 0.15s ease;
}
/* Chrome does not re-style :not(:placeholder-shown) ~ label on value changes; JS mirrors the state as .has-value */
.cu-form__group--inline:focus-within .cu-form__label--inline,
.cu-form__group--inline.has-value .cu-form__label--inline,
.cu-form__group--inline .cu-form__input:not(:placeholder-shown) ~ .cu-form__label--inline {
    opacity: 0;
}
.cu-form__group--inline .cu-form__required {
    color: var(--tosa-orange);
}
.cu-form__footer--start {
    justify-content: flex-start;
    gap: 20px;
}

.cu-partner {
    background: var(--tosa-yellow);
    padding: 96px 0;
}
.cu-partner__title {
    color: #1a1a2e;
}
.cu-partner__subtitle {
    color: #1a1a2e;
    font-size: 1.375rem;
}
.cu-partner__text {
    color: #1a1a2e;
    font-size: 1rem;
    line-height: 1.6;
}
.cu-partner__list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.cu-partner__list li {
    padding-left: 1.5rem;
    position: relative;
    margin-bottom: .7rem;
    line-height: 1.55;
    color: #1a1a2e;
    font-size: 1rem;
}
.cu-partner__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5rem;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--tosa-orange);
}
.cu-partner__img {
    display: block;
    width: 100%;
    max-width: 520px;
    height: auto;
    margin-left: auto;
}
.cu-partner + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}
@media (max-width: 991.98px) {
    .cu-partner {
        padding: 64px 0;
    }
    .cu-partner__img {
        margin: 0 auto;
    }
}

/* ── Online store — FR variant (templates/pages/online_store_fr.html.twig) ── */
.be-purchase--fr {
    background: var(--tosa-blue);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.be-purchase--fr::before,
.be-purchase--fr::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    pointer-events: none;
}
.be-purchase--fr::before { width: 420px; height: 420px; right: -160px; top: 38%; }
.be-purchase--fr::after  { width: 260px; height: 260px; left: -120px; bottom: 12%; }
.be-purchase--fr > .container-xl { position: relative; z-index: 1; }
.be-purchase__pill {
    display: inline-block;
    background: var(--tosa-yellow);
    color: #1a1a2e;
    border-radius: 999px;
    padding: 18px 48px;
    font-size: clamp(1.35rem, 2.3vw, 1.9rem);
    line-height: 1.2;
    max-width: 920px;
    margin: 0 0 18px;
}
.be-purchase__lead {
    color: #fff;
    font-size: 1.05rem;
}
.be-purchase--fr .be-purchase__frame {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
}
.be-purchase--fr .be-purchase__inner { padding: 0; }
.be-purchase--fr .be-purchase__pane { min-height: 0; }
.be-purchase--fr .be-purchase__pane[data-purchase-pane="3"].is-active { display: block; }
.be-purchase--fr .be-purchase__pane-intro {
    color: var(--tosa-yellow);
    font-weight: 600;
    text-align: left;
    max-width: none;
    margin: 0 0 32px;
}

.be-purchase__crumbs {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 14px;
    padding: 0;
    margin: 0 0 12px;
}
.be-purchase__crumb {
    color: rgba(255, 255, 255, 0.5);
    font-weight: 700;
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    cursor: pointer;
    transition: color 0.2s;
}
.be-purchase__crumb::after {
    content: '>';
    margin-left: 14px;
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.5);
}
.be-purchase__crumb:last-child::after { content: none; }
.be-purchase__crumb.is-done { color: rgba(255, 255, 255, 0.8); }
.be-purchase__crumb.is-active,
.be-purchase__crumb.is-active::after { color: var(--tosa-yellow); }
.be-purchase__crumb.is-skipped { opacity: 0.45; cursor: not-allowed; }

.be-purchase__panel {
    background: #eef0fb;
    border-radius: 22px;
    padding: 40px clamp(20px, 3vw, 48px) 48px;
    color: #1a1a2e;
}
.be-purchase--fr .be-purchase__details { padding: 40px clamp(20px, 3vw, 48px) 48px; }

.be-purchase--fr .be-purchase__tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    border: 0;
    margin-bottom: 44px;
}
.be-purchase--fr .be-purchase__tabs .nav-item { display: contents; }
.be-purchase__tab {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 16px 12px 20px !important;
    background: rgba(255, 255, 255, 0.14) !important;
    border: 2px solid !important;
    border-radius: 18px !important;
    color: #fff !important;
    font-weight: 500;
    transition: background-color 0.2s, color 0.2s;
}
.be-purchase__tab::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -22px;
    transform: translateX(-50%);
    border: 11px solid transparent;
    transition: border-color 0.2s;
}
.be-purchase__tab--desktop  { border-color: #8BCCFF !important; }
.be-purchase__tab--graphics { border-color: #FF66FF !important; }
.be-purchase__tab--digital  { border-color: #66CC99 !important; }
.be-purchase__tab--code     { border-color: #E6A071 !important; }
.be-purchase__tab--desktop::after  { border-top-color: #8BCCFF; }
.be-purchase__tab--graphics::after { border-top-color: #FF66FF; }
.be-purchase__tab--digital::after  { border-top-color: #66CC99; }
.be-purchase__tab--code::after     { border-top-color: #E6A071; }
.be-purchase__tab.active {
    background: #fff !important;
    color: #1a1a2e !important;
}
.be-purchase__tab.active::after { border-top-color: #fff; }
.be-purchase--fr .be-purchase__tab-logo { height: 40px; }
.be-purchase__tab-apps { font-size: 0.85rem; line-height: 1.3; }
.be-purchase--fr .be-purchase__heading {
    color: #1a1a2e;
    font-size: 1.6rem;
    text-align: left;
}
.be-purchase--fr .be-purchase__subject {
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid #d9dcef;
    border-radius: 14px;
    color: #1a1a2e;
    font-weight: 600;
}
.be-purchase--fr .be-purchase__subject:hover {
    background: #fff;
    border-color: #8BCCFF;
    color: #1a1a2e;
}

.be-purchase--fr .be-purchase__packs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(235px, 1fr));
    gap: 28px;
    border: 0;
}
.be-purchase--fr .be-purchase__pack {
    background: #E6F4F8;
    border: 2px solid #8BCCFF;
    border-radius: 22px;
    padding: 30px 24px 34px;
    text-align: center;
    align-items: center;
    transition: border-color 0.2s, transform 0.2s;
}
.be-purchase--fr .be-purchase__pack:hover,
.be-purchase--fr .be-purchase__pack.is-active {
    border-color: var(--tosa-orange);
    transform: translateY(-3px);
}
.be-purchase--fr .be-purchase__pack-head,
.be-purchase--fr .be-purchase__pack:hover .be-purchase__pack-head,
.be-purchase--fr .be-purchase__pack.is-active .be-purchase__pack-head {
    background: transparent;
    border: 0;
    padding: 0;
    min-height: 0;
    justify-content: center;
    margin-bottom: 14px;
}
.be-purchase--fr .be-purchase__pack-name,
.be-purchase--fr .be-purchase__pack:hover .be-purchase__pack-name,
.be-purchase--fr .be-purchase__pack.is-active .be-purchase__pack-name {
    color: var(--tosa-orange);
    font-size: 1.5rem;
}
.be-purchase--fr .be-purchase__pack-body {
    padding: 0;
    gap: 22px;
    align-items: center;
    width: 100%;
}
.be-purchase--fr .be-purchase__pack-desc {
    font-size: 1rem;
    font-weight: 500;
    width: 100%;
}
.be-purchase--fr .be-purchase__pack-desc ul {
    display: block;
    width: max-content;
    max-width: 100%;
    text-align: left;
    font-weight: 400;
    margin: 16px auto 0;
}
.be-purchase--fr .be-purchase__pack-price {
    color: #1a1a2e;
    font-size: 2rem;
}
.be-purchase--fr .be-purchase__pack-checkout,
.be-purchase--fr .be-purchase__pack:hover .be-purchase__pack-checkout,
.be-purchase--fr .be-purchase__pack.is-active .be-purchase__pack-checkout {
    width: auto;
    margin: 26px auto 0;
    padding: 16px 32px;
    justify-content: center;
    gap: 16px;
    background: var(--tosa-orange);
    border: 0;
    color: #fff;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
}
.be-purchase--fr .be-purchase__pack-checkout:hover { background: #d63d09; }
.be-purchase__packs-empty {
    color: #fff;
    text-align: center;
    padding: 24px 0;
    margin: 0;
}
.faq--yellow-dots .section-dots span { background: var(--tosa-yellow); }

@media (min-width: 768px) {
    .be-purchase--fr ~ .newsletter {
        padding-top: 80px !important;
    }
}

@media (max-width: 991.98px) {
    .be-purchase--fr .be-purchase__tabs { grid-template-columns: repeat(2, 1fr); gap: 20px 16px; margin-bottom: 36px; }
    .be-purchase__pill { padding: 14px 28px; border-radius: 28px; }
}
@media (max-width: 575.98px) {
    .be-purchase--fr .be-purchase__tabs { grid-template-columns: 1fr; }
    .be-purchase__panel { border-radius: 16px; padding: 24px 16px 32px; }
}
.be-purchase__crumb .be-purchase__step-num { display: inline; }
.be-steps--fr {
    background: linear-gradient(100deg, #fff6d9 0%, #ffffff 32%, #f1f2fb 100%);
}
.be-steps--fr .be-step {
    box-shadow: 0 10px 30px rgba(20, 30, 60, 0.06);
}

/* "Besoin d'aide ?" — photo card with a yellow diagonal and a white text box. */
.be-help {
    background: #fff;
    padding: 72px 0 40px;
}
.be-help__card {
    position: relative;
    min-height: 540px;
    background-size: cover;
    background-position: center;
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
    display: flex;
    align-items: center;
}
.be-help__card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--tosa-yellow);
    clip-path: polygon(0 0, 44% 0, 26% 100%, 0 100%);
}
.be-help__box {
    position: relative;
    margin-left: clamp(24px, 6vw, 96px);
    width: min(560px, calc(100% - 48px));
    background: #fff;
    padding: 56px 60px;
    clip-path: polygon(0 0, calc(100% - 36px) 0, 100% 36px, 100% 100%, 0 100%);
    box-shadow: 0 20px 50px rgba(20, 30, 60, 0.15);
}
.be-help__title {
    color: #1a1a2e;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
}
.be-help__text {
    color: #2a2a3a;
    line-height: 1.6;
}
@media (max-width: 767.98px) {
    .be-help { padding: 48px 0 24px; }
    .be-help__card { min-height: 0; padding: 32px 0; }
    .be-help__box { margin: 0 auto; padding: 32px 24px; }
}

/* ── Subject details: FR variants (Sept 2026 mockups) ───────────── */
/* Black CTA (FR sidebar "Acheter une certification") */
.cta-btn--black {
    background-color: #1a1a1a;
    color: #fff;
}
.cta-btn--black:hover {
    background-color: #333;
    color: #fff;
}

/* France compétences card */
.subject-details__fc-title {
    font-size: 0.95rem;
    line-height: 1.45;
    margin: 0 0 10px;
}
.subject-details__fc-code {
    font-size: 0.95rem;
}

/* FR hero tile: product icon in a white disc with the product name. */
.subject-details__hero--circle .subject-details__hero-tile {
    position: relative;
}
.subject-details__hero-disc {
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px;
}
.subject-details__hero-disc img {
    width: 84px;
    height: 84px;
    object-fit: contain;
}
.subject-details__hero-disc-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: #1a1a1a;
    text-align: center;
    line-height: 1.2;
    max-width: 150px;
}
@media (min-width: 768px) {
    .subject-details__hero--circle .subject-details__hero-tile {
        position: absolute;
    }
}
@media (max-width: 575.98px) {
    .subject-details__hero-disc { width: 150px; height: 150px; }
    .subject-details__hero-disc img { width: 64px; height: 64px; }
}

/* Sample Tests: hide every modal trigger on mobile and tablet */
@media (max-width: 991.98px) {
    [data-bs-target="#sample-tests-modal"] {
        display: none !important;
    }
}

.sbt-hero {
    background: #F5F7FF;
}
.sbt-body {
    max-width: 760px;
}
.sbt-body__text {
    color: #333;
    font-size: 1.0625rem;
    line-height: 1.65;
    margin-bottom: 12px;
}
.sbt-body__link {
    color: var(--tosa-orange);
    text-decoration: underline;
}
.sbt-body__secondary {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
}
.sbt-alert {
    max-width: 760px;
    margin-bottom: 32px;
}

.st-certs__block-title {
    font-size: clamp(1.2rem, 2vw, 1.5rem);
}
.st-tier__after {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.98rem;
    line-height: 1.65;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}
.st-tier__after h3 {
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.st-tier__after a,
.st-tier__footnote a {
    color: #fff;
    text-decoration: underline;
}

/*!****************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/components/search.css ***!
  \****************************************************************************************************************************/
.menubar__search {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

@media (min-width: 992px) {
    .menubar__search {
        width: 230px;
    }
}

.menubar__search-field {
    position: relative;
    width: 100%;
    min-width: 0;
    padding: 2px;
    background: transparent;
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
    transition: background-color 0.2s ease;
}

.menubar__search-field:focus-within {
    background: var(--tosa-orange);
}

.menubar__search-icon {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--tosa-orange);
    font-size: 0.95rem;
    pointer-events: none;
    z-index: 2;
}

.menubar__search-input {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 10px 18px 10px 2rem;
    border: none;
    background: #f3f4f6;
    color: #1a1a1a;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
    transition: background-color 0.2s ease;
}

.menubar__search-input::placeholder {
    color: #8a9097;
    font-weight: 500;
}

.menubar__search-input:focus {
    outline: none;
    background: #fff;
}

.menubar__search-input::-webkit-search-decoration,
.menubar__search-input::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

.menubar__search-results {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    z-index: 1050;
    max-height: 70vh;
    overflow-y: auto;
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 0;
}

@media (min-width: 992px) {
    .menubar__search-results {
        left: auto;
        right: 0;
        width: 320px;
    }
}

.menubar__search-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1.1rem;
    color: #1a1a1a;
    background: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.menubar__search-item:last-child {
    border-bottom: none;
}

.menubar__search-item:hover,
.menubar__search-item.is-active {
    background: #fff6f1;
    color: var(--tosa-orange);
}

.menubar__search-thumb {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    object-fit: contain;
    border-radius: 0.35rem;
}

.menubar__search-thumb--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff6f1;
    color: var(--tosa-orange);
    font-size: 0.9rem;
}

.menubar__search-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.menubar__search-title {
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menubar__search-title mark {
    padding: 0;
    background: rgba(241, 73, 16, 0.18);
    color: inherit;
    border-radius: 2px;
}

.menubar__search-type {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #8a9097;
}

.menubar__search-item:hover .menubar__search-type,
.menubar__search-item.is-active .menubar__search-type {
    color: var(--tosa-orange);
}

.menubar__search-empty {
    padding: 1rem 1.1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #6b7177;
    text-align: center;
}

/*!***********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/swiper/swiper.css ***!
  \***********************************************************************************************************************/
/**
 * Swiper 12.1.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: March 24, 2026
 */

:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}
:host {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}
.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}
.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-vertical {
  touch-action: pan-x;
}
.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
  display: block;
}
.swiper-slide-invisible-blank {
  visibility: hidden;
}
/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden;
}
/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-3d {
  perspective: 1200px;
  .swiper-slide,
  .swiper-cube-shadow {
    transform-style: preserve-3d;
  }
}

/* CSS Mode */
.swiper-css-mode {
  > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none; /* For Firefox */
    -ms-overflow-style: none; /* For Internet Explorer and Edge */
    &::-webkit-scrollbar {
      display: none;
    }
  }
  > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
  }
  &.swiper-horizontal {
    > .swiper-wrapper {
      scroll-snap-type: x mandatory;
    }
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-slides-offset-before);
      scroll-margin-inline-start: var(--swiper-slides-offset-before);
    }
    > .swiper-wrapper > .swiper-slide:last-child {
      margin-inline-end: var(--swiper-slides-offset-after);
    }
  }
  &.swiper-vertical {
    > .swiper-wrapper {
      scroll-snap-type: y mandatory;
    }
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-slides-offset-before);
      scroll-margin-block-start: var(--swiper-slides-offset-before);
    }
    > .swiper-wrapper > .swiper-slide:last-child {
      margin-block-end: var(--swiper-slides-offset-after);
    }
  }
  &.swiper-free-mode {
    > .swiper-wrapper {
      scroll-snap-type: none;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: none;
    }
  }
  &.swiper-centered {
    > .swiper-wrapper::before {
      content: '';
      flex-shrink: 0;
      order: 9999;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: center center;
      scroll-snap-stop: always;
    }
  }
  &.swiper-centered.swiper-horizontal {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      height: 100%;
      min-height: 1px;
      width: var(--swiper-centered-offset-after);
    }
  }
  &.swiper-centered.swiper-vertical {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      width: 100%;
      min-width: 1px;
      height: var(--swiper-centered-offset-after);
    }
  }
}

/* Slide styles start */
/* 3D Shadows */
.swiper-3d {
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom,
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
  }
  .swiper-slide-shadow {
    background: rgba(0, 0, 0, 0.15);
  }
  .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
}
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}
.swiper:not(.swiper-watch-progress),
.swiper-watch-progress .swiper-slide-visible {
  .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear;
  }
}
.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Slide styles end */


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRTtJQUNFLHVCQUF1QjtFQUN6QjtFQUNBO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0Y7QUFDQSxxQkFBcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL3NlYXJjaC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9zd2lwZXIuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIjpyb290IHtcbiAgICAtLXRvc2Etb3JhbmdlOiAjZjE0OTEwO1xuICAgIC0tdG9zYS1ibHVlOiAjNDU0NURCO1xuICAgIC0tdG9zYS1ibHVlLWxpZ2h0OiAjRTZGM0Y5O1xuICAgIC0tdG9zYS10ZWFsOiAjMGQ2YjZlO1xuICAgIC0tdG9zYS15ZWxsb3c6ICNGRkUzNTA7XG4gICAgLS10b3NhLWxpZ2h0LWJsdWU6ICNFNkYzRjk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuY29udGFpbmVyLXhsIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gICAgfVxufVxuXG4uY29udGFpbmVyLXhsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGNsYW1wKDFyZW0sIDIuNXZ3LCAycmVtKSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IGNsYW1wKDFyZW0sIDIuNXZ3LCAycmVtKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5LFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSxcbm9wdGdyb3VwIHtcbiAgICBmb250LWZhbWlseTogJ0VwaWxvZ3VlJywgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xufVxuXG46cm9vdCB7XG4gICAgLS1icy1ib2R5LWNvbG9yOiAjMUQxRDFCO1xuICAgIC0tYnMtYm9keS1jb2xvci1yZ2I6IDI5LCAyOSwgMjc7XG59XG5ib2R5IHtcbiAgICBjb2xvcjogIzFEMUQxQjtcbn1cbi8qIEZvcmNlIEVwaWxvZ3VlIGV2ZXJ5d2hlcmUg4oCUIG92ZXJyaWRlcyBCb290c3RyYXAgZGVmYXVsdHMgYW5kIGFueSBpbmxpbmVcbiAgIGZvbnQtZmFtaWx5IHNldCBieSBleHRlcm5hbCBjb250ZW50IChlLmcuIERyb3BJbkJsb2cgcG9zdCBIVE1MKS4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4uZGliLXBvc3QsXG4uZGliLXBvc3QtY29udGVudCxcbi5kaWItcG9zdC1jb250ZW50ICoge1xuICAgIGZvbnQtZmFtaWx5OiAnRXBpbG9ndWUnLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG59XG5cbi8qIOKUgOKUgCBSZXVzYWJsZSBDb21wb25lbnRzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4vKiBTZWN0aW9uIGRvdHMgLSB0aHJlZSBzbWFsbCBvcmFuZ2UgY2lyY2xlcyB1c2VkIGFzIGRlY29yYXRvcnMgYmVmb3JlIHNlY3Rpb24gdGl0bGVzICovXG4uc2VjdGlvbi1kb3RzIHNwYW4sXG4uaGVyb19fZG90cyBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4uc2VjdGlvbi1kb3RzLS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43NXJlbSwgMy41dncsIDIuNzVyZW0pO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuXG4vKiBDVEEgQnV0dG9ucyAtIG9yYW5nZSBidXR0b25zIHdpdGggY2xpcC1wYXRoIGN1dCBvbiB0b3AtcmlnaHQgY29ybmVyICovXG4uY3RhLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMzJweDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDE2cHgpIDAsIDEwMCUgMTZweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbn1cblxuLmN0YS1idG4tLW9yYW5nZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uY3RhLWJ0bi0tZ3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxREM1OEM7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5jdGEtYnRuLS1ncmVlbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTM3NDtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmN0YS1idG4tLWJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzODQ2RDg7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5jdGEtYnRuLS1ibHVlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzOGI4O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uY3RhLWJ0bi0tb3JhbmdlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDYzZDA5O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uY3RhLWJ0bl9faWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi8qIOKUgOKUgCBNZW51YmFyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLyogS2VlcCBhbGwgZXhpc3RpbmcgbWVudWJhciBzdHlsZXMgKi9cbi5uYXZiYXIgeyBtaW4taGVpZ2h0OiA3MnB4OyBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5uYXZiYXIgLm5hdmJhci1jb2xsYXBzZSB7IG1pbi13aWR0aDogMDsgfVxufVxuLm5hdmJhciAubmF2LWxpbmsgeyBjb2xvcjogIzFhMWExYSAhaW1wb3J0YW50OyB9XG4ubWVudWJhcl9fY3RhLWJ0biB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiA4cHg7IHBhZGRpbmc6IDEwcHggMjBweDsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgY3Vyc29yOiBwb2ludGVyOyBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNHB4KSAwLCAxMDAlIDE0cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTsgfVxuLm1lbnViYXJfX2N0YS1idG4tLWRhcmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhOyBjb2xvcjogI2ZmZjsgfVxuLm1lbnViYXJfX2N0YS1idG4tLWRhcms6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOyBjb2xvcjogI2ZmZjsgfVxuLm1lbnViYXJfX2N0YS1idG4tLW9yYW5nZSB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTsgY29sb3I6ICNmZmY7IH1cbi5tZW51YmFyX19jdGEtYnRuLS1vcmFuZ2U6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZDYzZDA5OyBjb2xvcjogI2ZmZjsgfVxuLm1lbnViYXJfX2NoZXZyb24geyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOyAtd2Via2l0LXRleHQtc3Ryb2tlOiAwLjhweCBjdXJyZW50Q29sb3I7IH1cbi5kcm9wZG93bi5zaG93IC5tZW51YmFyX19jaGV2cm9uLCAubmF2LWl0ZW0uc2hvdyAubWVudWJhcl9fY2hldnJvbiB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLyogTmF2YmFyIG5hdiBsaW5rcyBzcGFjaW5nICovXG4ubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtbGluayxcbi5uYXZiYXIgLm5hdmJhci1uYXYgLm1lbnViYXJfX2xpbmsge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubmF2YmFyIC5uYXZiYXItbmF2IC5tZW51YmFyX19saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpICFpbXBvcnRhbnQ7XG59XG4ubmF2YmFyIC5uYXZiYXItbmF2IC5tZW51YmFyX19pdGVtOm5vdCguZHJvcGRvd24pIC5tZW51YmFyX19saW5rIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5uYXZiYXIgLmNvbnRhaW5lci14bCB7XG4gICAgbWF4LXdpZHRoOiA5OSU7XG4gICAgbWluLWhlaWdodDogNzJweDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLm5hdmJhciAjbWVudWJhck5hdiB7XG4gICAgbWluLWhlaWdodDogNzJweDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLm5hdmJhciAubmF2YmFyLW5hdiB7XG4gICAgbWluLWhlaWdodDogNzJweDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubmF2YmFyIC5uYXZiYXItYnJhbmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi8qIEFjdGl2ZSAvIG9wZW4gc3RhdGU6IG9yYW5nZSB1bmRlcmxpbmUgKyAzIG9yYW5nZSBkb3RzIGNlbnRlcmVkIGJlbG93IHRoZSBsaW5rICovXG4ubWVudWJhcl9faXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1lbnViYXJfX2l0ZW06OmFmdGVyIHtcbiAgICAvKiBvcmFuZ2UgdW5kZXJsaW5lIGFsaWduZWQgd2l0aCBib3R0b20gb2YgbmF2YmFyICovXG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm1lbnViYXJfX2l0ZW0gLm1lbnViYXJfX2xpbms6OmJlZm9yZSB7XG4gICAgLyogMyBvcmFuZ2UgZG90cyBjZW50ZXJlZCBiZWxvdyB0aGUgbGluayAqL1xuICAgIGNvbnRlbnQ6IFwi4oCiIOKAoiDigKJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvdHRvbTogMC41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm5hdmJhciB1bC5tZW51YmFyX19kcm9wZG93bjo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6IFwiXCI7XG59XG4ubWVudWJhcl9faXRlbS5zaG93Om5vdCgubWVudWJhcl9faXRlbS0tYWNjb3VudCk6OmFmdGVyLFxuLm1lbnViYXJfX2l0ZW06aG92ZXI6bm90KC5tZW51YmFyX19pdGVtLS1hY2NvdW50KTo6YWZ0ZXIsXG4ubWVudWJhcl9faXRlbTpub3QoLm1lbnViYXJfX2l0ZW0tLWFjY291bnQpOmhhcygubWVudWJhcl9fbGlua1thcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSk6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbn1cbi5tZW51YmFyX19pdGVtLnNob3c6bm90KC5tZW51YmFyX19pdGVtLS1hY2NvdW50KSAubWVudWJhcl9fbGluazo6YmVmb3JlLFxuLm1lbnViYXJfX2l0ZW06aG92ZXI6bm90KC5tZW51YmFyX19pdGVtLS1hY2NvdW50KSAubWVudWJhcl9fbGluazo6YmVmb3JlLFxuLm1lbnViYXJfX2l0ZW06bm90KC5tZW51YmFyX19pdGVtLS1hY2NvdW50KSAubWVudWJhcl9fbGlua1thcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vKiBEcm9wZG93biBtZW51cyDigJQgY2FyZHMgc3RhY2tlZCB3aXRoIG5vIGdhcCwgbm8gcm91bmRlZCBjb3JuZXJzICovXG4ubmF2YmFyIC5tZW51YmFyX19kcm9wZG93biB7XG4gICAgbWFyZ2luLXRvcDogMS4ycmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWluLXdpZHRoOiAyODBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLyogVXB3YXJkLXBvaW50aW5nIGFycm93IG9uIHRvcCBvZiB0aGUgZmlyc3Qgc3VibWVudSBpdGVtICovXG4ubmF2YmFyIC5tZW51YmFyX19kcm9wZG93bjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC04cHg7XG4gICAgbGVmdDogMjRweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgI2ZmZjtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgLTJweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG4gICAgei1pbmRleDogMTtcbn1cbi8qIEZvciB0aGUgQWNjb3VudCBkcm9wZG93biAobWVudS1lbmQpLCBwbGFjZSB0aGUgYXJyb3cgb24gdGhlIHJpZ2h0IHNpZGUgKi9cbi5uYXZiYXIgLmRyb3Bkb3duLW1lbnUtZW5kLm1lbnViYXJfX2Ryb3Bkb3duOjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDI0cHg7XG59XG4ubmF2YmFyIC5tZW51YmFyX19kcm9wZG93biA+IGxpIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duIC5tZW51YmFyX19kcm9wZG93bi1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMXJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd24gPiBsaTpsYXN0LWNoaWxkIC5tZW51YmFyX19kcm9wZG93bi1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd24gLm1lbnViYXJfX2Ryb3Bkb3duLWl0ZW0gaS5iaS1jaGV2cm9uLXJpZ2h0IHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlOiAwLjVweCBjdXJyZW50Q29sb3I7XG59XG4ubmF2YmFyIC5tZW51YmFyX19kcm9wZG93biAubWVudWJhcl9fZHJvcGRvd24taXRlbTpob3Zlcixcbi5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duIC5tZW51YmFyX19kcm9wZG93bi1pdGVtOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY2ZjE7XG59XG5cbi8qIE5lc3RlZCBzdWJtZW51ICh1c2VkIG9uIFNvbHV0aW9ucyA+IENlcnRpZmljYXRpb25zKSAqL1xuLm5hdmJhciAubWVudWJhcl9faGFzLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX3N1Ym1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAgNHB4O1xuICAgIG1pbi13aWR0aDogMjYwcHg7XG59XG4ubmF2YmFyIC5tZW51YmFyX19zdWJtZW51OjpiZWZvcmUge1xuICAgIC8qIE1vdmUgdGhlIGFycm93IHRvIHRoZSBsZWZ0IHNpZGUgc28gaXQgcG9pbnRzIGJhY2sgYXQgdGhlIHBhcmVudCBpdGVtICovXG4gICAgdG9wOiAxNnB4O1xuICAgIGxlZnQ6IC04cHg7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgI2ZmZjtcbiAgICBib3JkZXItdG9wOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coLTJweCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpKTtcbn1cblxuLyogT3BlbiBkcm9wZG93biBvbiBob3ZlciBmb3IgZGVza3RvcCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLm5hdmJhciAubmF2LWl0ZW0uZHJvcGRvd246aG92ZXIgPiAuZHJvcGRvd24tbWVudSxcbiAgICAubmF2YmFyIC5kcm9wZG93bjpob3ZlciA+IC5kcm9wZG93bi1tZW51LFxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWFjY291bnQ6aG92ZXIgPiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAubmF2YmFyIC5tZW51YmFyX19oYXMtc3VibWVudTpob3ZlciA+IC5tZW51YmFyX19zdWJtZW51LFxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2hhcy1zdWJtZW51OmZvY3VzLXdpdGhpbiA+IC5tZW51YmFyX19zdWJtZW51IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyogSW52aXNpYmxlIGhvdmVyIGJyaWRnZSDigJQgZmlsbHMgdGhlIDEuMnJlbSAoMnJlbSBmb3IgdGhlIEFjY291bnRcbiAgICAgICBtZW51KSBnYXAgYmV0d2VlbiB0aGUgbmF2LWxpbmsgYW5kIHRoZSBkcm9wZG93biBzbyB0aGUgY3Vyc29yXG4gICAgICAgY2FuIHRyYXZlbCBiZXR3ZWVuIHRoZW0gd2l0aG91dCBsb3NpbmcgOmhvdmVyLiBQdXJlIGhvdmVyIHRhcmdldCxcbiAgICAgICBubyB2aXNpYmxlIGNoYW5nZS4gKi9cbiAgICAubmF2YmFyIC5tZW51YmFyX19kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTEuMnJlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWFjY291bnQgPiAuZHJvcGRvd24tbWVudS1lbmQ6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAtMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgIH1cbiAgICAubmF2YmFyIC5tZW51YmFyX19pdGVtLS1sYW5nID4gLmRyb3Bkb3duLW1lbnUtZW5kOjphZnRlciB7XG4gICAgICAgIHRvcDogY2FsYygtMnJlbSAtIDNweCk7XG4gICAgICAgIGhlaWdodDogY2FsYygycmVtICsgM3B4KTtcbiAgICB9XG59XG5cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWFjY291bnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWFjY291bnQgPiAuZHJvcGRvd24tbWVudS1lbmQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLyogTGFuZ3VhZ2Ugc3dpdGNoZXI6IHNhbWUgcGxhY2VtZW50IGFzIHRoZSBBY2NvdW50IG1lbnUgKi9cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWxhbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWxhbmcgPiAuZHJvcGRvd24tbWVudS1lbmQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogY2FsYygycmVtICsgM3B4KTtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xufVxuLm5hdmJhciAubWVudWJhcl9faXRlbS0tbGFuZyAubWVudWJhcl9fZHJvcGRvd24taXRlbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWxhbmcgLm1lbnViYXJfX2Ryb3Bkb3duLWl0ZW0uaXMtYWN0aXZlLFxuLm5hdmJhciAubWVudWJhcl9faXRlbS0tbGFuZyAubWVudWJhcl9fZHJvcGRvd24taXRlbS5pcy1hY3RpdmUgLmxvZ2luLWhlYWRlcl9fbGFuZy1jb2RlLW1pbmkge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG5cbi8qIOKUgOKUgCBIZXJvIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLyogRnVsbCB3aWR0aCBoZXJvIHdpdGggYmFja2dyb3VuZCBpbWFnZSBjb3ZlcmluZyB0aGUgZW50aXJlIHNlY3Rpb24uIFRleHQgb3ZlcmxheXMgb24gdGhlIGxlZnQuICovXG4uaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDg1dmg7XG59XG5cbi5oZXJvX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi5oZXJvX19iZy1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmhlcm9fX2JnOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjkyKSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjcpIDQwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA2NSUpO1xufVxuXG4uaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNC41dncsIDMuNXJlbSk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG5cbi5oZXJvX19zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICM1NTU7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbn1cblxuLm1pbi12aC03NSB7XG4gICAgbWluLWhlaWdodDogNzV2aDtcbn1cblxuLyog4pSA4pSAIEJleW9uZCBEaXBsb21hIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJleW9uZC1kaXBsb21hIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbn1cblxuLyogVmVjdG9yLnBuZyBkZWNvcmF0aXZlIHNoYXBlIG9uIHRoZSBsZWZ0ICovXG4uYmV5b25kLWRpcGxvbWE6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA0OSU7XG4gICAgaGVpZ2h0OiAxMTAlO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2hvbWUvdmVjdG9yLWJleW9uZC5wbmcnKSBuby1yZXBlYXQgbGVmdCB0b3A7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLmJleW9uZC1kaXBsb21hIC5jb250YWluZXIteGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG5cblxuLyogR3JleSBkb3RzIGFib3ZlIHRoZSBiZXlvbmQtZGlwbG9tYSBpbWFnZSAqL1xuLmJleW9uZC1kaXBsb21hX19ncmV5LWRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbi5iZXlvbmQtZGlwbG9tYV9fZ3JleS1kb3RzIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNjMGMwYzA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uYmV5b25kLWRpcGxvbWFfX2ltYWdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5iZXlvbmQtZGlwbG9tYV9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0ODBweDtcbiAgICBoZWlnaHQ6IDU4MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogNjAlIDE1JTtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCA4MiUgMCwgMTAwJSAxNCUsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vKiBTdGF0IGNhcmQgb3ZlcmxhcHBpbmcgdGhlIGltYWdlIGF0IGJvdHRvbS1yaWdodCAqL1xuLmJleW9uZC1kaXBsb21hX19zdGF0LWNhcmQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDQwcHg7XG4gICAgcmlnaHQ6IC02MHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAyMnB4IDI0cHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggNDBweCByZ2JhKDAsMCwwLDAuMDgpO1xuICAgIG1heC13aWR0aDogMjEwcHg7XG4gICAgei1pbmRleDogMztcbn1cblxuLyogQmx1ZSBjaXJjbGUgYnJpZWZjYXNlIGljb24gZmxvYXRpbmcgYXQgdG9wLXJpZ2h0IG9mIHN0YXQgY2FyZCAqL1xuLmJleW9uZC1kaXBsb21hX19zdGF0LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0yMHB4O1xuICAgIHJpZ2h0OiAtMjBweDtcbiAgICB3aWR0aDogNTJweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIHotaW5kZXg6IDQ7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDY5LDY5LDIxOSwwLjMpO1xufVxuXG4uYmV5b25kLWRpcGxvbWFfX3N0YXQtbnVtYmVyIHtcbiAgICBmb250LXNpemU6IDIuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdG9zYS1ibHVlKTtcbn1cblxuLmJleW9uZC1kaXBsb21hX19zdGF0LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgY29sb3I6ICM2NjY7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qIFNvZnR3YXJlIGljb25zIHJvdyBiZWxvdyB0aGUgaW1hZ2UgKi9cbi5iZXlvbmQtZGlwbG9tYV9fc29mdHdhcmUtaWNvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG59XG5cbi5iZXlvbmQtZGlwbG9tYV9fc3ctaWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmJleW9uZC1kaXBsb21hX19zdy1pY29uIGltZyB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8qIFJpZ2h0IGNvbHVtbiB0ZXh0IHN0eWxpbmcgKi9cbi5iZXlvbmQtZGlwbG9tYSAuc2VjdGlvbi10aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDNyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuXG4vKiBIaWdobGlnaHRlZCB0ZXh0IGluc2lkZSBiZXlvbmQtZGlwbG9tYSBwYXJhZ3JhcGggKi9cbi50ZXh0LWhpZ2hsaWdodCB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xufVxuXG4vKiDilIDilIAgQ2VydGlmeSBTa2lsbHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uY2VydGlmeS1za2lsbHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGY3Zjc7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaG9tZS92ZWN0b3ItY2VydGlmeXNsaWRlci5wbmcnKSwgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2YwZjdmNyAwJSwgI2ZmZiAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8sIGNvdmVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIFN3aXBlciBjb250YWluZXIgLSBmYWRlIGF1eCBib3JkcyBnYXVjaGUgZXQgZHJvaXQgKi9cbi5zd2lwZXIuY2VydGlmeS1zd2lwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDMwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIHRvIHJpZ2h0LFxuICAgICAgICB0cmFuc3BhcmVudCAwJSxcbiAgICAgICAgYmxhY2sgMTIlLFxuICAgICAgICBibGFjayA4OCUsXG4gICAgICAgIHRyYW5zcGFyZW50IDEwMCVcbiAgICApO1xuICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgdG8gcmlnaHQsXG4gICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICBibGFjayAxMiUsXG4gICAgICAgIGJsYWNrIDg4JSxcbiAgICAgICAgdHJhbnNwYXJlbnQgMTAwJVxuICAgICk7XG59XG5cbi5jZXJ0aWZ5LXN3aXBlciAuc3dpcGVyLXdyYXBwZXIge1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLyogT3ZlcnJpZGUgU3dpcGVyIGRlZmF1bHQgd2lkdGg6IDEwMCUgb24gc2xpZGVzIC0gZml4ZWQgd2lkdGggKi9cbi5jZXJ0aWZ5LXN3aXBlciAuc3dpcGVyLXNsaWRlIHtcbiAgICB3aWR0aDogMjYwcHggIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAyNjBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2VydGlmeS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDMycHggMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDI2MHB4O1xuICAgIG1pbi13aWR0aDogMjYwcHg7XG4gICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICBoZWlnaHQ6IDI4MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgIG1heC1oZWlnaHQ6IDI4MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBib3gtc2hhZG93OiAwcHggM3B4IDIwcHggI2RlZGVkZTtcbn1cblxuLmNlcnRpZnktY2FyZF9faWNvbiB7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY2VydGlmeS1jYXJkX19pY29uIGltZyB7XG4gICAgd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLyogQnVuZGxlIGNhcmRzIOKAlCB0aGUgYnVuZGxlIGJhbm5lciBpcyB3aWRlLCBzbyBvdmVycmlkZSB0aGUgc3F1YXJlIGljb24gc2xvdCAqL1xuLmNlcnRpZnktY2FyZC0tYnVuZGxlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cbi5jZXJ0aWZ5LWNhcmRfX2ljb24tLWJ1bmRsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTtcbn1cbi5jZXJ0aWZ5LWNhcmRfX2ljb24tLWJ1bmRsZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmNlcnRpZnktY2FyZF9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgbWluLWhlaWdodDogMi42ZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiDilIDilIAgQ2VydGlmaWNhdGlvbiBPZmZlcmluZ3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uY2VydC1vZmZlcmluZ3Mge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg0NmQ4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NlcnRpZmljYXRpb24vR3JvdXAgMTA4LnBuZycpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5jZXJ0LW9mZmVyaW5nc19faGVhZGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNGRkUzNTA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDE0cHggNDhweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgZm9udC1zaXplOiBjbGFtcCgxcmVtLCAyLjR2dywgMS45cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xufVxuLmNlcnQtb2ZmZXJpbmdzX19sZWFkIHtcbiAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uY2VydC1vZmZlcmluZ3NfX3RhYnMtbGFiZWwge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbi5jZXJ0LW9mZmVyaW5nc19fYmctaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG59XG5cbi5jZXJ0LW9mZmVyaW5nc19fYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBvYmplY3QtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jZXJ0LW9mZmVyaW5nc19fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDQ4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG59XG5cbi5jZXJ0LW9mZmVyaW5nc19fbG9nby1pdGVtIHtcbiAgICBwYWRkaW5nOiA4cHggMDtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19sb2dvLWxpbmUge1xuICAgIGhlaWdodDogM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLyog4pSA4pSAIExlYXJuaW5nIFBsYXRmb3JtIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmxlYXJuaW5nLXBsYXRmb3JtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2hvbWUvZ3JhZGllbnQtYmcucG5nJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5wbGF0Zm9ybS1mZWF0dXJlX19pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogU3VidGxlIHNoYWRvdyBlbGxpcHNlIGJlbG93IHRoZSBpY29uICovXG4ucGxhdGZvcm0tZmVhdHVyZV9faWNvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC00cHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2OSwgNjksIDIxOSwgMC4wOCk7XG4gICAgZmlsdGVyOiBibHVyKDNweCk7XG59XG5cbi5wbGF0Zm9ybS1mZWF0dXJlX19pY29uIGltZyxcbi5wbGF0Zm9ybS1mZWF0dXJlX19pY29uIHZpZGVvIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLyogV2h5LWNob29zZSAmIFdoby13ZS1zZXJ2ZSBpY29uIHNpemUgY29uc3RyYWludHMgKi9cbi53aHktY2FyZF9faWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG4ud2h5LWNhcmRfX2ljb24gaW1nLFxuLndoeS1jYXJkX19pY29uIHZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8qIOKUgOKUgCBXaG8gV2UgU2VydmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ud2hvLXdlLXNlcnZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDQwcHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLndoby13ZS1zZXJ2ZSAuY29udGFpbmVyLXhsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpIHVybCgnLi4vaW1hZ2VzL2hvbWUvdmVjdG9yLXdob3dlc2VydmUucG5nJykgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY291bnRhaW47XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogNjRweCA1NnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogODAlO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDk0JSAwLCAxMDAlIDE0JSwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuXG4ud2hvLXdlLXNlcnZlIC5jb2wtbGctN3tcbiAgICBwYWRkaW5nLXRvcDogNGVtO1xufVxuXG4ud2hvLXdlLXNlcnZlIC5jb2wtbGctNXtcbiAgIHBhZGRpbmc6IDAlIDMlO1xufVxuXG4ud2hvLXdlLXNlcnZlIC5zZWN0aW9uLWRvdHMtLW9yYW5nZSBzcGFue1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KSAhaW1wb3J0YW50O1xufVxuLndoby13ZS1zZXJ2ZSAuc2VjdGlvbi10aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi53aG8td2Utc2VydmUgcCB7XG4gICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7XG59XG5cbi5zZWN0aW9uLWRvdHMtLW9yYW5nZSBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSkgIWltcG9ydGFudDtcbn1cblxuLnNlY3Rpb24tZG90cy0teWVsbG93IHNwYW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KSAhaW1wb3J0YW50O1xufVxuXG4uc2VydmUtY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiA0MXB4IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uc2VydmUtY2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5zZXJ2ZS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2NnB4O1xufVxuLnNlcnZlLWNhcmRfX2ljb24gaW1nLFxuLnNlcnZlLWNhcmRfX2ljb24gdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4ucGxhdGZvcm0tZmVhdHVyZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpICFpbXBvcnRhbnQ7XG59XG5cbi5wbGF0Zm9ybS1mZWF0dXJlX190ZXh0IHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLyog4pSA4pSAIFdoeSBDaG9vc2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ud2h5LWNob29zZSB7XG4gICAgYmFja2dyb3VuZDogI0U2RjNGOSB1cmwoJy4uL2ltYWdlcy9ob21lL3ZlY3Rvci13aHljaG9vc2UucG5nJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG59XG5cbi53aHktY2hvb3NlIC5jb250YWluZXIteGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4ud2h5LWNob29zZSAuc2VjdGlvbi10aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG5cbi53aHktY2hvb3NlIC5yb3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi53aHktY2hvb3NlIC53aHktY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDQwcHggMjhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTZGM0Y5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA0MzBweDtcbn1cblxuLndoeS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLndoeS1jYXJkX19pY29uIGltZyxcbi53aHktY2FyZF9faWNvbiB2aWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8qIFNtYWxsIGJsdWUgdW5kZXJsaW5lIGJldHdlZW4gaWNvbiBhbmQgdGl0bGUgLSBibHVycmVkICovXG4ud2h5LWNhcmRfX2xpbmUge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgZmlsdGVyOiBibHVyKDdweCk7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi53aHktY2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBtYXJnaW4tdG9wOiA2MnB4O1xufVxuXG4ud2h5LWNhcmRfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogQ1RBIGNhcmQ6IG9yYW5nZSBiYWNrZ3JvdW5kICovXG4ud2h5LWNhcmQtLWN0YSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpIHVybCgnLi4vaW1hZ2VzL2hvbWUvd2h5Y2hvb3NlbGluay5wbmcnKSBuby1yZXBlYXQgYm90dG9tIGxlZnQgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gNjUlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNDBweCAyOHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbi53aHktY2FyZC0tY3RhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDYzZDA5ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi53aHktY2FyZF9fY3RhLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5cbi53aHktY2FyZF9fY3RhLWFycm93IHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuLyog4pSA4pSAIFRlc3RpbW9uaWFscyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi50ZXN0aW1vbmlhbHMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzA1Njc2QSAwJSwgIzA1Njc2QSA1MCUsICMwMDUzNTYgNTAlLCAjMDA1MzU2IDEwMCUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctYm90dG9tOiAyODBweCAhaW1wb3J0YW50O1xufVxuXG4udGVzdGltb25pYWxzOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNXB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgei1pbmRleDogMjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnRlc3RpbW9uaWFsc19fbGVmdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuXG4udGVzdGltb25pYWxzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogMTI5JTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9ob21lL3ZlY3Rvci10ZXN0aW1vbmlhbC1sZWZ0LnBuZycpIG5vLXJlcGVhdCBib3R0b20gbGVmdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbi50ZXN0aW1vbmlhbHNfX3JpZ2h0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLnRlc3RpbW9uaWFscyA+IC5jb250YWluZXIteGw6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMjgwcHg7XG4gICAgcmlnaHQ6IC0yMjBweDtcbiAgICB3aWR0aDogNjAwcHg7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9ob21lL3ZlY3Rvci10ZXN0aW1vbmlhbC1yaWdodC5wbmcnKSBuby1yZXBlYXQgYm90dG9tIHJpZ2h0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG4udGVzdGltb25pYWxzID4gLmNvbnRhaW5lci14bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udGVzdGltb25pYWwtY2FyZC5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vKiBTcGVlY2gtYnViYmxlIGJhY2tncm91bmQgaW1hZ2UuIFRoZSBpbWFnZSdzIHRhaWwgaXMgfjM0JSBvZiBpdHMgaGVpZ2h0LCBzb1xuICAgdGhlIGJvdHRvbSBpbnNldCBpcyBhIFBFUkNFTlRBR0Ugb2YgdGhlIGNhcmQgaGVpZ2h0IChub3QgYSBmaXhlZCBweCk6IHRoZVxuICAgaW1hZ2UncyBib2R5IHRoZW4gYWx3YXlzIGNvdmVycyB0aGUgcXVvdGUgKyBhdXRob3Igbm8gbWF0dGVyIGhvdyBsb25nIHRoZVxuICAgcXVvdGUgaXMsIGFuZCB0aGUgdGFpbCBleHRlbmRzIHByb3BvcnRpb25hbGx5IGJlbG93LiAqL1xuLnRlc3RpbW9uaWFsLWNhcmQuaXMtYWN0aXZlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00MHB4O1xuICAgIGxlZnQ6IC00MHB4O1xuICAgIHJpZ2h0OiAtNDBweDtcbiAgICBib3R0b206IC01NSU7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvaG9tZS92ZWN0b3ItdGVzdGltb25pYWwtZGlhbG9nLndlYnAnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnRlc3RpbW9uaWFsc19fYXZhdGFyIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkIHZhcigtLXRvc2EtdGVhbCk7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50ZXN0aW1vbmlhbHNfX2F2YXRhcjpudGgtY2hpbGQoMSkgeyB6LWluZGV4OiAxOyB9XG4udGVzdGltb25pYWxzX19hdmF0YXI6bnRoLWNoaWxkKDIpIHsgei1pbmRleDogMjsgfVxuLnRlc3RpbW9uaWFsc19fYXZhdGFyOm50aC1jaGlsZCgzKSB7IHotaW5kZXg6IDM7IH1cblxuLnRlc3RpbW9uaWFsc19fYXZhdGFyOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLnRlc3RpbW9uaWFsc19fYXZhdGFyIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzO1xufVxuXG4udGVzdGltb25pYWxzX19hdmF0YXIuaXMtYWN0aXZlIGltZyB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xufVxuXG5cbi50ZXN0aW1vbmlhbHNfX25hdi1idG4ge1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNHB4KSAwLCAxMDAlIDE0cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cblxuLnRlc3RpbW9uaWFsc19fbmF2LWJ0bi0tcHJldiB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigxNHB4IDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUsIDAgMTRweCk7XG59XG5cbi50ZXN0aW1vbmlhbHNfX25hdi1idG4tLXByZXY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG59XG5cbi50ZXN0aW1vbmlhbHNfX25hdi1idG4tLW5leHQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLnRlc3RpbW9uaWFsc19fbmF2LWJ0bi0tbmV4dDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Q2M2QwOTtcbn1cblxuLyogU2xpZGVyIHdyYXBwZXIgKi9cbi50ZXN0aW1vbmlhbHNfX3NsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogODAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4vKiBBbGwgc2xpZGVzIGhpZGRlbiBieSBkZWZhdWx0ICovXG4udGVzdGltb25pYWxzX19zbGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogQWN0aXZlIHNsaWRlOiBibG9jayArIGZhZGUtaW4gYW5pbWF0aW9uICovXG4udGVzdGltb25pYWxzX19zbGlkZS5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGFuaW1hdGlvbjogdGVzdGltb25pYWwtZmFkZWluIDAuNHMgZWFzZSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyB0ZXN0aW1vbmlhbC1mYWRlaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTRweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiA1NnB4IDY0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWluLWhlaWdodDogNDYwcHg7XG59XG5cbi50ZXN0aW1vbmlhbHNfX3NsaWRlLmlzLWFjdGl2ZS50ZXN0aW1vbmlhbC1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBub3JtYWw7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19xdW90ZSBwIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX2F1dGhvci1saW5lIHtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fYXV0aG9yLWltZyB7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS10b3NhLXRlYWwpO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fYXV0aG9yLW5hbWUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19hdXRob3Itcm9sZSB7XG4gICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbn1cblxuLyog4pSA4pSAIEdldCBTdGFydGVkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmdldC1zdGFydGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAtMjIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIyMHB4O1xuICAgIHotaW5kZXg6IDI7XG59XG5cbi5nZXQtc3RhcnRlZF9fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgLyogQ2xpcC1wYXRoIGN1dCBvbiB0b3AtcmlnaHQgdG8gbWF0Y2ggZGVzaWduIHN0eWxlICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNjBweCkgMCwgMTAwJSA2MHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG5cbi5nZXQtc3RhcnRlZF9fY2FyZCA+IC5jb250YWluZXIteGwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbn1cblxuLmdldC1zdGFydGVkX19pbWFnZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQyMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5nZXQtc3RhcnRlZF9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLyogQmxvZyBwYWdlIHZhcmlhbnQ6IGltYWdlIHN0cmV0Y2hlcyB0byB0aGUgYm90dG9tIG9mIHRoZSBjYXJkLiAqL1xuLmdldC1zdGFydGVkLS1ibG9nIC5nZXQtc3RhcnRlZF9faW1hZ2Utd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG4uZ2V0LXN0YXJ0ZWQtLWJsb2cgLmdldC1zdGFydGVkX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xufVxuXG4uZ2V0LXN0YXJ0ZWRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgMi44dncsIDIuMjVyZW0pO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5nZXQtc3RhcnRlZF9fdGV4dCB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG59XG5cbi8qIOKUgOKUgCBOZXdzbGV0dGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLm5ld3NsZXR0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWYzZmI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogMzIwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogODBweCAhaW1wb3J0YW50O1xufVxuXG4ubmV3c2xldHRlcl9faW5wdXQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubmV3c2xldHRlcl9faW5wdXQtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4ubmV3c2xldHRlcl9faW5wdXQge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAxNnB4IDQ4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGhlaWdodDogNTZweDtcbn1cblxuLm5ld3NsZXR0ZXJfX3NlbGVjdCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiA1NnB4O1xufVxuXG4ubmV3c2xldHRlcl9faW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI0MSwgNzMsIDE2LCAwLjE1KTtcbn1cblxuLm5ld3NsZXR0ZXJfX211bHRpc2VsZWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtdHJpZ2dlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDE2cHggNDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6ICM2Yzc1N2Q7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtdHJpZ2dlclthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjQxLCA3MywgMTYsIDAuMTUpO1xufVxuLm5ld3NsZXR0ZXJfX211bHRpc2VsZWN0LWxhYmVsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtbGFiZWwuaGFzLXNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICMyMTI1Mjk7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtY2FyZXQge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLm5ld3NsZXR0ZXJfX211bHRpc2VsZWN0LXRyaWdnZXJbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLm5ld3NsZXR0ZXJfX211bHRpc2VsZWN0LWNhcmV0IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLm5ld3NsZXR0ZXJfX211bHRpc2VsZWN0LXBhbmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMjA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyOHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4xNSk7XG4gICAgcGFkZGluZzogOHB4IDA7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3Qtb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGNvbG9yOiAjMjEyNTI5O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC1vcHRpb246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY3ZmM7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3Qtb3B0aW9uIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGFjY2VudC1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5uZXdzbGV0dGVyX19lcnJvciB7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDEsIDczLCAxNiwgMC4xKTtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogIzhhNGIxYTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG4ubmV3c2xldHRlcl9fc3VjY2VzcyB7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwLCAzMCwgNjAsIDAuMTIpO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiDilIDilIAgRm9vdGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogIzFhMWEyZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZvb3Rlcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3ZlY3Rvci1mb290ZXIucG5nJykgbm8tcmVwZWF0IGxlZnQgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG4uZm9vdGVyID4gLmNvbnRhaW5lci14bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG5cblxuLmZvb3Rlcl9fbGlua3MgYTpob3ZlciB7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5mb290ZXJfX3NvY2lhbC1idG4ge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDEycHgpIDAsIDEwMCUgMTJweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mb290ZXJfX3NvY2lhbC1pbWcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogYXV0bztcbn1cbi5mb290ZXJfX3NvY2lhbC1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5mb290ZXJfX2hlYWRpbmctZG90cyBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xufVxuXG4vKiDilIDilIAgUmVzcG9uc2l2ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5oZXJvIHtcbiAgICAgICAgbWluLWhlaWdodDogNjB2aDtcbiAgICB9XG5cbiAgICAuaGVyb19fYmc6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjk1KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KSA2MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC41KSAxMDAlKTtcbiAgICB9XG5cbiAgICAuY2VydC1vZmZlcmluZ3NfX3NoYXBlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2VydC1vZmZlcmluZ3NfX2NhcmQge1xuICAgICAgICBwYWRkaW5nOiAzMnB4O1xuICAgIH1cblxuICAgIC5nZXQtc3RhcnRlZF9faW1hZ2Utd3JhcHBlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIH1cbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBDRVJUSUZJQ0FUSU9OUyBQQUdFXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cblxuLyogQ2VydCBIZXJvICovXG4uY2VydC1oZXJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOTZweCAwIDE2MHB4O1xufVxuLmNlcnQtaGVyb19fYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAxO1xufVxuLmNlcnQtaGVyb19fYmctaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgODklO1xufVxuLmNlcnQtaGVyb19fYmc6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTIpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuNykgNDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDY1JSk7XG59XG4uY2VydC1oZXJvX19yb3cge1xuICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG59XG4uY2VydC1oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDMuMjVyZW0pO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmNlcnQtaGVyb19fc3VidGl0bGUge1xuICAgIGNvbG9yOiAjMjIyO1xuICAgIG1heC13aWR0aDogNTQwcHg7XG59XG5cbi8qIENlcnQgVW5pcXVlIFNlY3Rpb24gKi9cbi5jZXJ0LXVuaXF1ZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uY2VydC11bmlxdWVfX2NhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDgwcHgpIDAsIDEwMCUgODBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNlcnQtdW5pcXVlX19jYXJkLWlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNzhweCkgMCwgMTAwJSA3OHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogI0VERUVGQjtcbiAgICBwYWRkaW5nOiA3MnB4IDY0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jZXJ0LXVuaXF1ZV9fdmVjdG9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDM0MHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIG9wYWNpdHk6IDAuODU7XG59XG4uY2VydC11bmlxdWVfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg2OSwgNjksIDIxOSwgMC4yKTtcbn1cbi5jZXJ0LXVuaXF1ZV9faXRlbXMgLmNlcnQtdW5pcXVlX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuLmNlcnQtdW5pcXVlX19pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uY2VydC11bmlxdWVfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5jZXJ0LXVuaXF1ZV9fZGVzYyB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4vKiA1IFN0ZXBzIHBpbGwgdGl0bGUgKi9cbi5jZXJ0LXVuaXF1ZV9fc3RlcHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jZXJ0LXN0ZXBzX190aXRsZS1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMzZweDtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1hcmdpbjogMzJweCAwIDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5jZXJ0LXVuaXF1ZV9faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDMycHg7XG59XG4uY2VydC11bmlxdWVfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAyMHB4O1xufVxuLmNlcnQtdW5pcXVlX19pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuLmNlcnQtdW5pcXVlX19ib2R5IHtcbiAgICBmbGV4OiAxO1xufVxuLmNlcnQtdW5pcXVlX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5jZXJ0LXVuaXF1ZV9fZGVzYyB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLyogQ2VydCBTdGVwIChpbWFnZS1iYXNlZCkgKi9cbi5jZXJ0LXN0ZXBfX2ltZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAyNDFweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTQ3OS45OHB4KSB7XG4gICAgLmNlcnQtc3RlcF9faW1nIHtcbiAgICAgICAgaGVpZ2h0OiAxOTBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgICAuY2VydC1zdGVwX19pbWcge1xuICAgICAgICBoZWlnaHQ6IDE0NXB4O1xuICAgIH1cbn1cbi5jZXJ0LXN0ZXBfX2Rlc2Mge1xuICAgIG1hcmdpbjogMS4yNXJlbSAwIDA7XG4gICAgY29sb3I6ICM0YTRhNTU7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgLjI1cmVtO1xufVxuXG4vKiBDZXJ0IE9mZmVyaW5ncyBTZWN0aW9uICovXG4uY2VydC1vZmZlcmluZ3NfX3RhYnMge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogODBweDtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDEzOTkuOThweCkge1xuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFicyB7XG4gICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFicyAubmF2LWl0ZW0ge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFicyAubmF2LWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgfVxufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtaXRlbSB7XG4gICAgZmxleDogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY2VydC1vZmZlcmluZ3NfX3RhYnMgLm5hdi1saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBnYXA6IDhweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAyNHB4IDI4cHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xMCk7XG59XG4uY2VydC1vZmZlcmluZ3NfX3RhYi1sb2dvIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLmNlcnQtb2ZmZXJpbmdzX190YWJzIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFicyAubmF2LWl0ZW0ge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxufVxuLmNlcnQtb2ZmZXJpbmdzX190YWItY2hldnJvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjOWFhMGI1O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtbGluay5hY3RpdmUgLmNlcnQtb2ZmZXJpbmdzX190YWItY2hldnJvbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtbGluay5hY3RpdmU6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMjhweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYm9yZGVyLWxlZnQ6IDEzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgI2ZmZjtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fbW9ja3VwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAzMnB4O1xufVxuLmNlcnQtb2ZmZXJpbmdzX19tb2NrdXAtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fbW9ja3VwLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4uY2VydC1vZmZlcmluZ3NfX21vY2t1cC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMzJweDtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fYXBwLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBwYWRkaW5nOiAxNnB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI0Q5RDlEOTMzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEOUQ5RDk7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMxYTFhMWE7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnMsIGJhY2tncm91bmQtY29sb3IgMC4ycztcbn1cbi5jZXJ0LW9mZmVyaW5nc19fYXBwLWljb246aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoNjksIDY5LCAyMTksIDAuMDgpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fYXBwLWljb24gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogNzRweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190cmFkZW1hcmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDZweDtcbiAgICByaWdodDogMTBweDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNlcnQtb2ZmZXJpbmdzX19hcHAtaWNvbi0tYnVuZGxlIHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4uY2VydC1vZmZlcmluZ3NfX2FwcC1pY29uLS1idW5kbGUgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fYXBwLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi8qIENlcnQgU3RlcHMgKi9cbi5jZXJ0LXN0ZXBzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjVmNWZmIDAlLCAjZThmMGZmIDEwMCUpO1xufVxuLmNlcnQtc3RlcHNfX3RpdGxlLXBpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMTJweCA0OHB4O1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG59XG4uY2VydC1zdGVwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY2VydC1zdGVwX19jaGFydCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4uY2VydC1zdGVwX19sZXZlbCB7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XG59XG4uY2VydC1zdGVwX19sZXZlbC0tYWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uY2VydC1zdGVwX19udW1iZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuLmNlcnQtc3RlcF9fbmFtZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uY2VydC1zdGVwX19zdWIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5jZXJ0LXN0ZXBfX3Njb3JlIHtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbn1cbi5jZXJ0LXN0ZXBfX3Njb3JlLS1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vKiBDZXJ0IENhdGFsb2cgLyBPZmZlcmluZ3MgVGFicyAqL1xuLmNlcnQtY2F0YWxvZyB7XG4gICAgYmFja2dyb3VuZDogI2U4ZjRmODtcbn1cbi5jZXJ0LWNhdGFsb2dfX3RhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG4uY2VydC1jYXRhbG9nX190YWIge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICBvcGFjaXR5OiAwLjU7XG59XG4uY2VydC1jYXRhbG9nX190YWItLWFjdGl2ZSxcbi5jZXJ0LWNhdGFsb2dfX3RhYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJveC1zaGFkb3c6IDAgLTJweCA4cHggcmdiYSgwLDAsMCwwLjA1KTtcbn1cbi5jZXJ0LWNhdGFsb2dfX3RhYiBpbWcge1xuICAgIGhlaWdodDogMzJweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmNlcnQtY2F0YWxvZ19fYnJvd3NlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMTJweCAxMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAuMDgpO1xufVxuLmNlcnQtY2F0YWxvZ19fYnJvd3Nlci1iYXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG59XG4uY2VydC1jYXRhbG9nX19icm93c2VyLWRvdCB7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZGRkO1xufVxuLmNlcnQtY2F0YWxvZ19fYnJvd3Nlci11cmwge1xuICAgIGZsZXg6IDE7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgcGFkZGluZzogNnB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgY29sb3I6ICM2NjY7XG59XG4uY2VydC1jYXRhbG9nX19hcHAtaWNvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuLmNlcnQtY2F0YWxvZ19fYXBwLWljb246aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwwLDAsMC4wOCk7XG59XG4uY2VydC1jYXRhbG9nX19hcHAtaWNvbiBpbWcge1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5jZXJ0LWNhdGFsb2dfX2FwcC1pY29uIHAge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiBDZXJ0IEJ1bmRsZXMgKi9cbi5jZXJ0LWJ1bmRsZXMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uY2VydC1idW5kbGVzX19pbm5lciB7XG4gICAgcGFkZGluZzogMjRweCA0OHB4O1xufVxuLmNlcnQtYnVuZGxlc19faW50cm8ge1xuICAgIG1heC13aWR0aDogODYwcHg7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5jZXJ0LWJ1bmRsZXNfX2dyYXBoaWMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uY2VydC1idW5kbGVzX19ncmFwaGljIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuYnV0dG9uLmNlcnQtYnVuZGxlc19fZ3JhcGhpYy0tem9vbTpub3QoOmRpc2FibGVkKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGN1cnNvcjogem9vbS1pbjtcbn1cbmJ1dHRvbi5pbWctem9vbS1idG46bm90KDpkaXNhYmxlZCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogem9vbS1pbjtcbn1cbi5jZXJ0LWJ1bmRsZXNfX3pvb20tY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5jZXJ0LWJ1bmRsZXNfX3pvb20tY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgei1pbmRleDogMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEycHg7XG59XG4uY2VydC1idW5kbGVzX196b29tLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jZXJ0LWJ1bmRsZXNfX3pvb20tc2Nyb2xsIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAwcHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4O1xufVxuLmNlcnQtYnVuZGxlc19fY3JlZGx5IHtcbiAgICBtYXgtd2lkdGg6IDc4MHB4O1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uY2VydC1idW5kbGVzX19jcmVkbHkgYSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5jZXJ0LWJ1bmRsZXNfX21hdHJpeC1pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIENlcnQgRW50cmllcyAoaW5kaXZpZHVhbCBjZXJ0aWZpY2F0aW9ucykgKi9cbi5jZXJ0LWVudHJpZXMge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2J1bmRsZXMvYmctMDEuanBnJykgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbn1cbi5jZXJ0LWVudHJpZXMgLmNvbnRhaW5lci14bCB7XG4gICAgbWF4LXdpZHRoOiAxNDQwcHg7XG59XG4uY2VydC1lbnRyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbiAgICBib3gtc2hhZG93OiAwIDQzcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLmNlcnQtZW50cnk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5jZXJ0LWVudHJ5X19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDgwcHg7XG59XG4uY2VydC1lbnRyeS0tcmV2ZXJzZSAuY2VydC1lbnRyeV9faW5uZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLyogQ2VydCBSZWFkeSAoYXVkaWVuY2VzKSAqL1xuLmNlcnQtcmVhZHlfX2Rpc2NsYWltZXIge1xuICAgIG1hcmdpbjogMjRweCBhdXRvIDA7XG4gICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogODYwcHg7XG59XG4uY2VydC1yZWFkeV9fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZTU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5jZXJ0LXJlYWR5X19jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMzJweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNlNTtcbn1cbi5jZXJ0LXJlYWR5X19jYXJkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5jZXJ0LXJlYWR5X19jYXJkLS1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbn1cbi5jZXJ0LXJlYWR5X19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNlcnQtcmVhZHlfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG4uY2VydC1yZWFkeV9fdGV4dCB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC1zaXplOiAwLjkyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGZsZXg6IDE7XG59XG4uY2VydC1yZWFkeV9fbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG59XG4uY2VydC1yZWFkeV9fY2FyZC0taGlnaGxpZ2h0IC5jZXJ0LXJlYWR5X19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5jZXJ0LXJlYWR5X19hcnJvdyB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qIENlcnQgVGVzdGltb25pYWwgKi9cbi5jZXJ0LXRlc3RpbW9uaWFsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogIzAwNTM1NjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjgwcHg7XG59XG4uY2VydC10ZXN0aW1vbmlhbF9fdmVjdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uY2VydC10ZXN0aW1vbmlhbF9fdmVjdG9yLS1sZWZ0IHsgbGVmdDogMDsgfVxuLmNlcnQtdGVzdGltb25pYWxfX3ZlY3Rvci0tcmlnaHQgeyByaWdodDogMDsgfVxuLmNlcnQtdGVzdGltb25pYWxfX3F1b3RlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMDQwcHg7XG4gICAgbWFyZ2luOiA4MHB4IGF1dG87XG4gICAgcGFkZGluZzogNzJweCA4MHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTUpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgNjAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpIDE7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uY2VydC10ZXN0aW1vbmlhbF9fcXVvdGUtLXdpdGgtcGhvdG8ge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xufVxuLmNlcnQtdGVzdGltb25pYWxfX3Bob3RvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYm9yZGVyOiAzcHggc29saWQgIzA1Njc2YTtcbiAgICBiYWNrZ3JvdW5kOiAjMDU2NzZhO1xufVxuLmNlcnQtdGVzdGltb25pYWxfX3RleHQge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5jZXJ0LXRlc3RpbW9uaWFsX19mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cbi5jZXJ0LXRlc3RpbW9uaWFsX19hdXRob3Ige1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmNlcnQtdGVzdGltb25pYWxfX3JvbGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5jZXJ0LXJlYWR5X19ncmlkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICB9XG4gICAgLmNlcnQtcmVhZHlfX2NhcmQ6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gICAgLmNlcnQtcmVhZHlfX2NhcmQ6bnRoLWNoaWxkKC1uKzIpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZTU7XG4gICAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmNlcnQtcmVhZHlfX2dyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gICAgLmNlcnQtcmVhZHlfX2NhcmQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2U1O1xuICAgIH1cbiAgICAuY2VydC1yZWFkeV9fY2FyZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG59XG4uY2VydC1lbnRyeV9fYmFkZ2UtY29sIHtcbiAgICBmbGV4OiAwIDAgNTAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDQ4cHg7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNTZweCkgMCwgMTAwJSA1NnB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uY2VydC1lbnRyeS0tcmV2ZXJzZSAuY2VydC1lbnRyeV9fYmFkZ2UtY29sIHtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oNTZweCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlLCAwIDU2cHgpO1xufVxuLmNlcnQtZW50cnlfX2JhZGdlLWxpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cyBlYXNlLCBvcGFjaXR5IC4xNXMgZWFzZTtcbn1cbi5jZXJ0LWVudHJ5X19iYWRnZS1saW5rOmhvdmVyLFxuLmNlcnQtZW50cnlfX2JhZGdlLWxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIG9wYWNpdHk6IDAuOTI7XG59XG4uY2VydC1lbnRyeV9fYmFkZ2UtbGluayAuY2VydC1lbnRyeV9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNlcnQtZW50cnlfX2JhZGdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIGhlaWdodDogYXV0bztcbn1cbi5jZXJ0LWVudHJ5X19ib2R5IHtcbiAgICBmbGV4OiAxO1xuICAgIG1heC13aWR0aDogNjIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7XG59XG4uY2VydC1lbnRyeS0tcmV2ZXJzZSAuY2VydC1lbnRyeV9fYm9keSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDU2cHg7XG59XG4uY2VydC1lbnRyeV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmNlcnQtZW50cnlfX2Rlc2NyaXB0aW9uIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5jZXJ0LWVudHJ5X19sZXZlbHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uY2VydC1lbnRyeV9fbGV2ZWxzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jZXJ0LWVudHJ5X19sZXZlbHMgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+KAuic7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAtMnB4O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5jZXJ0LWVudHJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICB9XG4gICAgLmNlcnQtZW50cnlfX2lubmVyLFxuICAgIC5jZXJ0LWVudHJ5LS1yZXZlcnNlIC5jZXJ0LWVudHJ5X19pbm5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjRweDtcbiAgICB9XG4gICAgLmNlcnQtZW50cnlfX2JhZGdlLWNvbCB7XG4gICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgfVxuICAgIC5jZXJ0LWVudHJ5X19ib2R5IHtcbiAgICAgICAgZmxleDogaW5pdGlhbDtcbiAgICB9XG59XG5cbi8qIENlcnQgQmFkZ2VzICovXG4uY2VydC1iYWRnZXMge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4uY2VydC1iYWRnZXNfX2ltZyB7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBTSEFSRUQgUEFHRSBIRVJPIChhbGwgaW5uZXIgcGFnZXMpXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5wYWdlLWhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA1MHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnBhZ2UtaGVyby0tbGlnaHQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMGY3ZjcgMCUsICNlOGYwZmYgNTAlLCAjZjVmNWZmIDEwMCUpO1xufVxuLnBhZ2UtaGVyby0tdGVhbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5wYWdlLWhlcm8tLWJsdWUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG4ucGFnZS1oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDNyZW0pO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucGFnZS1oZXJvX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgRVhQRVJUSVNFIFBBR0VcbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuLmV4cGVydGlzZS1mZWF0dXJlcyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y4ZjVmZiAwJSwgI2ZmZiAxMDAlKTtcbn1cbi5leHBlcnRpc2UtY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuLmV4cGVydGlzZS1jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuMDgpO1xufVxuLmV4cGVydGlzZS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZThmMGZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmV4cGVydGlzZS1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLmV4cGVydGlzZS1zdGF0cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5leHBlcnRpc2Utc3RhdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDI0cHg7XG59XG4uZXhwZXJ0aXNlLXN0YXRfX251bWJlciB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuLmV4cGVydGlzZS1zdGF0X19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgb3BhY2l0eTogMC44NTtcbn1cbi5leHBlcnRpc2UtdGFibGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uZXhwZXJ0aXNlLXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbi5leHBlcnRpc2UtdGFibGUgdGgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLmV4cGVydGlzZS10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xufVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIERFTElWRVIgVE9TQSBQQUdFXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5kZWxpdmVyLWJlbmVmaXRzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xufVxuLmRlbGl2ZXItY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cbi5kZWxpdmVyLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4wOCk7XG59XG4uZGVsaXZlci1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmM2UwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uZGVsaXZlci1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLmRlbGl2ZXItc3RlcHMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uZGVsaXZlci1zdGVwX19udW1iZXIge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0byAxNnB4O1xufVxuLmRlbGl2ZXItdGllcnMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmNWY1ZmYgMCUsICNmZmYgMTAwJSk7XG59XG4uZGVsaXZlci10aWVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0MHB4IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cbi5kZWxpdmVyLXRpZXI6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cbi5kZWxpdmVyLXRpZXItLWdvbGQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuLmRlbGl2ZXItdGllci0tcGxhdGludW0ge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmNWZmLCAjZmZmKTtcbn1cbi5kZWxpdmVyLXRpZXJfX2JhZGdlIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi5kZWxpdmVyLXRpZXJfX2JhZGdlLS1zaWx2ZXIgeyBiYWNrZ3JvdW5kOiAjZTBlMGUwOyBjb2xvcjogIzY2NjsgfVxuLmRlbGl2ZXItdGllcl9fYmFkZ2UtLWdvbGQgeyBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7IGNvbG9yOiAjMzMzOyB9XG4uZGVsaXZlci10aWVyX19iYWRnZS0tcGxhdGludW0geyBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpOyBjb2xvcjogI2ZmZjsgfVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIFRBS0UgRVhBTSBQQUdFXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5leGFtLXBhdGhzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xufVxuLmV4YW0tcGF0aC1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0OHB4IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm9yZGVyLWNvbG9yIDAuMnM7XG59XG4uZXhhbS1wYXRoLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uZXhhbS1wYXRoLWNhcmRfX2ljb24ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBtYXJnaW46IDAgYXV0byAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICNlOGYwZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uZXhhbS1leHBlY3Qge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uZXhhbS1leHBlY3RfX2l0ZW0ge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5leGFtLWV4cGVjdF9faWNvbiB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgUkVNT1RFIEVYQU0gUEFHRVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4ucmVtb3RlLXJlcXVpcmVtZW50cyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YwZjdmNyAwJSwgI2ZmZiAxMDAlKTtcbn1cbi5yZW1vdGUtcmVxLWNhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnJlbW90ZS1yZXEtY2FyZF9faWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2U4ZjBmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5yZW1vdGUtcHJvY2VzcyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5yZW1vdGUtc3RlcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yZW1vdGUtc3RlcF9fbnVtYmVyIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0byAxNnB4O1xufVxuLnJlbW90ZS1mYXEge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGY1ZmYgMCUsICNmZmYgMTAwJSk7XG59XG4ucmVtb3RlLWZhcSAuYWNjb3JkaW9uLWJ1dHRvbjpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZmY7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgRklORCBDRU5URVIgUEFHRVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4uY2VudGVyLXNlYXJjaCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YwZjdmNyAwJSwgI2ZmZiAxMDAlKTtcbn1cbi5jZW50ZXItc2VhcmNoX19mb3JtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwwLDAsMC4wNik7XG59XG4uY2VudGVyLW1hcCB7XG4gICAgYmFja2dyb3VuZDogI2U4ZjRmODtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG59XG4uY2VudGVyLWNhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4uY2VudGVyLWNhcmRfX25hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgQ0hFQ0sgU0NPUkUgUEFHRVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4uc2NvcmUtbG9va3VwIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xufVxuLnNjb3JlLWxvb2t1cF9fZm9ybSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsMCwwLDAuMDYpO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4uc2NvcmUtc2NhbGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uc2NvcmUtbGV2ZWwge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5zY29yZS1sZXZlbC0tYmVnaW5uZXIgeyBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG4uc2NvcmUtbGV2ZWwtLWJhc2ljIHsgYmFja2dyb3VuZDogI2UzZjJmZDsgfVxuLnNjb3JlLWxldmVsLS1wcm9kdWN0aXZlIHsgYmFja2dyb3VuZDogI2U4ZjVlOTsgfVxuLnNjb3JlLWxldmVsLS1hZHZhbmNlZCB7IGJhY2tncm91bmQ6ICNmZmYzZTA7IH1cbi5zY29yZS1sZXZlbC0tZXhwZXJ0IHsgYmFja2dyb3VuZDogI2ZjZTRlYzsgfVxuLnNjb3JlLWxldmVsX19yYW5nZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbn1cbi5zY29yZS1sZXZlbF9fbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBSRVNQT05TSVZFIE9WRVJSSURFU1xuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuaGVybyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgfVxuICAgIC5oZXJvX19iZzo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTUpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpIDYwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDEwMCUpO1xuICAgIH1cbiAgICAuY2VydC1oZXJvIHtcbiAgICAgICAgbWluLWhlaWdodDogNjB2aDtcbiAgICB9XG4gICAgLmNlcnQtaGVyb19fYmc6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjk1KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KSA2MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC41KSAxMDAlKTtcbiAgICB9XG4gICAgLmNlcnQtdW5pcXVlX19jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMzJweDtcbiAgICAgICAgY2xpcC1wYXRoOiBub25lO1xuICAgIH1cbiAgICAuY2VydC1vZmZlcmluZ3NfX3NoYXBlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLndoeS1jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMjRweCAxNnB4O1xuICAgIH1cbiAgICAudGVzdGltb25pYWwtY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gICAgLmNlcnQtc3RlcHNfX3RpdGxlLXBpbGwge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMzJweDtcbiAgICB9XG4gICAgLmNlcnQtY2F0YWxvZ19fdGFicyB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG4gICAgLmNlcnQtY2F0YWxvZ19fdGFiIHtcbiAgICAgICAgZmxleDogMSAxIDUwJTtcbiAgICB9XG5cbiAgICAvKiBOYXZiYXIgbW9iaWxlOiByZWxlYXNlIG1pbi1oZWlnaHQgc28gY29sbGFwc2VkIG1lbnUgY2FuIGV4cGFuZCAqL1xuICAgIC5uYXZiYXIgLmNvbnRhaW5lci14bCxcbiAgICAubmF2YmFyICNtZW51YmFyTmF2LFxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbiAgICAubmF2YmFyICNtZW51YmFyTmF2IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cbiAgICAubmF2YmFyIC5uYXZiYXItbmF2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYgLm5hdi1saW5rLFxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYgLm1lbnViYXJfX2xpbmsge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDA7XG4gICAgfVxuICAgIC5tZW51YmFyX19pdGVtOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAubmF2YmFyIC5tZW51YmFyX19pdGVtLS1hY2NvdW50ID4gLmRyb3Bkb3duLW1lbnUtZW5kLFxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWxhbmcgPiAuZHJvcGRvd24tbWVudS1lbmQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgfVxuXG4gICAgLyogVGVzdGltb25pYWxzOiBzdGFjayBjb2x1bW5zLCBkcm9wIGJhY2tncm91bmQgc3BsaXQgJiBkZWNvcmF0aXZlIHZlY3RvcnMgKi9cbiAgICAudGVzdGltb25pYWxzIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzA1Njc2QTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE4MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC50ZXN0aW1vbmlhbHM6OmJlZm9yZSxcbiAgICAudGVzdGltb25pYWxzOjphZnRlcixcbiAgICAudGVzdGltb25pYWxzID4gLmNvbnRhaW5lci14bDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAudGVzdGltb25pYWxzX19sZWZ0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIH1cbiAgICAudGVzdGltb25pYWxzX19zbGlkZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAudGVzdGltb25pYWwtY2FyZC5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogR2V0IFN0YXJ0ZWQ6IHJlZHVjZSBvdmVybGFwICovXG4gICAgLmdldC1zdGFydGVkLFxuICAgIC5oZS1jdGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xMjBweDtcbiAgICB9XG4gICAgLnN0LWN0YSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xMjBweDtcbiAgICB9XG4gICAgLmdldC1zdGFydGVkX19jYXJkLFxuICAgIC5oZS1jdGFfX2NhcmQsXG4gICAgLnN0LWN0YV9fY2FyZCB7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDMwcHgpIDAsIDEwMCUgMzBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIH1cbiAgICAuZ2V0LXN0YXJ0ZWRfX2ltYWdlLXdyYXBwZXIsXG4gICAgLnN0LWN0YV9faW1hZ2Utd3JhcHBlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgIH1cblxuICAgIC8qIE5ld3NsZXR0ZXI6IHJlZHVjZSB0b3AgcGFkZGluZyAqL1xuICAgIC5uZXdzbGV0dGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLyogRm9vdGVyOiBzaHJpbmsgZGVjb3JhdGl2ZSB2ZWN0b3IgKi9cbiAgICAuZm9vdGVyOjpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMTgwcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG59XG5cbi8qIE1vYmlsZSAoPDc2OHB4KSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLnRlc3RpbW9uaWFscyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNDBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAudGVzdGltb25pYWxzX19sZWZ0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgICAudGVzdGltb25pYWwtY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMjBweDtcbiAgICB9XG4gICAgLnRlc3RpbW9uaWFsLWNhcmRfX3F1b3RlIHAge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgLmdldC1zdGFydGVkLFxuICAgIC5oZS1jdGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAtODBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTgwcHg7XG4gICAgfVxuICAgIC5zdC1jdGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtODBweDtcbiAgICB9XG4gICAgLmdldC1zdGFydGVkX19pbWFnZS13cmFwcGVyLFxuICAgIC5zdC1jdGFfX2ltYWdlLXdyYXBwZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAyMjBweDtcbiAgICB9XG5cbiAgICAubmV3c2xldHRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmZvb3Rlcjo6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgfVxufVxuXG4vKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFN1YmplY3QgRGV0YWlscyBwYWdlXG4gICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5zdWJqZWN0LWRldGFpbHMgeyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbi8qIFJlZHVjZSB0aGUgbmV3c2xldHRlciB0b3AgcGFkZGluZyBvbiB0aGUgc3ViamVjdCBkZXRhaWxzIHBhZ2Ugb25seS4gKi9cbi5zdWJqZWN0LWRldGFpbHMgfiAubmV3c2xldHRlciB7XG4gICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fc2lkZWJhciB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDg4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjBweDtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fc2NoZWR1bGUtY3RhIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDYpO1xuICAgIHBhZGRpbmc6IDIycHggMjRweDtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fY2FyZC10aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzZTRlZjtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fYnVsbGV0LWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uc3ViamVjdC1kZXRhaWxzX19idWxsZXQtbGlzdCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDZweCAwIDZweCAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bGxldC1saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oC6XCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1cHg7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fbGFuZy1waWxscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19sYW5nLXBpbGwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWRhZTY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5zdWJqZWN0LWRldGFpbHNfX3Jlc291cmNlLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uc3ViamVjdC1kZXRhaWxzX19yZXNvdXJjZS1saXN0IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDIwcHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLnN1YmplY3QtZGV0YWlsc19fcmVzb3VyY2UtbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAulwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogNXB4O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Jlc291cmNlLWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19yZXNvdXJjZS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2Q2M2QwOTtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fbWFpbiB7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uc3ViamVjdC1kZXRhaWxzID4gLmNvbnRhaW5lci14bC5wdC01IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuLnN1YmplY3QtZGV0YWlscyA+IC5jb250YWluZXIteGwucGItNSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogY2xhbXAoMTZweCwgNHZ3LCA2NHB4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjbGFtcCgxNnB4LCA0dncsIDY0cHgpO1xufVxuLnN1YmplY3QtZGV0YWlsc19faGVybyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1saWdodC1ibHVlKSB1cmwoJy4uL2ltYWdlcy9zdGF0ZXMvQmFubmVyLmpwZycpIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgcGFkZGluZzogNDhweCAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogQ29udGFpbiB0aGUgOjpiZWZvcmUgYmxlbmQgc28gaXQgb25seSByZWNvbG9ycyB0aGUgYmFubmVyIGFydHdvcmsuICovXG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xufVxuLnN1YmplY3QtZGV0YWlsc19faGVyby1kaXNjbGFpbWVyIHtcbiAgICBtYXJnaW46IDMycHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbWF4LXdpZHRoOiA4NjBweDtcbn1cbi8qIFJlY29sb3JzIHRoZSBzaGFyZWQgYmFubmVyIHdpdGggdGhlIHN1YmplY3QncyBnYW1tZSBjb2xvciAoc2V0IGlubGluZSBhc1xuICAgLS1nYW1tZS1jb2xvciwgc2FtZSBwYWxldHRlIGFzIHRoZSBjZXJ0aWZpY2F0aW9ucy1wYWdlIHRhYnMpLiAqL1xuLnN1YmplY3QtZGV0YWlsc19faGVybzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ2FtbWUtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBtaXgtYmxlbmQtbW9kZTogY29sb3I7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLXRpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7XG4gICAgY29sb3I6ICMxYTFhMWE7XG4gICAgbWFyZ2luOiAwO1xufVxuLyogTG9uZyBwcm9kdWN0IG5hbWVzIG11c3Qgc3RpbGwgZml0IHRoZSBwYWludGVkIGJhbm5lciBib3guICovXG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLXRpdGxlLS1sb25nIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgMi44dncsIDIuMnJlbSk7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2hlcm8tdGlsZSB7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLWljb24ge1xuICAgIHdpZHRoOiAxNjBweDtcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2hlcm8taWNvbiBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8qIERlc2t0b3A6IGxvY2sgdGhlIGhlcm8gdG8gdGhlIGJhbm5lcidzIGFzcGVjdCByYXRpbyBzbyBgY292ZXJgIGZpbGxzIGl0XG4gICBleGFjdGx5IChubyBkaXN0b3J0aW9uLCBubyBsZXR0ZXJib3gpLiBUaGUgc3F1YXJlIGluIHRoZSBiYW5uZXIgdGhlbiBzaXRzXG4gICBhdCBhIGZpeGVkIGZyYWN0aW9uLCBzbyB0aGUgbG9nbyBjYW4gYmUgY2VudGVyZWQgb24gaXQgYXQgYW55IHdpZHRoLiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnN1YmplY3QtZGV0YWlsc19faGVybyB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTkyMCAvIDU5MjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19faGVyby10aXRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMy41JTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgbWF4LXdpZHRoOiA0NiU7XG4gICAgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2hlcm8tdGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNzglO1xuICAgICAgICB0b3A6IDUyJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi5zdWJqZWN0LWRldGFpbHNfX3NlY3Rpb24geyBtYXJnaW4tYm90dG9tOiA1NnB4OyB9XG5cbi5zdWJqZWN0LWRldGFpbHNfX3NlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42cmVtLCAyLjZ2dywgMi4ycmVtKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIG1hcmdpbjogMCAwIDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fc3ViLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDI4cHggMCAxMnB4O1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19pbmxpbmUtbGluayB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2lubGluZS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2Q2M2QwOTtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fc2FtcGxlLXdyYXAsXG4uc3ViamVjdC1kZXRhaWxzX19jaGFydC13cmFwIHtcbiAgICBtYXJnaW46IDI0cHggMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDYpO1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19zYW1wbGUtaW1nLFxuLnN1YmplY3QtZGV0YWlsc19fY2hhcnQgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XG5cbi5zdWJqZWN0LWRldGFpbHNfX2RvbWFpbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19kb21haW4tY2FyZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDk2cHggMWZyO1xuICAgIGdhcDogMThweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDYpO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2RvbWFpbi1pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLnN1YmplY3QtZGV0YWlsc19fZG9tYWluLWljb24gaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4uc3ViamVjdC1kZXRhaWxzX19kb21haW4tdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDhweDtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fdGFibGUtd3JhcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYzljYmUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19zY29yZS10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtaW4td2lkdGg6IDUyMHB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgdGgsXG4uc3ViamVjdC1kZXRhaWxzX19zY29yZS10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMThweCAyNHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjOWNiZTA7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2M5Y2JlMDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Njb3JlLXRhYmxlIHRoOmxhc3QtY2hpbGQsXG4uc3ViamVjdC1kZXRhaWxzX19zY29yZS10YWJsZSB0ZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3ViamVjdC1kZXRhaWxzX19zY29yZS10YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgdGhlYWQgdGgge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Njb3JlLXRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmN2ZkO1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgLnN1YmplY3QtZGV0YWlsc19fY3JlZGx5LWxpbmssXG5hLnN1YmplY3QtZGV0YWlsc19fY3JlZGx5LWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSkgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgLnN1YmplY3QtZGV0YWlsc19fY3JlZGx5LWxpbms6aG92ZXIsXG5hLnN1YmplY3QtZGV0YWlsc19fY3JlZGx5LWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZDYzZDA5ICFpbXBvcnRhbnQ7XG59XG5cbi5zdWJqZWN0LWRldGFpbHNfX3ByZXAtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMThweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3MnB4IDFmcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgzMCwgMzAsIDYwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiAyMnB4IDI2cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWljb24ge1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3ByZXAtaWNvbiB2aWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWJvZHkgeyBtaW4td2lkdGg6IDA7IH1cbi5zdWJqZWN0LWRldGFpbHNfX3ByZXAtdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWRlc2Mge1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3ByZXAtZGVzYyBwIHsgbWFyZ2luLWJvdHRvbTogMC42ZW07IH1cbi5zdWJqZWN0LWRldGFpbHNfX3ByZXAtZGVzYyBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zdWJqZWN0LWRldGFpbHNfX2Zsb3cgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi5zdWJqZWN0LWRldGFpbHNfX2Zsb3cgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cblxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWNhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHBhZGRpbmc6IDMycHggMzZweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNDBweCkgMCwgMTAwJSA0MHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4vKiBJbm5lciBmaWxsIGluc2V0IGJ5IHRoZSBib3JkZXIgd2lkdGgg4oCUIHRoZSBibHVlIGNhcmQgYmFja2dyb3VuZCBzaG93aW5nXG4gICB0aHJvdWdoIHRoZSAycHggZ2FwIGlzIHRoZSBib3JkZXIsIGFuZCBpdCBmb2xsb3dzIHRoZSBkaWFnb25hbCBjdXQgdG9vLiAqL1xuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWNhcmQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNmZmO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDM4cHgpIDAsIDEwMCUgMzhweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIHotaW5kZXg6IDA7XG59XG4uc3ViamVjdC1kZXRhaWxzX19idW5kbGUtY2FyZCA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWJhZGdlIHtcbiAgICBtYXgtd2lkdGg6IDE2MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19idW5kbGUtYmFkZ2UgaW1nIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGNvbG9yOiAjMWExYTFhO1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWRlc2MgeyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS10aWVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDRkNmYwO1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLXRpZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3MnB4IDFmcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uc3ViamVjdC1kZXRhaWxzX19idW5kbGUtdGllci1pY29uIHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLXRpZXItaWNvbiBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6IDEwMCU7IH1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS10aWVyLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5zdWJqZWN0LWRldGFpbHNfX3NpZGViYXIge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgIH1cbiAgICAuc3ViamVjdC1kZXRhaWxzX19oZXJvIHsgcGFkZGluZzogMzJweCAyNHB4OyB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19faGVyby10aWxlIHsgbWFyZ2luLXRvcDogMjRweDsgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICAuc3ViamVjdC1kZXRhaWxzX19oZXJvIHsgcGFkZGluZzogMjRweCAxOHB4OyB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19fY2FyZCB7IHBhZGRpbmc6IDE4cHggMjBweDsgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2RvbWFpbi1jYXJkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2RvbWFpbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWNhcmQgeyBwYWRkaW5nOiAyMnB4IDIwcHg7IH1cbiAgICAuc3ViamVjdC1kZXRhaWxzX19wcmVwLWl0ZW0ge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDU2cHggMWZyO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19fcHJlcC1pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICB9XG59XG5cblxuLyog4pSA4pSAIEhpZ2hlciBFZHVjYXRpb24gcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uaGUtYmFubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1OTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uaGUtYmFubmVyX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbn1cbi5oZS1iYW5uZXJfX2JnLS1rMTIge1xuICAgIG9iamVjdC1wb3NpdGlvbjogcmlnaHQgMjclO1xufVxuXG4uaGUtYmFubmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjkyKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUzKSA0MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNjUlKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG59XG5cbi5oZS1iYW5uZXJfX2lubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB6LWluZGV4OiAyO1xufVxuLmhlLWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNC41dncsIDMuNXJlbSk7XG4gICAgbWF4LXdpZHRoOiA1NDBweDtcbn1cblxuLyogUzEgRHJpdmUgU3R1ZGVudCBTdWNjZXNzICovXG4uaGUtczEge1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbn1cbi5oZS1zMV9fbWVkaWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5oZS1zMV9fbWVkaWEgPiBpbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgei1pbmRleDogMTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4uaGUtczFfX21lZGlhOjpiZWZvcmUsXG4uaGUtczFfX21lZGlhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICNjNGM0YzQgMnB4LCB0cmFuc3BhcmVudCAyLjVweCk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDE0cHg7XG4gICAgei1pbmRleDogMjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5oZS1zMV9fbWVkaWE6OmJlZm9yZSB7XG4gICAgdG9wOiAtMjhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogMTRweDtcbn1cbi5oZS1zMV9fbWVkaWE6OmFmdGVyIHtcbiAgICBib3R0b206IC0zMnB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogMjhweDtcbn1cbi5oZS1zMV9fcGhvdG8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgei1pbmRleDogMTtcbn1cbi5oZS1zMV9fdmVjdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOTFweDtcbiAgICBsZWZ0OiAtMjM3cHg7XG4gICAgd2lkdGg6IDEyNCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaGUtczFfX3RleHQge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi8qIFMxYiBTb2x2aW5nIEtleSBDaGFsbGVuZ2VzIGluIEstMTIgRWR1Y2F0aW9uICovXG4uaGUtczFiIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogODBweCAwIDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RkFGQztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy93aG93ZXNlcnZlL2sxMi9zaGFwZS15ZWxsb3cuanBnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uaGUtczFiID4gLmNvbnRhaW5lci14bCB7IHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbi5oZS1zMWIgLmhlLWZlYXR1cmVzX19pY29uIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5oZS1zMWJfX2ludHJvIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogODgwcHg7XG59XG4uaGUtczFiX19tZWRpYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmhlLXMxYl9fYm95IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA1MjBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIFMyIFdoeSBIRSBJbnN0aXR1dGlvbnMgQ2hvb3NlIFRvc2EgKi9cbi5oZS1zMiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0U2RjNGNCAwJSwgI0YyRjhGOCAxMDAlKTtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG59XG4uaGUtczJfX21lZGlhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHggMDtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSA1MHB4KSAwLCAxMDAlIDUwcHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmhlLXMyX192ZWN0b3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7IC8qIHdoaXRlIHRpbnQgb3ZlciB0ZWFsIGJnICovXG4gICAgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7XG59XG4uaGUtczJfX3BvcnRyYWl0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi8qIEhlIEZlYXR1cmVzIChpbWFnZSArIGNoZWNrbGlzdCkg4oCUIHVzZWQgaW4gUzIgKi9cbi5oZS1mZWF0dXJlc19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cbi5oZS1mZWF0dXJlc19faXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDIwcHg7XG4gICAgcGFkZGluZzogMThweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDY5LCA2OSwgMjE5LCAwLjE4KTtcbn1cbi5oZS1mZWF0dXJlc19fbGlzdCAuaGUtZmVhdHVyZXNfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG4uaGUtZmVhdHVyZXNfX2ljb24td3JhcCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuLmhlLWZlYXR1cmVzX19pY29uIHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmhlLWZlYXR1cmVzX19iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGZpbHRlcjogYmx1cig3cHgpO1xufVxuLmhlLWZlYXR1cmVzX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLmhlLWZlYXR1cmVzX190ZXh0IHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG5cbi8qIFMzIEtleSBUb3NhIERpZmZlcmVudGlhdG9ycyAqL1xuLmhlLXMzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRTZGM0Y4IDAlLCAjRjJGOEZCIDEwMCUpO1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5oZS1zMzo6YmVmb3JlLFxuLmhlLXMzOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1MiwgMjIxLCAyMjksIDAuMzUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmhlLXMzOjpiZWZvcmUge1xuICAgIHdpZHRoOiAyODBweDtcbiAgICBoZWlnaHQ6IDI4MHB4O1xuICAgIGxlZnQ6IC0xMDBweDtcbiAgICB0b3A6IDMwJTtcbn1cbi5oZS1zMzo6YWZ0ZXIge1xuICAgIHdpZHRoOiAzMjBweDtcbiAgICBoZWlnaHQ6IDMyMHB4O1xuICAgIHJpZ2h0OiAtMTIwcHg7XG4gICAgYm90dG9tOiAxMCU7XG59XG4uaGUtczNfX2NhcmRzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5oZS1zM19fY2FyZHMge1xuICAgICAgICAtLWJzLWd1dHRlci14OiAwO1xuICAgICAgICAtLWJzLWd1dHRlci15OiAwO1xuICAgIH1cbn1cbi5oZS1zM19fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogNDBweCAyOHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwwLDAsMC4wNik7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuaGUtczNfX2NhcmQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBwYWRkaW5nOiA0OHB4IDQwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoNTYsIDcwLCAyMTYsIDAuMik7XG4gICAgfVxuICAgIC5oZS1zM19fY2FyZHMgPiAqOmxhc3QtY2hpbGQgLmhlLXMzX19jYXJkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbn1cbi5oZS1zM19faWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbi5oZS1zM19fYmFyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBmaWx0ZXI6IGJsdXIoN3B4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xufVxuLmhlLXMzX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4uaGUtczNfX3RleHQge1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi8qIFM0IFR1cm5rZXkgQ3JlZGVudGlhbGluZyBTb2x1dGlvbiAqL1xuLmhlLXM0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5oZS1zNF9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43NXJlbSwgMy4ydncsIDIuNXJlbSk7XG59XG4uaGUtczRfX3RleHQge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOTUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uaGUtczRfX2Jyb3dzZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IDAgMTZweCA2MHB4IHJnYmEoMCwwLDAsMC4yKTtcbn1cbi5oZS1zNF9fYnJvd3Nlci1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmNTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlNTtcbn1cbi5oZS1zNF9fYnJvd3Nlci1iYXIgc3BhbiB7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xufVxuLmhlLXM0X19icm93c2VyLWJhciBzcGFuOm50aC1jaGlsZCgxKSB7IGJhY2tncm91bmQ6ICNmZjVmNTY7IH1cbi5oZS1zNF9fYnJvd3Nlci1iYXIgc3BhbjpudGgtY2hpbGQoMikgeyBiYWNrZ3JvdW5kOiAjZmZiZDJlOyB9XG4uaGUtczRfX2Jyb3dzZXItYmFyIHNwYW46bnRoLWNoaWxkKDMpIHsgYmFja2dyb3VuZDogIzI3YzkzZjsgfVxuLmhlLXM0X191cmwge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGNvbG9yOiAjNjY2O1xufVxuLmhlLXM0X192aWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzNjBweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFM1IFdoeSBTdHVkZW50cy9JbnN0cnVjdG9ycyBMb3ZlIFRvc2EgKi9cbi5oZS1zNSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZiAwJSwgI0YyRjhGQiAxMDAlKTtcbiAgICBwYWRkaW5nOiA2MHB4IDA7XG59XG4uaGUtczVfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDUwcHggcmdiYSgwLDAsMCwwLjEwKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC1oZWlnaHQ6IDc3MHB4O1xufVxuLmhlLXM1X19tZWRpYSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDgwcHg7XG59XG4uaGUtczUgLmZsZXgtcm93LXJldmVyc2UgLmhlLXM1X19tZWRpYSB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogODBweDtcbn1cbi5oZS1zNV9fbWVkaWEgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uaGUtczVfX2JvZHkge1xuICAgIHBhZGRpbmc6IDQwcHggNDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uaGUtczVfX2JvZHkgLmN0YS1idG4ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLyog4pSA4pSAIEJlY29tZSBhIFRvc2EtQXBwcm92ZWQgVGVzdGluZyBDZW50ZXIgKHJldXNhYmxlIENUQSBiYW5uZXIpIOKUgOKUgCAqL1xuLmNlcnQtdGVzdGluZy1jZW50ZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY2VydC10ZXN0aW5nLWNlbnRlciA+IC5jb250YWluZXIteGwge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5jZXJ0LXRlc3RpbmctY2VudGVyX19yb3cge1xuICAgIG1pbi1oZWlnaHQ6IDYyMHB4O1xufVxuLmNlcnQtdGVzdGluZy1jZW50ZXJfX3JvdyA+IFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuLmNlcnQtdGVzdGluZy1jZW50ZXJfX21lZGlhIHtcbiAgICBmbGV4OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDYyMHB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3dob3dlc2VydmUvYWR1bHQtd29ya2ZvcmNlL2ltYWdlLXdpdGgtYmcuanBnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuLmNlcnQtdGVzdGluZy1jZW50ZXJfX2JvZHkge1xuICAgIHBhZGRpbmc6IDYwcHggOTZweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLmNlcnQtdGVzdGluZy1jZW50ZXJfX2JvZHkgLmN0YS1idG4ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4uY2VydC10ZXN0aW5nLWNlbnRlcl9fdGV4dCB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuY2VydC10ZXN0aW5nLWNlbnRlcl9fcm93LFxuICAgIC5jZXJ0LXRlc3RpbmctY2VudGVyX19tZWRpYSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcyMHB4O1xuICAgIH1cbiAgICAuY2VydC10ZXN0aW5nLWNlbnRlcl9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDEwMHB4IDMyMHB4IDEwMHB4IDk2cHg7XG4gICAgfVxufVxuLmhlLXM1X19zdWJ0aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xufVxuLmhlLXM1X190ZXh0IHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBGQVEgb24gZGFyayBibHVlICovXG4uZmFxIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4vKiBWYXJpYW50IGZvciBwYWdlcyB3aGVyZSB0aGUgRkFRIHNpdHMgZGlyZWN0bHkgYWJvdmUgdGhlIC5oZS1jdGEsIHdob3NlXG4gICBuZWdhdGl2ZSB0b3AgbWFyZ2luIHdvdWxkIG90aGVyd2lzZSBjb3ZlciB0aGUgbGFzdCBpdGVtcy4gKi9cbi5mYXEtLXBhZC1jdGEge1xuICAgIHBhZGRpbmctYm90dG9tOiAzNTJweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5mYXEtLXBhZC1jdGEgeyBwYWRkaW5nLWJvdHRvbTogMTYwcHg7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5mYXEtLXBhZC1jdGEgeyBwYWRkaW5nLWJvdHRvbTogMTEycHg7IH1cbn1cbi5mYXFfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiA4MHB4IDQ4cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZmFxX19hY2NvcmRpb24ge1xuICAgIG1heC13aWR0aDogODgwcHg7XG4gICAgbWFyZ2luOiAyNHB4IGF1dG8gMDtcbn1cbi5mYXFfX2l0ZW0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvKiBPdmVycmlkZSBCb290c3RyYXAncyBhY2NvcmRpb24gcmFkaXVzIHZhcmlhYmxlcyDigJQgdGhlIGRlZmF1bHRcbiAgICAgICA6Zmlyc3Qtb2YtdHlwZSAvIDpsYXN0LW9mLXR5cGUgcnVsZXMgcm91bmQgdGhlIGZpcnN0IGFuZCBsYXN0XG4gICAgICAgYnV0dG9uIGJ5IHJlYWRpbmcgdGhlc2UgY3VzdG9tIHByb3BlcnRpZXMuICovXG4gICAgLS1icy1hY2NvcmRpb24tYm9yZGVyLXJhZGl1czogMDtcbiAgICAtLWJzLWFjY29yZGlvbi1pbm5lci1ib3JkZXItcmFkaXVzOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4vKiBCb290c3RyYXAgcmVtb3ZlcyB0aGUgdG9wIGJvcmRlciBmcm9tIG5vbi1maXJzdCBpdGVtcyB0byBhdm9pZCBkb3VibGVcbiAgIGJvcmRlcnMgd2hlbiBpdGVtcyBzdGFjayDigJQgcmVzdG9yZSBpdCBiZWNhdXNlIHdlIHdhbnQgZWFjaCBpdGVtXG4gICB2aXNpYmx5IGZyYW1lZC4gKi9cbi5mYXFfX2l0ZW06bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNmZmY7XG59XG4uZmFxX19idXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgcGFkZGluZzogMThweCAyNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5mYXFfX2J1dHRvbjpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZmFxX19idXR0b246Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5mYXFfX2J1dHRvbjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgY29udGVudDogXCIrXCI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cbi5mYXFfX2J1dHRvbjpub3QoLmNvbGxhcHNlZCk6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIuKIklwiOyAvKiBVKzIyMTIgbWludXMgc2lnbiDigJQgcmVwbGFjZXMgdGhlICsgd2hlbiB0aGUgcGFuZWwgaXMgb3BlbiAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8qIGtpbGwgQm9vdHN0cmFwJ3MgZGVmYXVsdCBjaGV2cm9uIGljb24gKi9cbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG4uZmFxX19ib2R5IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjg1KTtcbiAgICBwYWRkaW5nOiAwIDI0cHggMThweDtcbn1cbi5mYXFfX2JvZHkgcCB7IG1hcmdpbi1ib3R0b206IDEycHg7IH1cbi5mYXFfX2JvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLmZhcV9fYm9keSB1bCB7IG1hcmdpbjogNHB4IDAgMTJweDsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4uZmFxX19ib2R5IGxpIHsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4uZmFxX19ib2R5IHN0cm9uZyB7IGNvbG9yOiAjZmZmOyB9XG4uZmFxX19ib2R5IGEgeyBjb2xvcjogI2ZmZjsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi5mYXFfX2xpbmtzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweCAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgcGFkZGluZy10b3A6IDE0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG4vKiBXaGl0ZSBvbiB0aGUgZGFyay1ibHVlIEZBUSBjYXJkIChzY29wZWQgdG8gYmVhdCB0aGUgZ2VuZXJpYyBsaW5rIHJ1bGUpLiAqL1xuLmZhcV9fYm9keSAuZmFxX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmZhcV9fYm9keSAuZmFxX19saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5mYXFfX2JvZHkgLmZhcV9fbGluayAuYmkgeyBmb250LXNpemU6IDAuNzhyZW07IH1cblxuLyogQ1RBIFJlYWR5IHRvIEVtcG93ZXIgKi9cbi5oZS1jdGEge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC0zMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzIwcHg7XG4gICAgei1pbmRleDogMjtcbn1cbi5oZS1jdGFfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDYwcHgpIDAsIDEwMCUgNjBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLmhlLWN0YV9faW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5oZS1jdGFfX2JvZHkge1xuICAgIHBhZGRpbmc6IDI0cHggNDhweCAyNHB4IDA7XG59XG4uaGUtY3RhX190ZXh0IHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLyog4pSA4pSAIDQwNCAvIEVycm9yIHBhZ2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uZXJyb3ItcGFnZSB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjhmZTtcbiAgICBwYWRkaW5nOiA5NnB4IDAgMTIwcHg7XG4gICAgbWluLWhlaWdodDogNzB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZXJyb3ItcGFnZV9fY29kZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCg2cmVtLCAxNnZ3LCAxMnJlbSk7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsaW5lLWhlaWdodDogMC45O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS10b3NhLW9yYW5nZSkgMCUsICNmZmIzOGEgMTAwJSk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5lcnJvci1wYWdlX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjc1cmVtLCAzLjV2dywgMi41cmVtKTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xufVxuLmVycm9yLXBhZ2VfX3RleHQge1xuICAgIGNvbG9yOiAjNGE0YTU1O1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA1ODBweDtcbn1cbi5lcnJvci1wYWdlX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMS41cmVtO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5lcnJvci1wYWdlX19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5lcnJvci1wYWdlX19saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzJkMmRiODtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyog4pSA4pSAIEJsb2cgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5ibG9nLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjhmZTtcbn1cbi5ibG9nLWhlYWRlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNHZ3LCAzcmVtKTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5ibG9nLWhlYWRlcl9fdGV4dCB7XG4gICAgY29sb3I6ICM0YTRhNTU7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDcyMHB4O1xufVxuXG4vKiDilIDilIAgU2VydmVyLXJlbmRlcmVkIGdyaWQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYmxvZy1ncmlkLXNlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICNmN2Y4ZmUgdXJsKCcuLi9pbWFnZXMvdG9zYWRpZmZlcmVuY2Uvc2NvcmluZy1iZy5qcGcnKSBib3R0b20vY292ZXIgbm8tcmVwZWF0O1xufVxuLmJsb2ctZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogMnJlbSAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuYmxvZy1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmJsb2ctZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG5cbi5ibG9nLWNhcmQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5ibG9nLWNhcmRfX21lZGlhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmMWYzZjg7XG4gICAgLyogVG9wLXJpZ2h0IGNvcm5lciBjbGlwcGVkIGRpYWdvbmFsbHkgKG5vIHJvdW5kZWQgcmFkaXVzKS4gKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAzMnB4KSAwLCAxMDAlIDMycHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cbi5ibG9nLWNhcmRfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uYmxvZy1jYXJkX19ib2R5IHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMS41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IC43NXJlbTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cbi5ibG9nLWNhcmRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG4uYmxvZy1jYXJkX190aXRsZSBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYmxvZy1jYXJkX190aXRsZSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI0YxNDkxMDtcbn1cbi5ibG9nLWNhcmRfX21vcmUge1xuICAgIGNvbG9yOiAjRjE0OTEwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogLjk1cmVtO1xuICAgIG1hcmdpbi10b3A6IC4yNXJlbTtcbn1cbi5ibG9nLWNhcmRfX21vcmU6aG92ZXIge1xuICAgIGNvbG9yOiAjYzgzOTBhO1xufVxuXG4vKiDilIDilIAgQ2FyZCBtZXRhIChhdXRob3Ig4oCiIHJlYWQgdGltZSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uZGliLW1ldGEtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IC4zNXJlbSAuNXJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgZm9udC1zaXplOiAuODVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5kaWItbWV0YS1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmRpYi1tZXRhLWl0ZW0gKyAuZGliLW1ldGEtaXRlbTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAolwiO1xuICAgIG1hcmdpbi1yaWdodDogLjVyZW07XG4gICAgY29sb3I6ICNiOGJjYzc7XG59XG4uZGliLW1ldGEtYXV0aG9yIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmRpYi1tZXRhLXJlYWR0aW1lIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIOKUgOKUgCBQYWdpbmF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJsb2ctcGFnaW5hdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMXJlbTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAxcmVtO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fcGFnZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IC41cmVtO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fYnRuLFxuLmJsb2ctcGFnaW5hdGlvbl9fcGFnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDIuNzVyZW07XG4gICAgaGVpZ2h0OiAyLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAgLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4ycywgYm9yZGVyLWNvbG9yIC4ycztcbn1cbi5ibG9nLXBhZ2luYXRpb25fX2J0bi0tbmF2IHtcbiAgICBiYWNrZ3JvdW5kOiAjRjE0OTEwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDAgMS42cmVtO1xuICAgIGdhcDogLjVyZW07XG4gICAgbWluLXdpZHRoOiA5cmVtO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fYnRuLS1wcmV2IHtcbiAgICAvKiB0b3AtbGVmdCBjb3JuZXIgY3V0IGRpYWdvbmFsbHkgKGJvdHRvbSBlZGdlcyBzdGF5IHNxdWFyZSkgKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMTRweCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlLCAwIDE0cHgpO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fYnRuLS1uZXh0IHtcbiAgICAvKiB0b3AtcmlnaHQgY29ybmVyIGN1dCBkaWFnb25hbGx5IChib3R0b20gZWRnZXMgc3RheSBzcXVhcmUpICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uYmxvZy1wYWdpbmF0aW9uX19idG4tLW5hdjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2M4MzkwYTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5ibG9nLXBhZ2luYXRpb25fX2J0bi5pcy1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ibG9nLXBhZ2luYXRpb25fX3BhZ2Uge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjksIDY5LCAyMTksIDAuMSk7IC8qIHZhcigtLXRvc2EtYmx1ZSkgQCAxMCUgKi9cbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fcGFnZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2OSwgNjksIDIxOSwgMC4xOCk7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ibG9nLXBhZ2luYXRpb25fX3BhZ2UuaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIFNpbmdsZS1wb3N0IGVtYmVkIHdyYXBwZXIgKGtlcHQgZm9yID9wPTxzbHVnPikgKi9cbi5ibG9nLWZlZWQge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3Rvc2FkaWZmZXJlbmNlL3Njb3JpbmctYmcuanBnJykgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OiA0ODBweDtcbn1cbi5ibG9nLWZlZWRfX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4uYmxvZy1mZWVkX19sb2FkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cblxuLyog4pSA4pSAIFNpbmdsZSBwb3N0IChzZXJ2ZXItcmVuZGVyZWQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmRpYi1wb3N0IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiA0OHB4IGNsYW1wKDEuMjVyZW0sIDR2dywgMy41cmVtKTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xufVxuLmRpYi1wb3N0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIDMuNXZ3LCAyLjVyZW0pO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xufVxuLmRpYi1wb3N0IC5kaWItbWV0YS10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG4uZGliLXBvc3QtZmVhdHVyZWQtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDAgMCAycmVtO1xufVxuLmRpYi1hdWRpbyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAuODVyZW0gMS4yNXJlbTtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDFyZW07XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDIwLCAzMCwgNjAsIDAuMDgpO1xufVxuLmRpYi1hdWRpbyBhdWRpbyB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogaGlkZGVuIOKAlCByZXBsYWNlZCBieSB0aGUgY3VzdG9tIGNvbnRyb2xzIGJlbG93ICovXG59XG4uZGliLWF1ZGlvX19idG4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5kaWItYXVkaW9fX2J0bjpob3ZlciB7XG4gICAgY29sb3I6ICMwMDA7XG59XG4uZGliLWF1ZGlvX19wbGF5IHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMS44NXJlbTtcbn1cbi5kaWItYXVkaW9fX3BsYXk6aG92ZXIge1xuICAgIGNvbG9yOiAjYzgzOTBhO1xufVxuLmRpYi1hdWRpb19fdGltZSB7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IC45cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5kaWItYXVkaW9fX3Byb2dyZXNzIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjREJFREY1OyAvKiBsaWdodCBjeWFuIHRyYWNrICovXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi13aWR0aDogODBweDtcbn1cbi5kaWItYXVkaW9fX3Byb2dyZXNzLWZpbGwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtdGVhbCk7IC8qIGRhcmtlciB0ZWFsIHByb2dyZXNzICovXG4gICAgd2lkdGg6IDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAuMXMgbGluZWFyO1xufVxuLmRpYi1hdWRpb19fcHJvZ3Jlc3M6Zm9jdXMge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDEzLCAxMDcsIDExMCwgMC40KTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuLmRpYi1wb3N0LWNvbnRlbnQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG59XG4vKiBBbGwgbGlua3MgaW5zaWRlIHRoZSBhcnRpY2xlIHVzZSB0aGUgVG9zYSBvcmFuZ2UuICovXG4uZGliLXBvc3QgYSxcbi5kaWItcG9zdCBhOnZpc2l0ZWQsXG4uZGliLXBvc3QgYSBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uZGliLXBvc3QgYTpob3Zlcixcbi5kaWItcG9zdCBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2M4MzkwYSAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmRpYi1wb3N0LWNvbnRlbnQgcCB7IG1hcmdpbjogMCAwIDEuMXJlbTsgfVxuLmRpYi1wb3N0LWNvbnRlbnQgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cbi5kaWItcG9zdC1jb250ZW50IGgyIHsgZm9udC1zaXplOiAxLjVyZW07IG1hcmdpbjogMnJlbSAwIDFyZW07IH1cbi5kaWItcG9zdC1jb250ZW50IGgzIHsgZm9udC1zaXplOiAxLjJyZW07IG1hcmdpbjogMS42cmVtIDAgLjhyZW07IH1cbi5kaWItcmVsYXRlZCB7XG4gICAgbWFyZ2luOiA0cmVtIDAgMDtcbiAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIwLCAzMCwgNjAsIDAuMTIpO1xufVxuLmRpYi1yZWxhdGVkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjc1cmVtLCAzdncsIDIuMjVyZW0pO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWItcmVsYXRlZF9fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5kaWItcmVsYXRlZF9fZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAgIC5kaWItcmVsYXRlZF9fZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG4vKiBSZWxhdGVkLXBvc3QgY2FyZCB0aXRsZXMgc3RheSBibGFjayArIG5vIHVuZGVybGluZSxcbiAgIG92ZXJyaWRpbmcgdGhlIG9yYW5nZS91bmRlcmxpbmUgcnVsZSBhcHBsaWVkIHRvIGFsbCBhbmNob3JzIGluc2lkZSAuZGliLXBvc3QuICovXG4uZGliLXJlbGF0ZWQgLmJsb2ctY2FyZF9fdGl0bGUgYSxcbi5kaWItcmVsYXRlZCAuYmxvZy1jYXJkX190aXRsZSBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjMWExYTJlICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4uZGliLXJlbGF0ZWQgLmJsb2ctY2FyZF9fdGl0bGUgYTpob3ZlciB7XG4gICAgY29sb3I6ICNGMTQ5MTAgIWltcG9ydGFudDtcbn1cbi5kaWItcmVsYXRlZCAuYmxvZy1jYXJkX19tb3JlLFxuLmRpYi1yZWxhdGVkIC5ibG9nLWNhcmRfX21vcmUgc3Bhbixcbi5kaWItcmVsYXRlZCAuYmxvZy1jYXJkX190aXRsZSBhIHNwYW4ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZGliLXBvc3QtYmFjayB7XG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGliLXBvc3QtYmFjayBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uZGliLXBvc3QtYmFjayBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogT25saW5lLXN0b3JlIHZhcmlhbnQgb2YgdGhlIG5ld3NsZXR0ZXIg4oCUIGV4dHJhLXRhbGwgc2VjdGlvbiB3aXRoIHRoZSB0ZWFtXG4gICBwaG90byBhYm92ZSB0aGUgZm9ybS4gKi9cbi5uZXdzbGV0dGVyLS1vbmxpbmUtc3RvcmUge1xuICAgIHBhZGRpbmctdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbn1cbi5uZXdzbGV0dGVyLS1vbmxpbmUtc3RvcmVfX3Bob3RvLXdyYXAge1xuICAgIG1heC13aWR0aDogMTEwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuLm5ld3NsZXR0ZXItLW9ubGluZS1zdG9yZV9fcGhvdG8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSA4MHB4KSAwLCAxMDAlIDgwcHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cblxuLyog4pSA4pSAIEJvb2sgRXhhbSBwYWdlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4vKiBIZXJvIOKAlCBmdWxsLXNlY3Rpb24gY292ZXIgaW1hZ2Ugd2l0aCBvdmVybGF5IGNvcHkgb24gdGhlIGxlZnQuXG4gICBUaGUgYXNwZWN0LXJhdGlvIGlzIGxvY2tlZCB0byB0aGUgc291cmNlIGltYWdlICjiiYgxNjAww5c4NzMpIHNvIHRoZSBlbnRpcmVcbiAgIHBob3RvIGlzIGFsd2F5cyB2aXNpYmxlLCBlZGdlLXRvLWVkZ2UuIENhcHBlZCB0byBzdGF5IGJlbG93IHZpZXdwb3J0XG4gICBoZWlnaHQgc28gdGhlIHdob2xlIGhlcm8gKGFuZCBhIGhpbnQgb2YgdGhlIHNlY3Rpb24gYmVsb3cpIGZpdHMgb24gc2NyZWVuLiAqL1xuLmJlLWhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBhc3BlY3QtcmF0aW86IDE2MDAgLyA4NzM7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcbiAgICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG59XG4uYmUtaGVyb19fYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuLmJlLWhlcm9fX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44MikgMzUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA3NSUpO1xufVxuLmJlLWhlcm9fX2lubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xufVxuLmJlLWhlcm9fX2NvcHkgeyBtYXgtd2lkdGg6IDYyMHB4OyB9XG4uYmUtaGVyb19fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMy42dncsIDIuNzVyZW0pO1xufVxuLmJlLWhlcm9fX3RleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5iZS1oZXJvX19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJlLWhlcm9fX2xpbms6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICAuYmUtaGVyb19fb3ZlcmxheSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MikgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSkgMTAwJSk7XG4gICAgfVxufVxuXG4vKiBTdGVwcyAqL1xuLmJlLXN0ZXBzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJlLXN0ZXBzX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBtYXgtd2lkdGg6IDExMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiA0OHB4IGNsYW1wKDIwcHgsIDN2dywgNTZweCk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5iZS1zdGVwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMjBweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAyOHB4IDI2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTU2cHg7XG59XG4uYmUtc3RlcF9faWNvbi13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8qIFNvZnQgYmx1ZSBibHVycmVkIGxpbmUgdW5kZXIgdGhlIGljb24uICovXG4uYmUtc3RlcF9faWNvbi13cmFwOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IC0xMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZpbHRlcjogYmx1cig2cHgpO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5iZS1zdGVwX19pY29uIHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5iZS1zdGVwX190aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIG1hcmdpbjogMCAwIDZweDtcbn1cbi5iZS1zdGVwX190ZXh0IHtcbiAgICBjb2xvcjogIzRhNGE1ZTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG59XG4uYmUtc3RlcF9fbGluayB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLmJlLXN0ZXBfX2xpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjYzgzOTBhO1xufVxuXG4vKiDilIDilIDilIAgUHVyY2hhc2Ugd2l6YXJkICg0LXN0ZXAgYnJvd3NlciBtb2NrdXApIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJlLXB1cmNoYXNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmYmZkO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi8qIFN0ZXAgaW5kaWNhdG9yIOKAlCBzb2xpZCByZWN0YW5nbGVzLCBvbmUgcGVyIHN0ZXAuIEluYWN0aXZlIHN0ZXBzIHN0YXlcbiAgIGxpZ2h0IGJsdWUgd2l0aCBncmV5IHRleHQ7IHRoZSBhY3RpdmUgc3RlcCBhbmQgcHJldmlvdXNseS1jb21wbGV0ZWQgc3RlcHNcbiAgIGdldCBhIHNvbGlkIFRvc2EgYmx1ZSBiYWNrZ3JvdW5kIHdpdGggd2hpdGUgdGV4dC4gKi9cbi5iZS1wdXJjaGFzZV9fc3RlcHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0byA0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1heC13aWR0aDogMTEwMHB4O1xufVxuLmJlLXB1cmNoYXNlX19zdGVwIHtcbiAgICBmbGV4OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzlhYTBiNDtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMjJweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDIwLCAzMCwgNjAsIDAuMDQpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzLCBjb2xvciAuMnM7XG59XG4uYmUtcHVyY2hhc2VfX3N0ZXAuaXMtYWN0aXZlLFxuLmJlLXB1cmNoYXNlX19zdGVwLmlzLWRvbmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG4vKiBTa2lwcGVkIChlLmcuIHN0ZXAgMiB3aGVuIHRoZSBjaG9zZW4gc3ViamVjdCBoYXMgbm8gbGFuZ3VhZ2UvdmVyc2lvblxuICAgY2hvaWNlIHRvIG1ha2UpIOKAlCBrZWVwIHRoZSBkb3QgdmlzaWJsZSBidXQgdmlzaWJseSBtdXRlZCBzbyB0aGUgZmxvd1xuICAgZG9lc24ndCBzaGlmdCBhbmQgdGhlIHVzZXIgdW5kZXJzdGFuZHMgdGhpcyBzdGVwIHdhcyBieXBhc3NlZC4gKi9cbi5iZS1wdXJjaGFzZV9fc3RlcC5pcy1za2lwcGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDhkZGU4O1xuICAgIGNvbG9yOiAjOGI5M2E4O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cbi5iZS1wdXJjaGFzZV9fc3RlcC5pcy1za2lwcGVkLmlzLWRvbmUsXG4uYmUtcHVyY2hhc2VfX3N0ZXAuaXMtc2tpcHBlZC5pcy1hY3RpdmUge1xuICAgIC8qIElmIHNraXBwZWQsIG5ldmVyIHNob3cgdGhlIGFjdGl2ZS9kb25lIGJsdWUgdHJlYXRtZW50LiAqL1xuICAgIGJhY2tncm91bmQ6ICNkOGRkZTg7XG4gICAgY29sb3I6ICM4YjkzYTg7XG59XG4uYmUtcHVyY2hhc2VfX3N0ZXAtbnVtIHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogQnJvd3NlciBtb2NrdXAgd3JhcHBlciDigJQgdGhlIGJyb3dzZXIgY2hyb21lIGlzIHN0cmV0Y2hlZCBhcyBhIGJhY2tncm91bmQsXG4gICBhbmQgLmJlLXB1cmNoYXNlX19pbm5lciBzaXRzIGluc2lkZSwgcGFkZGVkIGRvd24gcGFzdCB0aGUgVVJMIGJhciBzbyB0aGVcbiAgIGNvbnRlbnQgbGl2ZXMgd2l0aGluIHRoZSBjaHJvbWUncyBlbXB0eSBhcmVhLiBUaGUgaW5uZXIgcmFkaXVzIG1hdGNoZXMgdGhlXG4gICBjaHJvbWUncyByb3VuZGVkIGNvcm5lcnMgc28gdGhlIHdoaXRlIGZyYW1lIGRvZXNuJ3QgcGVlayBvdXQgcGFzdCB0aGVtLiAqL1xuLmJlLXB1cmNoYXNlX19mcmFtZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTEwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxM3B4IDEzcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDIwLCAzMCwgNjAsIDAuMTApO1xufVxuLmJlLXB1cmNoYXNlX19pbm5lciB7XG4gICAgLyogVGhlIGJyb3dzZXIgY2hyb21lIFBORyAoMTQ0MMOXOTYxKSByZXNlcnZlcyB+NzVweCBhdCB0aGUgdG9wIGZvciB0aGVcbiAgICAgICBVUkwgYmFyIOKAlCBwdXNoIG91ciBjb250ZW50IHBhc3QgaXQuIEJvdHRvbSBwYWRkaW5nIGdpdmVzIHRoZSBjaHJvbWVcbiAgICAgICBhIHRoaW4gZnJhbWUgYXJvdW5kIHRoZSBjb250ZW50IHRvby4gKi9cbiAgICBwYWRkaW5nOiA5MnB4IGNsYW1wKDI4cHgsIDN2dywgNTZweCkgNTZweDtcbn1cbi5iZS1wdXJjaGFzZV9fcGFuZSB7IGRpc3BsYXk6IG5vbmU7IG1pbi1oZWlnaHQ6IDUyMHB4OyB9XG4uYmUtcHVyY2hhc2VfX3BhbmUuaXMtYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH1cbi8qIFN0ZXAgMyBoYXMgZmV3ZXIgaXRlbXMgdGhhbiB0aGUgb3RoZXJzIOKAlCBjZW50ZXIgaXRzIGNvbnRlbnQgdmVydGljYWxseSBzb1xuICAgdGhlIHBhbmUgbmV2ZXIgbG9va3MgY3JhbXBlZCBhZ2FpbnN0IHRoZSB3aWRlciBzdGVwIDEgLyAyIC8gNCBsYXlvdXRzLiAqL1xuLmJlLXB1cmNoYXNlX19wYW5lW2RhdGEtcHVyY2hhc2UtcGFuZT1cIjNcIl0uaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIFRhYnMgKHN0ZXAgMSkg4oCUIHJldXNlIHRoZSBjaHJvbWUgZnJvbSAuY2VydC1vZmZlcmluZ3MgKi9cbi5iZS1wdXJjaGFzZV9fdGFicyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlY2YzO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG59XG4uYmUtcHVyY2hhc2VfX3RhYnMgLm5hdi1saW5rIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGNvbG9yOiAjNzc3O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYmUtcHVyY2hhc2VfX3RhYnMgLm5hdi1saW5rLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmJlLXB1cmNoYXNlX190YWItbG9nbyB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmJlLXB1cmNoYXNlX19oZWFkaW5nIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG59XG4uYmUtcHVyY2hhc2VfX3BhbmUtaW50cm8ge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiA3NjBweDtcbiAgICBtYXJnaW46IDAgYXV0byAyOHB4O1xufVxuLmJlLXB1cmNoYXNlX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogU3ViamVjdCBidXR0b25zICovXG4uYmUtcHVyY2hhc2VfX3N1YmplY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE2cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTZGM0Y5O1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycywgYm9yZGVyLWNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnMsIHRyYW5zZm9ybSAuMnMsIGNvbG9yIC4ycztcbn1cbi5iZS1wdXJjaGFzZV9fc3ViamVjdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMjQxLCA3MywgMTYsIDAuMTApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5iZS1wdXJjaGFzZV9fc3ViamVjdCBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA2NHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uYmUtcHVyY2hhc2VfX3N1YmplY3Qgc3BhbiB7IGxpbmUtaGVpZ2h0OiAxLjI7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBTdGVwIDIg4oCUIGxhbmd1YWdlICsgdmVyc2lvbiAqL1xuLmJlLXB1cmNoYXNlX19ncm91cC10aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbn1cbi5iZS1wdXJjaGFzZV9fcmFkaW8tbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuLmJlLXB1cmNoYXNlX19yYWRpby1saXN0IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG4uYmUtcHVyY2hhc2VfX3JhZGlvLWxpc3QgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgYWNjZW50LWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uYmUtcHVyY2hhc2VfX3Bob3RvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMjhweCkgMCwgMTAwJSAyOHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG5cbi8qIFN0ZXAgMSDigJQgc3ViamVjdCBkZXRhaWxzIChjb25maXJtYXRpb24gY2FyZCBhZnRlciBwaWNraW5nIGEgc3ViamVjdCkuXG4gICBSZWN0YW5ndWxhciBsYXlvdXQsIG1pcnJvcnMgdGhlIGxlZ2FjeSBib29rYW5leGFtIHBhZ2UgdHJlYXRtZW50LiAqL1xuLmJlLXB1cmNoYXNlX19kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtYmFjazpob3ZlciB7XG4gICAgY29sb3I6ICNkODNhMDQ7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtZXllYnJvdyB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtZXllYnJvdyBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtaWNvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogNTZweCAzMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWljb24gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWRlc2Mge1xuICAgIGNvbG9yOiAjMWYyOTM3O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtaCB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAxOHB4IDAgOHB4O1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1saXN0IGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWxpc3QgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+KAuic7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1sZWFybm1vcmUge1xuICAgIG1hcmdpbjogMThweCAwIDA7XG4gICAgY29sb3I6ICMxZjI5Mzc7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtbGVhcm5tb3JlIGEge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtbGVhcm5tb3JlIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiBTdGVwIDMg4oCUIHByb2N0b3JpbmcgKi9cbi5iZS1wdXJjaGFzZV9fcHJvY3RvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMzZweDtcbiAgICBwYWRkaW5nOiA4MHB4IDMycHg7XG4gICAgbWluLWhlaWdodDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWRhZTY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzLCBiYWNrZ3JvdW5kLWNvbG9yIC4ycztcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3Rvcjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJhY2tncm91bmQ6ICNmN2ZiZmQ7XG59XG4vKiBTZWxlY3RlZCBzdGF0ZSDigJQgbWF0Y2ggdGhlIG9yYW5nZSDinJMgaW4gdGhlIGNvcm5lciB3aXRoIGFuIG9yYW5nZVxuICAgY2FyZCBib3JkZXIgc28gdGhlIGNob2ljZSByZWFkcyBhdCBhIGdsYW5jZS4gYDpoYXMoaW5wdXQ6Y2hlY2tlZClgXG4gICB0YXJnZXRzIHRoZSBsYWJlbCB3aG9zZSBuZXN0ZWQgcmFkaW8gaXMgY2hlY2tlZC4gKi9cbi5iZS1wdXJjaGFzZV9fcHJvY3RvcjpoYXMoaW5wdXQ6Y2hlY2tlZCkge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY3ZjM7XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3IgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLmJlLXB1cmNoYXNlX19wcm9jdG9yIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3ItY2hlY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE4cHg7XG4gICAgcmlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2Q5ZGFlNjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjE1cywgYm9yZGVyLWNvbG9yIC4xNXM7XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3IgaW5wdXQ6Y2hlY2tlZCB+IC5iZS1wdXJjaGFzZV9fcHJvY3Rvci1jaGVjayB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmJlLXB1cmNoYXNlX19wcm9jdG9yIGlucHV0OmNoZWNrZWQgfiAuYmUtcHVyY2hhc2VfX3Byb2N0b3ItY2hlY2s6OmFmdGVyIHtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLmJlLXB1cmNoYXNlX19wcm9jdG9yLWljb24ge1xuICAgIHdpZHRoOiAxMTBweDtcbiAgICBoZWlnaHQ6IDExMHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3ItbGFiZWwge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3Rvci10ZXh0IHtcbiAgICBjb2xvcjogIzRhNGE1ZTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbi10b3A6IC0yMHB4O1xufVxuLmJlLXB1cmNoYXNlX19wcm9jdG9yLXRleHQgYSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3Rvci1lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDE2cHggMCAwO1xufVxuXG4vKiBOZXh0IGxpbmsgKi9cbi5iZS1wdXJjaGFzZV9fbmV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBhZGRpbmc6IDZweCA0cHg7XG59XG4uYmUtcHVyY2hhc2VfX25leHQ6aG92ZXIgeyBjb2xvcjogI2M4MzkwYTsgfVxuXG4vKiBTdGVwIDQg4oCUIHBhY2tzICovXG4uYmUtcHVyY2hhc2VfX2xlZ2FsIHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2tzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gICAgZ2FwOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2VjZjM7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHsgLmJlLXB1cmNoYXNlX19wYWNrcyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH0gfVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7IC5iZS1wdXJjaGFzZV9fcGFja3MgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfSB9XG4uYmUtcHVyY2hhc2VfX3BhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlY2VjZjM7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2s6bGFzdC1jaGlsZCB7IGJvcmRlci1yaWdodDogMDsgfVxuXG4uYmUtcHVyY2hhc2VfX3BhY2staGVhZCB7XG4gICAgcGFkZGluZzogMjJweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY3ZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZjM7XG4gICAgbWluLWhlaWdodDogOTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2suaXMtYWN0aXZlIC5iZS1wdXJjaGFzZV9fcGFjay1oZWFkLFxuLmJlLXB1cmNoYXNlX19wYWNrOmhvdmVyIC5iZS1wdXJjaGFzZV9fcGFjay1oZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stbmFtZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuLmJlLXB1cmNoYXNlX19wYWNrLmlzLWFjdGl2ZSAuYmUtcHVyY2hhc2VfX3BhY2stbmFtZSxcbi5iZS1wdXJjaGFzZV9fcGFjazpob3ZlciAuYmUtcHVyY2hhc2VfX3BhY2stbmFtZSB7IGNvbG9yOiAjZmZmOyB9XG5cbi5iZS1wdXJjaGFzZV9fcGFjay1ib2R5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stZGVzYyB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luOiAwO1xufVxuLyogUmVzZXQgdGhlIGJyb3dzZXIncyBkZWZhdWx0IHVsIGluZGVudCBpbnNpZGUgdGhlIHBhY2sgZGVzY3JpcHRpb24gc28gdGhlXG4gICBidWxsZXRzIGFsaWduIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHRleHQuIFRoZSBsaXN0IGNvbWVzIHN0cmFpZ2h0IGZyb21cbiAgIHRoZSBBUEkgKHNwZV9kZXQudG9zYV9wcmlfZGV0LmRlcyBIVE1MKSwgc28gd2Ugc3R5bGUgaXQgaW5saW5lIGhlcmUuICovXG4uYmUtcHVyY2hhc2VfX3BhY2stZGVzYyB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICBtYXJnaW46IDhweCAwIDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjFyZW07XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stZGVzYyBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmJlLXB1cmNoYXNlX19wYWNrLWZlYXR1cmVzIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjIGluc2lkZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stZmVhdHVyZXMgbGkge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stZmVhdHVyZXMgbGk6Om1hcmtlciB7IGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpOyB9XG5cbi5iZS1wdXJjaGFzZV9fcGFjay1wcmljZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuXG4uYmUtcHVyY2hhc2VfX3BhY2stY2hlY2tvdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY3ZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWNlY2YzO1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzLCBjb2xvciAuMnM7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2suaXMtYWN0aXZlIC5iZS1wdXJjaGFzZV9fcGFjay1jaGVja291dCxcbi5iZS1wdXJjaGFzZV9fcGFjazpob3ZlciAuYmUtcHVyY2hhc2VfX3BhY2stY2hlY2tvdXQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNnB4KSAwLCAxMDAlIDE2cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay1yYWRpbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkICNkOWRhZTY7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2suaXMtYWN0aXZlIC5iZS1wdXJjaGFzZV9fcGFjay1yYWRpbyxcbi5iZS1wdXJjaGFzZV9fcGFjazpob3ZlciAuYmUtcHVyY2hhc2VfX3BhY2stcmFkaW8ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2EteWVsbG93KTtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay5pcy1hY3RpdmUgLmJlLXB1cmNoYXNlX19wYWNrLXJhZGlvOjphZnRlcixcbi5iZS1wdXJjaGFzZV9fcGFjazpob3ZlciAuYmUtcHVyY2hhc2VfX3BhY2stcmFkaW86OmFmdGVyIHtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLmJlLXB1cmNoYXNlX19wYWNrLWFycm93IHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLyog4pSA4pSAIENvbnRhY3QgVXMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jdS1iYW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA4MDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jdS1iYW5uZXIgeyBtaW4taGVpZ2h0OiA4ODBweDsgfVxufVxuLmN1LWJhbm5lcl9fYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG59XG4uY3UtYmFubmVyX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpIDMwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KSA1NSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNzAlKTtcbn1cbi5jdS1iYW5uZXJfX2lubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogNjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbn1cbi5jdS1iYW5uZXJfX2NvcHkgeyBtYXgtd2lkdGg6IDUyMHB4OyB9XG4uY3UtYmFubmVyX190aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDQuNXZ3LCAzLjVyZW0pO1xufVxuLmN1LWJhbm5lcl9fdGV4dCB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5jdS1iYW5uZXJfX292ZXJsYXkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpIDEwMCUpO1xuICAgIH1cbn1cblxuLyogRm9ybSBzZWN0aW9uICovXG4uY3UtZm9ybS1zZWN0aW9uIHsgYmFja2dyb3VuZDogI2ZmZjsgfVxuLmN1LWZvcm0tY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA1NnB4IGNsYW1wKDI0cHgsIDR2dywgNjRweCk7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4uY3UtZm9ybS1jYXJkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDM2cHgpIDAsIDEwMCUgMzZweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLmN1LWZvcm0tY2FyZF9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAyLjZ2dywgMnJlbSk7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtO1xufVxuXG4uY3UtZm9ybSB7IHdpZHRoOiAxMDAlOyB9XG4uY3UtZm9ybV9fcm93IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jdS1mb3JtX19yb3ctLWZ1bGwge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuLmN1LWZvcm1fX2dyb3VwIHsgd2lkdGg6IDEwMCU7IH1cbi5jdS1mb3JtX19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5jdS1mb3JtX19yZXF1aXJlZCB7XG4gICAgY29sb3I6ICNmZjVhNWE7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLmN1LWZvcm1fX2lucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5jdS1mb3JtX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uY3UtZm9ybV9faW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59XG4uY3UtZm9ybV9fdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG59XG4uY3UtZm9ybV9fY29uc2VudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luOiAxNnB4IDAgOHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmN1LWZvcm1fX2NvbnNlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGFjY2VudC1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmN1LWZvcm1fX3ByaXZhY3kge1xuICAgIG1hcmdpbjogMCAwIDI0cHggMzBweDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmN1LWZvcm1fX3ByaXZhY3ktbGluayB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG4uY3UtZm9ybV9fcHJpdmFjeS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5jdS1mb3JtX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi8qIHJlQ0FQVENIQSB3aWRnZXQgY29udGFpbmVyIOKAlCB0aGUgaWZyYW1lIGluc2VydGVkIGJ5IEdvb2dsZSByZW5kZXJzIGF0XG4gICB+MzA0w5c3OCB3aXRoIGl0cyBvd24gY2hyb21lLCBzbyB3ZSBqdXN0IGdpdmUgaXQgYSB0cmFuc3BhcmVudCBzbG90LiAqL1xuLmN1LWZvcm1fX2NhcHRjaGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4taGVpZ2h0OiA3OHB4O1xufVxuLmN1LWZvcm1fX2NhcHRjaGEgLmctcmVjYXB0Y2hhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qIElubGluZSBlcnJvciByZXR1cm5lZCBieSB0aGUgQUpBWCBzdWJtaXQuICovXG4uY3UtZm9ybV9fZXJyb3Ige1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCA3MywgMTYsIDAuMTgpO1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLyogU3VjY2VzcyBjb25maXJtYXRpb24gc2hvd24gYWZ0ZXIgYSB2YWxpZCBjbGllbnQtc2lkZSBzdWJtaXQuICovXG4uY3UtZm9ybV9fc3VjY2VzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE0cHg7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmN1LWZvcm1fX3N1Y2Nlc3MgaSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG59XG4uY3UtZm9ybV9fc3VibWl0IHsgZmxleC1zaHJpbms6IDA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmN1LWZvcm1fX3JvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG5cbi8qIE9mZmljZSBsb2NhdGlvbnMg4oCUIHJldXNlcyAud3dhLW9mZmljZXNfXyogY2xhc3NlcyBmcm9tIHdoby13ZS1hcmUgKi9cbi5jdS1vZmZpY2VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZmNGY4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NhcmVlcnMvSG93IHRvIEFwcGx5LWJnLmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6IDQwcHggMDtcbn1cblxuLyogQ29tcGFjdCBuZXdzbGV0dGVyIG9uIGNvbnRhY3QtdXMgcGFnZSDigJQgdHJpbSBzaGFyZWQgMzIwcHggdG9wIHBhZGRpbmcuICovXG4uY3Utb2ZmaWNlcyArIC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNoYXJlZCBvZmZpY2UtbG9jYXRpb25zIGNhcmQvcGluL2NpdHkgc3R5bGVzIHVzZWQgb24gYm90aCB3aG8td2UtYXJlIGFuZFxuICAgY29udGFjdC11cyBwYWdlcy4gUGFnZS1zcGVjaWZpYyBiYWNrZ3JvdW5kcyBsaXZlIGluIHRoZWlyIG93biBzdHlsZXNoZWV0cy4gKi9cbi53d2Etb2ZmaWNlc19fcm93IHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cbi53d2Etb2ZmaWNlc19fY29sICsgLnd3YS1vZmZpY2VzX19jb2wge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNiwgMjYsIDQ2LCAwLjE4KTtcbn1cbi53d2Etb2ZmaWNlc19fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDE2cHggMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlO1xufVxuLnd3YS1vZmZpY2VzX19jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG4ud3dhLW9mZmljZXNfX3BpbiB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi53d2Etb2ZmaWNlc19fY2l0eSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ud3dhLW9mZmljZXNfX2FkZHIge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42NTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC53d2Etb2ZmaWNlc19fY29sICsgLnd3YS1vZmZpY2VzX19jb2wge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjYsIDI2LCA0NiwgMC4xOCk7XG4gICAgfVxuICAgIC53d2Etb2ZmaWNlc19fY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDI4cHggMjRweDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgCBTdGF0ZSBBcHByb3ZhbHMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uc2EtYmFubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNTgwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZWFmM2ZiO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc2EtYmFubmVyIHsgbWluLWhlaWdodDogNjQwcHg7IH1cbn1cbi5zYS1iYW5uZXJfX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIDcwJTtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuLnNhLWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnNhLWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNC41dncsIDMuNXJlbSk7XG59XG5cbi8qIFNlY3Rpb246IFJlY29nbml6ZWQgTmF0aW9uYWxseSAoZnVsbC1ibGVlZCBpbWFnZSBsZWZ0KSAqL1xuLnNhLXJlY29nbml6ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMDtcbn1cbi5zYS1yZWNvZ25pemVkID4gLmNvbnRhaW5lci14bC5weS01IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uc2EtcmVjb2duaXplZCA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDA7XG4gICAgLS1icy1ndXR0ZXIteTogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uc2EtcmVjb2duaXplZCA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uc2EtcmVjb2duaXplZF9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgY2xpcC1wYXRoOiBub25lO1xufVxuLnNhLXJlY29nbml6ZWRfX3RleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5zYS1yZWNvZ25pemVkID4gLmNvbnRhaW5lci14bC5weS01ID4gLnJvdyA+IC5jb2wtbGctNjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgLnNhLXJlY29nbml6ZWQgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93ID4gLmNvbC1sZy02Omxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMDBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuc2EtcmVjb2duaXplZCA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cgPiAuY29sLWxnLTY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjRweDtcbiAgICB9XG59XG5cbi8qIFNlY3Rpb246IEFwcHJvdmVkIEFjcm9zcyB0aGUgVW5pdGVkIFN0YXRlcyAoZGFyayBtYXAgYmFja2dyb3VuZCkgKi9cbi5zYS1tYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWYyYThkO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG59XG4uc2EtbWFwID4gLmNvbnRhaW5lci14bC5weS01IHtcbiAgICBwYWRkaW5nLXRvcDogNjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG4uc2EtbWFwX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzMSwgNDIsIDE0MSwgMC45MikgMCUsIHJnYmEoMzEsIDQyLCAxNDEsIDAuNTUpIDYwJSwgcmdiYSgzMSwgNDIsIDE0MSwgMC44NSkgMTAwJSk7XG59XG4uc2EtbWFwX19pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG59XG4uc2EtbWFwX19oZWFkZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xufVxuLnNhLW1hcF9faW50cm8ge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA3NjBweDtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuLnNhLW1hcF9fc3RhdGVzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAzMnB4IDAgMDtcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDIwcHggNTZweDtcbn1cbi5zYS1tYXBfX3N0YXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2EtbWFwX19zdGF0ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEycHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uc2EtbWFwX19zdGF0ZS1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDRweDtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxLjVweDtcbn1cbi5zYS1tYXBfX3N0YXRlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7XG59XG4vKiBZZWxsb3cgc2VjdGlvbi1kb3RzIHZhcmlhbnQgKG92ZXJyaWRlIGJhc2Ugc2VjdGlvbi1kb3RzIHNwYW4gY29sb3IpICovXG4uc2VjdGlvbi1kb3RzLS15ZWxsb3cgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLnNhLW1hcF9fc3RhdGVzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cblxuLyogQ29tYmluZWQgc2VjdGlvbjogRXhwYW5kaW5nIEFjY2VzcyArIEJyaW5nIFRvc2EgdG8gWW91ciBTdGF0ZSAqL1xuLnNhLWNvbWJvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmOWZjO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3N0YXRlLWFwcHJvdmFscy9FeHBhbmRpbmcgQWNjZXNzLWJnLmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbn1cbi5zYS1jb21ib19fcm93IHtcbiAgICBwYWRkaW5nOiAzMnB4IDA7XG59XG4uc2EtY29tYm9fX3JvdyArIC5zYS1jb21ib19fcm93IHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG59XG4uc2EtY29tYm9fX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogNDhweCA1NnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4wOCk7XG59XG4uc2EtZXhwYW5kaW5nX19pbWcsXG4uc2EtYnJpbmdfX2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDY3JTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgY2xpcC1wYXRoOiBub25lO1xufVxuLnNhLWV4cGFuZGluZ19fdGV4dCxcbi5zYS1icmluZ19fdGV4dCB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLnNhLWV4cGFuZGluZ19faW1nLFxuICAgIC5zYS1icmluZ19faW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLnNhLWNvbWJvX19jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMzJweCAyOHB4O1xuICAgIH1cbn1cblxuLyogQ29tcGFjdCBuZXdzbGV0dGVyIG9uIHN0YXRlLWFwcHJvdmFscyBwYWdlIOKAlCB0cmltIHRoZSBzaGFyZWQgc2VjdGlvbidzXG4gICBkZWVwIDMyMHB4IHRvcCBwYWRkaW5nIHNpemVkIGZvciBhbiBvdmVybGFwcGluZyB0ZXN0aW1vbmlhbC4gKi9cbi5zYS1jb21ibyArIC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG4uc2EtYnJpbmdfX2xpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG4uc2EtYnJpbmdfX2xpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uc2EtYnJpbmdfX2xpc3QgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA4cHg7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4vKiDilIDilIAgU3RhdGUgZGV0YWlsIHBhZ2UgKGUuZy4gL3N0YXRlL3RleGFzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uc3QtYmFubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZGNlYmY3O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3QtYmFubmVyIHsgbWluLWhlaWdodDogNTIwcHg7IH1cbn1cbi5zdC1iYW5uZXJfX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xufVxuLnN0LWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuLnN0LWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNC41dncsIDMuNXJlbSk7XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuLyogS2VlcCBsb25nIHRpdGxlcyBjbGVhciBvZiB0aGUgYWdlbmN5LWxvZ28gem9uZSBvbiB0aGUgcmlnaHQgKHRoZSBsb2dvJ3NcbiAgIGhvcml6b250YWwgcG9zaXRpb24gZm9sbG93cyB0aGUgYmFubmVyIGFydHdvcmssIHNvIHRoZSBzYWZlIHdpZHRoIGdyb3dzXG4gICB3aXRoIHRoZSB2aWV3cG9ydCkuICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuc3QtYmFubmVyX19jb250ZW50IHsgbWF4LXdpZHRoOiA1MCU7IH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3QtYmFubmVyX19jb250ZW50IHsgbWF4LXdpZHRoOiA1NSU7IH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAuc3QtYmFubmVyX19jb250ZW50IHsgbWF4LXdpZHRoOiA2MCU7IH1cbn1cbi5zdC1iYW5uZXJfX2J1bGxldHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cbi5zdC1iYW5uZXJfX2J1bGxldHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uc3QtYmFubmVyX19idWxsZXRzIGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogOXB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5zdC1iYW5uZXJfX2FnZW5jeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDAuMjE2MiAqIG1heCgxMDAlLCAxNjg2cHgpKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB6LWluZGV4OiAzO1xuICAgIHdpZHRoOiBjbGFtcCgyMjBweCwgMjZ2dywgMzQwcHgpO1xuICAgIGhlaWdodDogY2xhbXAoMTQwcHgsIDE1dncsIDI1MHB4KTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBJbnRybyArIGRvd25sb2FkICovXG4uc3QtaW50cm8ge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKCcuLi9pbWFnZXMvc3RhdGVzL1ZlY3Rvci5wbmcnKSBuby1yZXBlYXQgbGVmdCA2MHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNTAlIGF1dG87XG59XG4uc3QtaW50cm9fX3RleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbn1cblxuLyogVGhlIE9mZmljaWFsIEFwcHJvdmVkIExpc3QgKGRhcmsgdGVhbCkgKi9cbi5zdC1vZmZpY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLnN0LW9mZmljaWFsX19zdWIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLnN0LW9mZmljaWFsX190ZXh0IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5zdC1vZmZpY2lhbF9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAuc3Qtb2ZmaWNpYWxfX2ltZyB7XG4gICAgICAgIHdpZHRoOiA4MyU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbn1cbi5zdC1xdW90ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBwYWRkaW5nOiAyNHB4IDI4cHg7XG4gICAgbWFyZ2luOiAwO1xufVxuLnN0LXF1b3RlIHAge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5zdC1xdW90ZSBjaXRlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKiBFbGlnaWJsZSBTY2hvb2xzIGFuZCBHcmFkZXMgKi9cbi5zdC1lbGlnaWJsZSB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5zdC1lbGlnaWJsZV9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnN0LWVsaWdpYmxlX190ZXh0LFxuLnN0LXRleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5zdC1oMyB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjRyZW0sIDIuNHZ3LCAxLjg1cmVtKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLnN0LWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4vKiBQb3J0cmFpdCBzaG90cyAoZS5nLiBSZXBvcnRpbmcgUHJvY2Vzcykgd291bGQgdG93ZXIgb3ZlciB0aGUgdGV4dCBjb2x1bW5cbiAgIGF0IGZ1bGwgY29sdW1uIHdpZHRoIOKAlCBjYXAgdGhlbSBhbmQgY2VudGVyIGluIHRoZSBjb2x1bW4gaW5zdGVhZC4gKi9cbi5zdC1pbWctLWNhcHBlZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ1MHB4O1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG4vKiBGaWxsIHRoZSBjb2x1bW4gYW5kIG1hdGNoIHRoZSBzaWJsaW5nIGNvbHVtbidzIGhlaWdodC4gKi9cbi5zdC1pbWctLWNvdmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi8qIFNoYXJlZCB0YWJsZXMgKi9cbi5zdC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5zdC10YWJsZSB0aGVhZCB0aCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uc3QtdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTlmMjtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uc3QtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUtbGlnaHQpO1xufVxuLnN0LXRhYmxlLS10d28gdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zdC1lbGlnaWJsZSAuc3QtdGFibGUsXG4uc3QtZWxpZ2libGUgLnN0LXRhYmxlIHRoLFxuLnN0LWVsaWdpYmxlIC5zdC10YWJsZSB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q3ZGNlYTtcbn1cbi5zdC1ub3RlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRlZWU2O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGNvbG9yOiAjNWE0YTNhO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xufVxuLnN0LXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZGVlZTY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICBjb2xvcjogIzhhNGIxYTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5zdC1saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG5cbi8qIFRpZXIgU3RydWN0dXJlIChibHVlKSAqL1xuLnN0LXRpZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDE0NSU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDMuNXJlbSAwO1xufVxuLnN0LXRpZXIgLnNlY3Rpb24tZG90cy0teWVsbG93IHNwYW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKSAhaW1wb3J0YW50O1xufVxuLnN0LXRpZXJfX2ludHJvIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbn1cbi5zdC10aWVyX19jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAyOHB4IDI2cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4xMik7XG59XG4uc3QtdGllcl9fY2FyZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMjZweDtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uc3QtdGllcl9fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi5zdC10aWVyX19jYXJkIHAge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1hcmdpbjogMDtcbn1cbi5zdC10aWVyX19mb290bm90ZSB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4uc3QtdGllcl9fdGFibGUtd3JhcCB7XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMwcHggcmdiYSgyMCwgMzAsIDYwLCAwLjE4KTtcbn1cbi5zdC10YWJsZS0taW52ZXJzZSB0aGVhZCB0aCB7XG4gICAgYmFja2dyb3VuZDogIzFhMWEyZTtcbn1cbi5zdC10YWJsZS0taW52ZXJzZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIEFwcHJvdmVkIFRvc2EgQ2VydGlmaWNhdGlvbnMgKi9cbi5zdC1jZXJ0cyB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5zdC1jZXJ0c19faW50cm8ge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXgtd2lkdGg6IDk4MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5zdC1jZXJ0c19fZ3JvdXAgdGQge1xuICAgIGJhY2tncm91bmQ6ICNlZWYxZjggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLnN0LWNlcnRzX19ncm91cCBpIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLnN0LWNlcnRzX19ncm91cC1pY29uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLnN0LWNlcnRzX190YWJsZSAuc3QtY2VydHNfX25hbWUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zdC1jZXJ0c19fbGluayB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiB0ZXh0LWRlY29yYXRpb24tY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5zdC1jZXJ0c19fbGluazpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zdC1jZXJ0c19fbGlzdCB7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cbi5zdC1jZXJ0c19fbGlzdDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLnN0LWNlcnRzX19saXN0IGxpIHsgbWFyZ2luLWJvdHRvbTogMnB4OyB9XG5cbi5zdC1jZXJ0c19fdGFibGUgdGgsXG4uc3QtY2VydHNfX3RhYmxlIHRkIHtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xufVxuXG4vKiBBY2NvdW50YWJpbGl0eSAobGlnaHQgYmx1ZSkgKi9cbi5zdC1hY2NvdW50YWJpbGl0eSB7IGJhY2tncm91bmQ6IHZhcigtLXRvc2EtbGlnaHQtYmx1ZSk7IH1cblxuLyogRnVuZGluZyAqL1xuLnN0LWZ1bmRpbmcgeyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4uc3QtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuLnN0LWxpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uc3QtbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qIENUQSAoeWVsbG93KSDigJQgbWlycm9ycyB0aGUgaG9tZXBhZ2UgLmdldC1zdGFydGVkIHNlY3Rpb24gKi9cbi5zdC1jdGEge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IC0yMjBweDtcbiAgICB6LWluZGV4OiAyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLmhlLWN0YSB7IG1hcmdpbi10b3A6IC0xMjBweDsgbWFyZ2luLWJvdHRvbTogLTEyMHB4OyB9XG4gICAgLnN0LWN0YSB7IG1hcmdpbi1ib3R0b206IC0xMjBweDsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLmhlLWN0YSB7IG1hcmdpbi10b3A6IC04MHB4OyBtYXJnaW4tYm90dG9tOiAtODBweDsgfVxuICAgIC5zdC1jdGEgeyBtYXJnaW4tYm90dG9tOiAtODBweDsgfVxufVxuLnN0LWN0YV9fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogQ2xpcC1wYXRoIGN1dCBvbiB0b3AtcmlnaHQgdG8gbWF0Y2ggZ2V0LXN0YXJ0ZWQgc3R5bGUgKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSA2MHB4KSAwLCAxMDAlIDYwcHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cbi5zdC1jdGFfX2ltYWdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zdC1jdGFfX2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLnN0LWN0YV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAyLjh2dywgMi4yNXJlbSk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5zdC1jdGFfX3RleHQge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIG9wYWNpdHk6IDAuODU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLnN0LWJhbm5lcl9fYWdlbmN5IHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGNsYW1wKDIwMHB4LCA2MHZ3LCAzMjBweCk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoMTEwcHgsIDMydncsIDE4MHB4KTtcbiAgICAgICAgbWFyZ2luOiAyNHB4IGF1dG8gMDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgCBQYXJ0bmVyc2hpcHMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyog4pSA4pSAIENhcmVlcnMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uY2FyZWVycy1iYW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA1ODBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNlZWYzZmE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jYXJlZXJzLWJhbm5lciB7IG1pbi1oZWlnaHQ6IDY0MHB4OyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuY2FyZWVycy1iYW5uZXIgeyBtaW4taGVpZ2h0OiAzMDBweDsgfVxufVxuLmNhcmVlcnMtYmFubmVyX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbn1cbi5jYXJlZXJzLWJhbm5lcl9fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKSAzMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNjAlKTtcbn1cbi5jYXJlZXJzLWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNhcmVlcnMtYmFubmVyX190aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDV2dywgNHJlbSk7XG59XG5cbi8qIFNlY3Rpb24gMSDigJQgV2h5IFdvcmsgd2l0aCBVcyAoZnVsbC1ibGVlZCBpbWFnZSBsZWZ0LCBwYWRkZWQgdGV4dCByaWdodCkgKi9cbi5jYXJlZXJzLXdoeSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAwO1xufVxuLmNhcmVlcnMtd2h5ID4gLmNvbnRhaW5lci14bC5weS01IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uY2FyZWVycy13aHkgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93IHtcbiAgICAtLWJzLWd1dHRlci14OiAwO1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuLmNhcmVlcnMtd2h5ID4gLmNvbnRhaW5lci14bC5weS01ID4gLnJvdyA+IFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5jYXJlZXJzLXdoeV9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGNsaXAtcGF0aDogbm9uZTtcbn1cbi5jYXJlZXJzLXdoeV9fdGV4dCB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLmNhcmVlcnMtd2h5ID4gLmNvbnRhaW5lci14bC5weS01ID4gLnJvdyA+IC5jb2wtbGctNjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgLmNhcmVlcnMtd2h5ID4gLmNvbnRhaW5lci14bC5weS01ID4gLnJvdyA+IC5jb2wtbGctNjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjAwcHg7XG4gICAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLmNhcmVlcnMtd2h5ID4gLmNvbnRhaW5lci14bC5weS01ID4gLnJvdyA+IC5jb2wtbGctNjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZzogNDBweCAyNHB4O1xuICAgIH1cbn1cblxuLyogU2VjdGlvbiAyIOKAlCBCZW5lZml0cyAmIFBlcmtzICovXG4uY2FyZWVycy1iZW5lZml0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZjVmYTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jYXJlZXJzL0JlbmVmaXRzICYgUGVya3MtYmcuanBnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcGFkZGluZzogNDBweCAwO1xufVxuLmNhcmVlcnMtYmVuZWZpdHMgPiAuY29udGFpbmVyLXhsLnB5LTUge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDtcbn1cbi5jYXJlZXJzLWJlbmVmaXRzX19pbnRybyB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uY2FyZWVycy1iZW5lZml0c19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAxMnB4IDI4cHg7XG59XG4uY2FyZWVycy1iZW5lZml0c19fbGlzdCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMjJweDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jYXJlZXJzLWJlbmVmaXRzX19saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogOXB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5jYXJlZXJzLWJlbmVmaXRzX19pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjbGlwLXBhdGg6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuY2FyZWVycy1iZW5lZml0c19fbGlzdCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG5cbi8qIFNlY3Rpb24gMyDigJQgSG93IHRvIEFwcGx5ICovXG4uY2FyZWVycy1hcHBseSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZjRmODtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jYXJlZXJzL0hvdyB0byBBcHBseS1iZy5qcGcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiA2MHB4IDA7XG59XG4uY2FyZWVycy1hcHBseSA+IC5jb250YWluZXIteGwucHktNSB7XG4gICAgcGFkZGluZy10b3A6IDQwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50O1xufVxuLmNhcmVlcnMtYXBwbHlfX2ludHJvIHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogNzYwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmNhcmVlcnMtYXBwbHlfX3JvdyB7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgzMCwgMzAsIDYwLCAwLjA4KTtcbn1cbi5jYXJlZXJzLWFwcGx5X19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDQ4cHggNDBweCA1NnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2MHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTBlM2VkO1xufVxuLmNhcmVlcnMtYXBwbHlfX3JvdyA+IFtjbGFzcyo9XCJjb2wtXCJdOmxhc3QtY2hpbGQgLmNhcmVlcnMtYXBwbHlfX2NhcmQge1xuICAgIGJvcmRlci1yaWdodDogMDtcbn1cbi5jYXJlZXJzLWFwcGx5X19zdGVwLXBpbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI0cHg7XG4gICAgcmlnaHQ6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogI2IzZTBkNjtcbiAgICBjb2xvcjogIzAwNTM1NjtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG59XG4uY2FyZWVycy1hcHBseV9faWNvbiB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jYXJlZXJzLWFwcGx5X19iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGZpbHRlcjogYmx1cig3cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG4uY2FyZWVycy1hcHBseV9fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmNhcmVlcnMtYXBwbHlfX3RleHQge1xuICAgIGNvbG9yOiAjNGE0YTVlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLmNhcmVlcnMtYXBwbHlfX2NhcmQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlM2VkO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAzNnB4IDI4cHggNDBweDtcbiAgICB9XG4gICAgLmNhcmVlcnMtYXBwbHlfX3JvdyA+IFtjbGFzcyo9XCJjb2wtXCJdOmxhc3QtY2hpbGQgLmNhcmVlcnMtYXBwbHlfX2NhcmQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLyogU2VjdGlvbiA0IOKAlCBFeHBsb3JlIE9wcG9ydHVuaXRpZXMgKi9cbi5jYXJlZXJzLWpvYnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvY2FyZWVycy9FeHBsb3JlIE9wcG9ydHVuaXRpZXMtYmcuanBnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICNmZmY7XG59XG4uY2FyZWVycy1qb2JzX19pbnRybyB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5jYXJlZXJzLWpvYnNfX2xpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4uY2FyZWVycy1qb2JzX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDI0cHggMjhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyNHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5jYXJlZXJzLWpvYnNfX2ljb24ge1xuICAgIHdpZHRoOiA5NnB4O1xuICAgIGhlaWdodDogOTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmNhcmVlcnMtam9ic19fYm9keSB7XG4gICAgZmxleDogMSAxIDMyMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5jYXJlZXJzLWpvYnNfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG59XG4uY2FyZWVycy1qb2JzX19kZXNjIHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG4uY2FyZWVycy1qb2JzX19hcHBseSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5jYXJlZXJzLWpvYnNfX21vcmUge1xuICAgIG1hcmdpbi10b3A6IDU2cHg7XG59XG4uY2FyZWVycy1qb2JzX19tb3JlLXRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgMi40dncsIDJyZW0pO1xufVxuLmNhcmVlcnMtam9ic19fbW9yZS10ZXh0IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogODgwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmNhcmVlcnMtam9ic19fZW1haWwge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uY2FyZWVycy1qb2JzX19lbWFpbDpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EteWVsbG93KTtcbn1cblxuLyogQ29tcGFjdCBuZXdzbGV0dGVyIG9uIHRoZSBjYXJlZXJzIHBhZ2Ug4oCUIHRoZSBwcmV2aW91cyAuY2FyZWVycy1qb2JzIHNlY3Rpb25cbiAgIGlzIGFscmVhZHkgaGVhdnksIHNvIHRyaW0gdGhlIHNoYXJlZCBuZXdzbGV0dGVyJ3MgZGVlcCB0b3AgcGFkZGluZy4gKi9cbi5jYXJlZXJzLWpvYnMgKyAubmV3c2xldHRlciB7XG4gICAgcGFkZGluZy10b3A6IDgwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICAuY2FyZWVycy1qb2JzX19jYXJkIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICAuY2FyZWVycy1qb2JzX19hcHBseSB7IGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cbn1cblxuLyog4pSA4pSAIENhbmRpZGF0ZSAvIEFkbWluIExvZ2luIHBhZ2VzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmxvZ2luLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWNmMztcbiAgICBwYWRkaW5nOiAwO1xufVxuLmxvZ2luLWhlYWRlcl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xufVxuLmxvZ2luLWhlYWRlcl9fbG9nbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuLmxvZ2luLWhlYWRlcl9fbG9nbyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogVGhlIGhlYWRlciBzd2l0Y2ggYnV0dG9uIHJldXNlcyB0aGUgLmN0YS1idG4tLW9yYW5nZSB2aXN1YWwuICovXG4ubG9naW4taGVhZGVyX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4vKiBMYW5ndWFnZSBzd2l0Y2hlcjogbWluaW1hbCBnbG9iZSArIGxvY2FsZSBjb2RlLCBubyBib3JkZXIvYmFja2dyb3VuZC5cbiAgIERyb3Bkb3duIGxpc3RzIHRoZSBhdmFpbGFibGUgbG9jYWxlcyB3aXRoIGEgc21hbGwgdXBwZXJjYXNlIGNvZGUgK1xuICAgdGhlIGxhbmd1YWdlIG5hbWUuICovXG4ubG9naW4taGVhZGVyX19sYW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMTVzO1xufVxuLmxvZ2luLWhlYWRlcl9fbGFuZy1idG4gaSB7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjNmI2Yjc4O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4xNXM7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWJ0bjpob3Zlcixcbi5sb2dpbi1oZWFkZXJfX2xhbmctYnRuOmZvY3VzLFxuLmxvZ2luLWhlYWRlcl9fbGFuZy1idG5bYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWJ0bjpob3ZlciBpLFxuLmxvZ2luLWhlYWRlcl9fbGFuZy1idG46Zm9jdXMgaSxcbi5sb2dpbi1oZWFkZXJfX2xhbmctYnRuW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIGkge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWNvZGUge1xuICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2Fwcztcbn1cblxuLmxvZ2luLWhlYWRlcl9fbGFuZy1tZW51IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2VjZjM7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgyMCwgMzAsIDYwLCAwLjEwKTtcbn1cbi5sb2dpbi1oZWFkZXJfX2xhbmctaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmxvZ2luLWhlYWRlcl9fbGFuZy1pdGVtOmhvdmVyLFxuLmxvZ2luLWhlYWRlcl9fbGFuZy1pdGVtOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmOGZlO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmxvZ2luLWhlYWRlcl9fbGFuZy1jb2RlLW1pbmkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6IDI4cHg7XG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICM2YjZiNzg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmxvZ2luLWhlYWRlcl9fbGFuZy1pdGVtLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmxvZ2luLWhlYWRlcl9fbGFuZy1pdGVtLmlzLWFjdGl2ZSAubG9naW4taGVhZGVyX19sYW5nLWNvZGUtbWluaSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cblxuLmxvZ2luLWFydGljbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5sb2dpbi1hcnRpY2xlX19sZWZ0IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA0MHB4IDI0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U2RjNGOTtcbn1cbi5sb2dpbi1hcnRpY2xlX19yaWdodCB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b3NhLWxpZ2h0LWJsdWUpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWluLWhlaWdodDogMzIwcHg7XG59XG5cbi5sb2dpbi1mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5sb2dpbi1mb3JtX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjYyNXJlbSwgMi40dncsIDIuMTI1cmVtKTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luOiAwIDAgMjhweDtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmxvZ2luLWZvcm1fX2dyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLmxvZ2luLWZvcm1fX2dyb3VwLS1wYXNzd29yZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmxvZ2luLWZvcm1fX2lucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzU1NTU1OTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5sb2dpbi1mb3JtX19ncm91cC0tcGFzc3dvcmQgLmxvZ2luLWZvcm1fX2lucHV0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xufVxuLmxvZ2luLWZvcm1fX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAuMjVyZW0gcmdiYSgxMywgMTEwLCAyNTMsIDAuMjUpO1xufVxuLmxvZ2luLWZvcm1fX3RvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICM1NTU1NTk7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDRweDtcbn1cbi5sb2dpbi1mb3JtX190b2dnbGU6aG92ZXIgeyBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpOyB9XG5cbi5sb2dpbi1mb3JtX19yZW1lbWJlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG5cbi5sb2dpbi1mb3JtX19sb3N0cGFzc3dvcmQsXG4ubG9naW4tZm9ybV9faGVscGxvZ2luIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5sb2dpbi1mb3JtX19sb3N0cGFzc3dvcmQ6aG92ZXIsXG4ubG9naW4tZm9ybV9faGVscGxvZ2luOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuXG4ubG9naW4tZm9ybV9fc3VibWl0IHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5sb2dpbi1hcnRpY2xlLS1jYW5kaWRhdGUgLmxvZ2luLWZvcm1fX3N1Ym1pdCB7XG4gICAgYmFja2dyb3VuZDogI0Q2M0QwQTtcbn1cblxuLmxvZ2luLWZvcm1fX2Vycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEuMmVtO1xuICAgIG1hcmdpbjogMTZweCAwIDA7XG59XG5cbi5sb2dpbi1mb3JtX19zdWNjZXNzIHtcbiAgICBjb2xvcjogIzFjN2MzYztcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBtaW4taGVpZ2h0OiAxLjJlbTtcbiAgICBtYXJnaW46IDhweCAwIDA7XG59XG5cbiNsb3N0LXBhc3N3b3JkLW1vZGFsIC5sb2dpbi1mb3JtX19lcnJvcixcbiNsb3N0LXBhc3N3b3JkLW1vZGFsIC5sb2dpbi1mb3JtX19zdWNjZXNzIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAubG9naW4tYXJ0aWNsZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5sb2dpbi1hcnRpY2xlX19sZWZ0LFxuICAgIC5sb2dpbi1hcnRpY2xlX19yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5sb2dpbi1hcnRpY2xlX19yaWdodCB7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgaGVpZ2h0OiAyMjBweDtcbiAgICB9XG4gICAgLmxvZ2luLWFydGljbGVfX2xlZnQge1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDI0cHggNjBweDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgCBXaG8gV2UgQXJlIHBhZ2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uc2VjdGlvbi10aXRsZS0taW52ZXJzZSB7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU2FtcGxlIFRlc3RzIG1vZGFsIOKAlCBwb3NpdGlvbmluZyB0ZXN0cyBjYXRhbG9nIG9wZW5lZCBmcm9tIHRoZSBtZW51YmFyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zYW1wbGUtdGVzdHMtbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogT3ZlcnJpZGUgQm9vdHN0cmFwJ3MgbW9kYWwgcmFkaXVzIGN1c3RvbSBwcm9wZXJ0aWVzIHNvIHRoZSBjb3JuZXJzXG4gICAgICAgc3RheSByZWN0YW5ndWxhciwgY29uc2lzdGVudCB3aXRoIHRoZSByZXN0IG9mIHRoZSBuZXcgZGVzaWduLiAqL1xuICAgIC0tYnMtbW9kYWwtYm9yZGVyLXJhZGl1czogMDtcbiAgICAtLWJzLW1vZGFsLWlubmVyLWJvcmRlci1yYWRpdXM6IDA7XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsIC5tb2RhbC1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbCAubW9kYWwtYm9keSB7XG4gICAgcGFkZGluZzogMS41cmVtO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbCBoNiB7XG4gICAgY29sb3I6ICM1NTU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbn1cbi5zYW1wbGUtdGVzdHMtbW9kYWxfX2l0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICAgIGNvbG9yOiAjMWExYTFhO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbF9faXRlbTpob3Zlcixcbi5zYW1wbGUtdGVzdHMtbW9kYWxfX2l0ZW06Zm9jdXMtdmlzaWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5zYW1wbGUtdGVzdHMtbW9kYWxfX2l0ZW0uaXMtbG9hZGluZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbF9faWNvbiB7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4O1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbF9faWNvbiBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsX19pY29uIGkge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5zYW1wbGUtdGVzdHMtbW9kYWxfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBGQVFzIHBhZ2UgKHRlbXBsYXRlcy9wYWdlcy9mYXFzLmh0bWwudHdpZylcbiAgIExpZ2h0IGhlcm8gd2l0aCB0aXRsZSArIHNlYXJjaCBiYXIsIGZvbGxvd2VkIGJ5IHdoaXRlIGFjY29yZGlvbiBjYXJkc1xuICAgZ3JvdXBlZCBieSBjYXRlZ29yeS4gVGhlIGFjdGl2ZSBpdGVtIGdldHMgYSBibHVlIHRvcCBhY2NlbnQuXG4gICBQcmVmaXggYGZwYCA9IFwiRkFRcyBQYWdlXCIg4oCUIGtlZXBzIGl0IGlzb2xhdGVkIGZyb20gdGhlIGRhcmsgYC5mYXFgXG4gICBibG9jayByZXVzZWQgaW5zaWRlIG9ubGluZS1zdG9yZSBldGMuXG4gICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5mcC1oZXJvIHtcbiAgICAvKiBMaWdodCBiYW5uZXIgKHNhbWUgcGFsZXR0ZSBhcyAubHAtYmFubmVyKSBzbyB0aGUgaGVybyBzdGFuZHMgb3V0XG4gICAgICAgZnJvbSB0aGUgd2hpdGUgY29udGVudCBhbmQgdGhlIHNlYXJjaCBiYXIgcG9wcy4gKi9cbiAgICBiYWNrZ3JvdW5kOiAjZWFmM2ZiO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGJlNWVlO1xuICAgIHBhZGRpbmc6IDQwcHggMCAzMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG4uZnAtaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43NXJlbSwgMS4ycmVtICsgMi40dncsIDIuNzVyZW0pO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuLmZwLWhlcm9fX3NlYXJjaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDA7XG4gICAgbWF4LXdpZHRoOiA1NjBweDtcbiAgICBtYXJnaW46IDhweCBhdXRvIDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIC4wOCk7XG59XG4uZnAtaGVyb19fc2VhcmNoLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxO1xufVxuLmZwLWhlcm9fX3NlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTRweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmZwLWhlcm9fX3NlYXJjaC1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDEwcHggMTRweCAxMHB4IDM4cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLmZwLWhlcm9fX3NlYXJjaC1pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLmZwLWhlcm9fX3NlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOWFhMWFkO1xufVxuLmZwLWhlcm9fX3NlYXJjaC1idG4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgcGFkZGluZzogMCAyOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgLyogVG9wLXJpZ2h0IGNoYW1mZXIg4oCUIG1hdGNoZXMgdGhlIGN0YS1idG4gLyBwYWNrLWNoZWNrb3V0IHBhdHRlcm4uICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uZnAtaGVyb19fc2VhcmNoLWJ0bi1pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAvKiBUaGUgYXNzZXQgaXMgZGFyayBieSBkZWZhdWx0IOKAlCBpbnZlcnQgaXQgc28gaXQgcmVhZHMgb24gdGhlIG9yYW5nZSBiZy4gKi9cbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xufVxuLmZwLWhlcm9fX3NlYXJjaC1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNkODNhMDQ7XG59XG5cbi8qIEFjY29yZGlvbiBsaXN0ICovXG4uZnAtbGlzdCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5mcC1saXN0X19lbXB0eSB7XG4gICAgcGFkZGluZzogNDhweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5mcC1jYXQge1xuICAgIG1heC13aWR0aDogODgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy10b3A6IDMycHg7XG59XG4uZnAtY2F0X190aXRsZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7XG59XG5cbi8qIEVhY2ggaXRlbTogd2hpdGUgY2FyZCwgc29mdCBib3JkZXIsIGhvdmVyIGxpZnQsIGJsdWUgdG9wIGFjY2VudCB3aGVuIG9wZW4gKi9cbi5mcC1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTtcbiAgICAvKiBSZXNldCBCb290c3RyYXAncyBhY2NvcmRpb24gcmFkaXVzIHZhcmlhYmxlcyBzbyBmaXJzdC9sYXN0IGl0ZW1zXG4gICAgICAgZG9uJ3QgcGljayB1cCByb3VuZGVkIGNvcm5lcnMgZnJvbSB0aGUgZGVmYXVsdCB0aGVtZS4gKi9cbiAgICAtLWJzLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzOiAwO1xuICAgIC0tYnMtYWNjb3JkaW9uLWlubmVyLWJvcmRlci1yYWRpdXM6IDA7XG59XG4uZnAtaXRlbTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2JkNWUxO1xufVxuLmZwLWl0ZW06aGFzKC5mcC1pdGVtX19idG46bm90KC5jb2xsYXBzZWQpKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSg2OSwgNjksIDIxOSwgMC4wOCk7XG59XG4vKiBCb290c3RyYXAgcmVtb3ZlcyB0b3AgYm9yZGVyIGJldHdlZW4gc3RhY2tlZCBpdGVtcyDigJQgd2Ugd2FudCBldmVyeSBjYXJkXG4gICBpbmRlcGVuZGVudGx5IGJvcmRlcmVkLCBzbyByZS1lc3RhYmxpc2ggaXQuICovXG4uZnAtaXRlbTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTdlYjtcbn1cbi5mcC1pdGVtOmhhcyguZnAtaXRlbV9fYnRuOm5vdCguY29sbGFwc2VkKSk6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXRvc2EtYmx1ZSk7XG59XG5cbi5mcC1pdGVtX19idG4ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcGFkZGluZzogMThweCA1NnB4IDE4cHggMjJweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZnAtaXRlbV9fYnRuOm5vdCguY29sbGFwc2VkKSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLmZwLWl0ZW1fX2J0bjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogUmVwbGFjZSBCb290c3RyYXAncyBjaGV2cm9uIHdpdGggYSArIC8g4oiSIGNoYXJhY3RlciBpbiB0b3NhIG9yYW5nZS4gKi9cbi5mcC1pdGVtX19idG46OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyMnB4O1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0wLjU1cmVtO1xufVxuLmZwLWl0ZW1fX2J0bjpub3QoLmNvbGxhcHNlZCk6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIuKIklwiOyAvKiBVKzIyMTIgbWludXMgc2lnbiAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4uZnAtaXRlbV9fYSB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgcGFkZGluZzogMCAyMnB4IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG4uZnAtaXRlbV9fYSBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gICAgLmZwLWhlcm9fX3NlYXJjaCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLmZwLWhlcm9fX3NlYXJjaC13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE1LCAyMywgNDIsIC4wOCk7XG4gICAgfVxuICAgIC5mcC1oZXJvX19zZWFyY2gtYnRuIHtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICB9XG59XG5cbi8qIEZBUSDigJQgdG9waWMgZ3JpZCAodGhlIGxhbmRpbmcgXCJzb21tYWlyZVwiKSAqL1xuLmZwLXRvYyB7XG4gICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMjRweDtcbn1cbi5mcC10b2NfX2ludHJvIHtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbn1cbi5mcC10b2NfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpO1xuICAgIGdhcDogMTZweDtcbn1cbi5mcC10b2NfX2NhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAyMHB4IDIycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2U7XG59XG4uZnAtdG9jX19jYXJkOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDY5LCA2OSwgMjE5LCAwLjEpO1xufVxuLmZwLXRvY19fbnVtIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4uZnAtdG9jX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4uZnAtdG9jX19jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuLmZwLXRvY19fY291bnQge1xuICAgIGNvbG9yOiAjOWFhMWFkO1xuICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbn1cbi5mcC10b2NfX2Fycm93IHtcbiAgICBjb2xvcjogI2NiZDVlMTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cbi5mcC10b2NfX2NhcmQ6aG92ZXIgLmZwLXRvY19fYXJyb3cge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7XG59XG5cbi8qIEZBUSDigJQgc2VjdGlvbiB0b29sYmFyIChiYWNrIGxpbmsgKyBzZWN0aW9uIHNlbGVjdG9yKSAqL1xuLmZwLXRvb2xiYXIge1xuICAgIG1heC13aWR0aDogODgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gOHB4O1xuICAgIHBhZGRpbmctdG9wOiAyNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5mcC10b29sYmFyX19iYWNrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZwLXRvb2xiYXJfX2JhY2s6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uZnAtdG9vbGJhcl9fc2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuLmZwLXRvb2xiYXJfX2xhYmVsIHtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBtYXJnaW46IDA7XG59XG4uZnAtdG9vbGJhcl9fc2VsZWN0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtaW4td2lkdGg6IDI0MHB4O1xufVxuLmZwLXRvb2xiYXJfX3NlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyNDEsIDczLCAxNiwgMC4xNSk7XG59XG5cbi8qIEZBUSDigJQgcmVsYXRlZCBsaW5rcyBpbnNpZGUgYW4gYW5zd2VyICovXG4uZnAtaXRlbV9fbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZjBmNDtcbn1cbi8qIFNjb3BlZCB1bmRlciAuZnAtaXRlbV9fYSB0byBiZWF0IHRoZSBnZW5lcmljIGAuZnAtaXRlbV9fYSBhYCBibHVlIHJ1bGUuICovXG4uZnAtaXRlbV9fYSAuZnAtaXRlbV9fbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmZwLWl0ZW1fX2EgLmZwLWl0ZW1fX2xpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZDYzZDA5O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmZwLWl0ZW1fX2xpbmsgLmJpIHtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG59XG5cbi8qIFtoaWRkZW5dIG11c3Qgd2luIG92ZXIgQm9vdHN0cmFwJ3MgYWNjb3JkaW9uL2ZsZXggZGlzcGxheSB2YWx1ZXMuICovXG4uZnAtdG9jW2hpZGRlbl0sXG4uZnAtdG9vbGJhcltoaWRkZW5dLFxuLmZwLWNhdFtoaWRkZW5dLFxuLmZwLWl0ZW1baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuZnAtdG9vbGJhcixcbiAgICAuZnAtdG9vbGJhcl9fc2VsZWN0b3Ige1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG4gICAgLmZwLXRvb2xiYXJfX3NlbGVjdCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4vKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFNjb3JlIENoZWNrZXIgbW9kYWwgKHRlbXBsYXRlcy9tb2RhbHMvY2hlY2tfZGlwbG9tYS5odG1sLnR3aWcpXG4gICBTdHJpY3QgcmVjdGFuZ3VsYXIgbG9vayDigJQgbm8gYm9yZGVyLXJhZGl1cyBhbnl3aGVyZSDigJQgdG8gbWF0Y2ggdGhlXG4gICBGQVFzIHBhZ2UgdHJlYXRtZW50LlxuICAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uY2hlY2stc2NvcmUtbW9kYWxfX2NvbnRlbnQge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgLS1icy1tb2RhbC1ib3JkZXItcmFkaXVzOiAwO1xuICAgIC0tYnMtbW9kYWwtaW5uZXItYm9yZGVyLXJhZGl1czogMDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9faGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19jbG9zZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYm9keSB7XG4gICAgcGFkZGluZzogMjRweDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9faW50cm8ge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19mb3JtIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDE2cHg7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2ZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogbGFiZWxzIG9mIHVuZXF1YWwgaGVpZ2h0OiBrZWVwIGJvdGggaW5wdXRzIG9uIHRoZSBzYW1lIGxpbmUgKi9cbiAgICBnYXA6IDZweDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9faW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19hbGVydCB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYWxlcnQtLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICNlY2ZkZjU7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzRkMzk5O1xuICAgIGNvbG9yOiAjMDY1ZjQ2O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYWxlcnQtLWVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmMmYyO1xuICAgIGJvcmRlci1jb2xvcjogI2ZjYTVhNTtcbiAgICBjb2xvcjogIzk5MWIxYjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYWxlcnQgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2JhZGdlLXdyYXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19iYWRnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAzMjBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2Zvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gICAgZ2FwOiAxMnB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19idG4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYnRuLS1naG9zdCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYnRuLS1naG9zdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YzZjRmNjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYnRuLS1vcmFuZ2Uge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAvKiBUb3AtcmlnaHQgY2hhbWZlciB0byBtYXRjaCB0aGUgRkFRcyBTZWFyY2ggYnV0dG9uICsgdGhlIG90aGVyIENUQXMuICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2J0bi0tb3JhbmdlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDgzYTA0O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19idG46ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuY2hlY2stc2NvcmUtbW9kYWxfX2Zvcm0ge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgTGVnYWwgcGFnZXMg4oCUIFByaXZhY3kgUG9saWN5ICsgVGVybXMgb2YgU2VydmljZVxuICAgKHRlbXBsYXRlcy9wYWdlcy9wcml2YWN5X3BvbGljeS5odG1sLnR3aWcgKyB0ZXJtc19vZl9zZXJ2aWNlLmh0bWwudHdpZylcbiAgIEJhbm5lciB0b3AsIHNpbmdsZS1jb2x1bW4gbG9uZy1mb3JtIGNvbnRlbnQuIFN0cmljdCByZWN0YW5ndWxhciBsb29rIOKAlFxuICAgbm8gYm9yZGVyLXJhZGl1cyDigJQgdG8gbWF0Y2ggdGhlIEZBUXMgLyBTY29yZSBDaGVja2VyIHRyZWF0bWVudC5cbiAgIFByZWZpeCBgbHBgID0gTGVnYWwgUGFnZS5cbiAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmxwLWJhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkYmU1ZWU7XG4gICAgcGFkZGluZzogNTZweCAwO1xufVxuLmxwLWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuLmxwLWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMS40cmVtICsgMi40dncsIDNyZW0pO1xuICAgIG1hcmdpbjogMDtcbn1cbi5scC1iYW5uZXJfX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogIzViNjQ3ODtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbWFyZ2luOiAxMnB4IDAgMDtcbn1cblxuLmxwLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4ubHAtYXJ0aWNsZSB7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjb2xvcjogIzFmMjkzNztcbiAgICBsaW5lLWhlaWdodDogMS43O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5scC1hcnRpY2xlIHAge1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG59XG4ubHAtYXJ0aWNsZSBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmxwLWFydGljbGUgYTpob3ZlciB7XG4gICAgY29sb3I6ICNkNjNkMDk7XG59XG4ubHAtYXJ0aWNsZV9fbGVkZSB7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGNvbG9yOiAjMzc0MTUxO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG59XG4ubHAtYXJ0aWNsZV9faDIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiA0MHB4IDAgMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgc2Nyb2xsLW1hcmdpbi10b3A6IDEwMHB4O1xufVxuLmxwLWFydGljbGVfX2gzIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMjhweCAwIDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogNHB4O1xufVxuLmxwLWFydGljbGVfX2g0IHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMjJweCAwIDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG4ubHAtYXJ0aWNsZV9fbGlzdCB7XG4gICAgbWFyZ2luOiAwIDAgMThweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG59XG4ubHAtYXJ0aWNsZV9fbGlzdCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmxwLWFydGljbGVfX2xpc3QgbGk6Om1hcmtlciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5scC1hcnRpY2xlX19jb250YWN0IHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNWY5O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY29sb3I6ICMzNzQxNTE7XG59XG4vKiBJbmxpbmUgbm90ZSAvIGNhdmVhdCBjYWxsb3V0IChlLmcuIFwiTWFjIHVzZXJz4oCmXCIsIFwiQWRvYmUgd2ViIGFwcOKAplwiKS4gKi9cbi5scC1hcnRpY2xlX19ub3RlIHtcbiAgICBtYXJnaW46IDhweCAwIDI0cHg7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjMzc0MTUxO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogVGFibGVzIChkYXRhIGNhdGVnb3J5IGJyZWFrZG93biBpbiBQcml2YWN5IFBvbGljeSkuICovXG4ubHAtYXJ0aWNsZV9fdGFibGUtd3JhcCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXJnaW46IDhweCAwIDI0cHg7XG59XG4ubHAtYXJ0aWNsZV9fdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmxwLWFydGljbGVfX3RhYmxlIHRoLFxuLmxwLWFydGljbGVfX3RhYmxlIHRkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLmxwLWFydGljbGVfX3RhYmxlIHRoZWFkIHRoIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ubHAtYXJ0aWNsZV9fdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4ubHAtYXJ0aWNsZSBjb2RlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIHBhZGRpbmc6IDAuMWVtIDAuNGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDAuODc1ZW07XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgQVBJIGVycm9yIGJhbm5lciDigJQgdXNlZCBieSBvbmxpbmUtc3RvcmUgKyBjZXJ0aWZpY2F0aW9uIHdoZW4gdGhlIElzb2dyYWRcbiAgIEFQSSBpcyBkb3duLiBUaGUgXCJFbWFpbCBTdXBwb3J0XCIgQ1RBIG9wZW5zIGEgcHJlLWZpbGxlZCBtYWlsdG8gc28gdGhlXG4gICBzdXBwb3J0IHRlYW0gZ2V0cyB0aGUgZmFpbGluZyBhY3RfaWQsIHBhcmFtcyBhbmQgZXhjZXB0aW9uIGluIG9uZSBjbGljay5cbiAgIFJlY3Rhbmd1bGFyLCBubyBib3JkZXItcmFkaXVzLlxuICAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYXBpLWVycm9yLWJhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjdlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDE4cHggMjJweDtcbiAgICBtYXJnaW46IDAgYXV0byAyNHB4O1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgY29sb3I6ICMxZjI5Mzc7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9faWNvbiB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX2JvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5hcGktZXJyb3ItYmFubmVyX190aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgNHB4O1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3RleHQge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX2RldGFpbHMge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5hcGktZXJyb3ItYmFubmVyX19kZXRhaWxzIHN1bW1hcnkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX2RldGFpbHMgc3VtbWFyeTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9fcGFyYW1zIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVkN2FhO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3BhcmFtcyBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3BhcmFtcyBsaTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3BhcmFtcyBjb2RlIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2O1xuICAgIHBhZGRpbmc6IDFweCA0cHg7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9fY3RhIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5hcGktZXJyb3ItYmFubmVyX19idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgLyogVG9wLXJpZ2h0IGNoYW1mZXIgbWF0Y2hpbmcgdGhlIG90aGVyIENUQXMuICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9fYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDgzYTA0O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuYXBpLWVycm9yLWJhbm5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cbiAgICAuYXBpLWVycm9yLWJhbm5lcl9fY3RhIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgQ2hlY2tvdXQgc2lnbnVwIG1vZGFsICh0ZW1wbGF0ZXMvbW9kYWxzL2NoZWNrb3V0X3NpZ251cC5odG1sLnR3aWcpXG4gICBUd28gY29sdW1uczogU2lnbiB1cCAobGVmdCkgKyBTaWduIGluIChyaWdodCkuIFJlY3Rhbmd1bGFyIGxheW91dFxuICAgdG8gbWF0Y2ggdGhlIEZBUXMgLyBTY29yZSBDaGVja2VyIC8gQVBJIGJhbm5lciB0cmVhdG1lbnQuXG4gICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jaGVja291dC1tb2RhbF9fY29udGVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAtLWJzLW1vZGFsLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLS1icy1tb2RhbC1pbm5lci1ib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrb3V0LW1vZGFsX19oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrb3V0LW1vZGFsX190aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2Nsb3NlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrb3V0LW1vZGFsX19ib2R5IHtcbiAgICBwYWRkaW5nOiAyOHB4IDMycHggMzJweDtcbn1cbi5jaGVja291dC1tb2RhbF9faW50cm8ge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG8gMjRweDtcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xufVxuLmNoZWNrb3V0LW1vZGFsX19jb2xzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2NvbCB7XG4gICAgcGFkZGluZzogMjhweDtcbn1cbi5jaGVja291dC1tb2RhbF9fY29sICsgLmNoZWNrb3V0LW1vZGFsX19jb2wtLXJpZ2h0IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU3ZWI7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2NvbC10aXRsZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuLmNoZWNrb3V0LW1vZGFsX19jb2wtaW50cm8ge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbjogMCAwIDE4cHg7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2Zvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jaGVja291dC1tb2RhbF9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cbi5jaGVja291dC1tb2RhbF9fcGFzc3dvcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jaGVja291dC1tb2RhbF9fcGFzc3dvcmQgLmNoZWNrb3V0LW1vZGFsX19pbnB1dCB7XG4gICAgcGFkZGluZy1yaWdodDogNDJweDtcbn1cbi5jaGVja291dC1tb2RhbF9fcGFzc3dvcmQtdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNoZWNrb3V0LW1vZGFsX19wYXNzd29yZC10b2dnbGU6aG92ZXIge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuLmNoZWNrb3V0LW1vZGFsX19pbnB1dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cbi5jaGVja291dC1tb2RhbF9faW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2xpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuLmNoZWNrb3V0LW1vZGFsX19saW5rOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5jaGVja291dC1tb2RhbF9fbGluay0tcmlnaHQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuLmNoZWNrb3V0LW1vZGFsX19zdWJtaXQtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5jaGVja291dC1tb2RhbF9fc3VibWl0LWJ0bi0tb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgLyogVG9wLXJpZ2h0IGNoYW1mZXIgbWF0Y2hpbmcgdGhlIHJlc3Qgb2YgdGhlIENUQXMuICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uY2hlY2tvdXQtbW9kYWxfX3N1Ym1pdC1idG4tLW9yYW5nZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Q4M2EwNDtcbn1cbi5jaGVja291dC1tb2RhbF9fc3VibWl0LWJ0bi0tZ2hvc3Qge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uY2hlY2tvdXQtbW9kYWxfX3N1Ym1pdC1idG4tLWdob3N0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmM2ZmO1xufVxuLmNoZWNrb3V0LW1vZGFsX19jYW5kaWRhdGUtbGluayB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2NhbmRpZGF0ZS1saW5rIGEge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiBJbmxpbmUgc3RhdHVzIGJhbm5lciAoc3VjY2VzcyAvIGVycm9yIC8gaW5mbykgc2hvd24gdW5kZXIgdGhlIHR3b1xuICAgY29sdW1ucyB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIHNpZ24tdXAgb3Igc2lnbi1pbiBmb3JtLiAqL1xuLmNoZWNrb3V0LW1vZGFsX19hbGVydCB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2FsZXJ0LS1lcnJvciB7XG4gICAgYmFja2dyb3VuZDogI2ZlZjJmMjtcbiAgICBib3JkZXItY29sb3I6ICNmY2E1YTU7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2FsZXJ0LS1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWZmNmZmO1xuICAgIGJvcmRlci1jb2xvcjogIzkzYzVmZDtcbiAgICBjb2xvcjogIzFlM2E4YTtcbn1cbi5jaGVja291dC1tb2RhbF9fYWxlcnQtLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICNlY2ZkZjU7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzRkMzk5O1xuICAgIGNvbG9yOiAjMDY1ZjQ2O1xufVxuLmNoZWNrb3V0LW1vZGFsX19hbGVydCBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmNoZWNrb3V0LW1vZGFsX19jb2wgKyAuY2hlY2tvdXQtbW9kYWxfX2NvbC0tcmlnaHQge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgfVxuICAgIC5jaGVja291dC1tb2RhbF9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgfVxufVxuXG4vKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEJ1bmRsZSBwYWdlcyAoR29vZ2xlIFdvcmtzcGFjZSAvIE1pY3Jvc29mdCBPZmZpY2UgLyBBZG9iZSBHcmFwaGljIC9cbiAgIEFkb2JlIFZpc3VhbCkuIE9uZSB0ZW1wbGF0ZSwgNCB0aGVtZXMg4oCUIGJhbm5lciBjb2xvciBpcyBzZXQgaW5saW5lXG4gICBmcm9tIHRoZSBjb250cm9sbGVyIGNvbmZpZyBzbyB3ZSBkb24ndCBuZWVkIDQgbmVhcmx5LWlkZW50aWNhbFxuICAgc3R5bGVzaGVldHMuIFBlci10aGVtZSBhY2NlbnRzIChjZXJ0IGNhcmQgYmFuZCkgbGl2ZSBiZWxvdy5cbiAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJ1bmRsZV9fYmFubmVyIHtcbiAgICBwYWRkaW5nOiA1NnB4IGNsYW1wKDE2cHgsIDR2dywgNjRweCk7XG59XG4uYnVuZGxlX190aXRsZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjc1cmVtLCAxLjJyZW0gKyAyLjR2dywgMi43NXJlbSk7XG4gICAgbWFyZ2luOiAwO1xufVxuLmJ1bmRsZV9fYmFubmVyLWxvZ28ge1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogMi1jb2wgbGF5b3V0OiBzdGlja3kgc2lkZWJhciArIHNjcm9sbGFibGUgbWFpbiAqL1xuLmJ1bmRsZS1wYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9idW5kbGVzL2JnLTAxLmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG4vKiBGdWxsLXdpZHRoIGNvbnRhaW5lciBzY29wZWQgdG8gYnVuZGxlIHBhZ2VzIG9ubHkg4oCUIGxlYXZlcyB0aGUgZ2xvYmFsXG4gICAuY29udGFpbmVyLXhsIHVudG91Y2hlZCAoaGVhZGVyLCBmb290ZXIsIG90aGVyIHBhZ2VzIGtlZXAgMTE0MHB4KS4gKi9cbi5idW5kbGUtcGFnZSAuY29udGFpbmVyLXhsIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiBjbGFtcCgxNnB4LCA0dncsIDY0cHgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNsYW1wKDE2cHgsIDR2dywgNjRweCk7XG59XG4uYnVuZGxlLXBhZ2VfX21haW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLmJ1bmRsZS1zaWRlIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogODhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4O1xufVxuXG4uYnVuZGxlLXNpZGVfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMzAsIDMwLCA2MCwgMC4wNik7XG4gICAgcGFkZGluZzogMjJweCAyNHB4O1xufVxuXG4uYnVuZGxlLXNpZGVfX2NhcmQtdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlM2U0ZWY7XG59XG5cbi5idW5kbGUtc2lkZV9fbGluay1saXN0LFxuLmJ1bmRsZS1zaWRlX19idWxsZXQtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cbi5idW5kbGUtc2lkZV9fbGluay1saXN0IGxpLFxuLmJ1bmRsZS1zaWRlX19idWxsZXQtbGlzdCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDZweCAwIDZweCAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cbi5idW5kbGUtc2lkZV9fbGluay1saXN0IGxpOjpiZWZvcmUsXG4uYnVuZGxlLXNpZGVfX2J1bGxldC1saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oC6XCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1cHg7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi5idW5kbGUtc2lkZV9fbGluay1saXN0IGEge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uYnVuZGxlLXNpZGVfX2xpbmstbGlzdCBhOmhvdmVyIHsgY29sb3I6ICNkNjNkMDk7IH1cblxuLmJ1bmRsZS1zaWRlX19zdWItbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbn1cbi5idW5kbGUtc2lkZV9fc3ViLWxpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAycHggMCAycHggMTRweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBjb2xvcjogIzRiNTU2Mztcbn1cbi5idW5kbGUtc2lkZV9fc3ViLWxpc3QgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigKJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMnB4O1xuICAgIHRvcDogMXB4O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4uYnVuZGxlLXNpZGVfX2xhbmctcGlsbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuLmJ1bmRsZS1zaWRlX19sYW5nLXBpbGwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWRhZTY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi8qIC5jdGEtYnRuIGlzIG5vd3JhcCBieSBkZWZhdWx0IOKAlCB3cmFwIGxvbmcgbGFiZWxzIGluc2lkZSB0aGUgbmFycm93IHNpZGViYXIgY29sdW1uLiAqL1xuLmJ1bmRsZS1zaWRlX19jdGEge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuYnVuZGxlLXNpZGUge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgIH1cbiAgICAuYnVuZGxlLXBhZ2VfX21haW4ge1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbi8qIFZhbGlkYXRlIE1hc3RlcnkgKi9cbi5idW5kbGUtbWFzdGVyeSB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5idW5kbGUtbWFzdGVyeV9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMy41dncsIDIuNzVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuLmJ1bmRsZS1tYXN0ZXJ5X19pbnRybyB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uYnVuZGxlLXByb2R1Y3Qge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDgpO1xuICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLmJ1bmRsZS1wcm9kdWN0X19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYnVuZGxlLXByb2R1Y3RfX2ljb24gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmJ1bmRsZS1wcm9kdWN0X19uYW1lIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmJ1bmRsZS1wcm9kdWN0X19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLmJ1bmRsZS1wcm9kdWN0X19saW5rOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogQ3JlZGVudGlhbCBSZXF1aXJlbWVudHMgKi9cbi5idW5kbGUtcmVxcyB7IGJhY2tncm91bmQ6ICNmOGZhZmM7IH1cbi5idW5kbGUtcmVxc19fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMy41dncsIDIuNzVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuLmJ1bmRsZS1yZXFzX19pbnRybyB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDgyMHB4O1xufVxuLmJ1bmRsZS1yZXFzX190aWVyLXRpdGxlIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ1bmRsZS1yZXFzX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMzc0MTUxO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43O1xufVxuLmJ1bmRsZS1yZXFzX19saXN0IGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmJ1bmRsZS1yZXFzX19saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICfigLonO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyogTGV2ZWwgc3VtbWFyeSBjYXJkcyAoRXhwZXJpZW5jZWQgKyBQcm9mZXNzaW9uYWwgd2l0aCBhbmltYXRlZCBpY29ucykgKi9cbi5idW5kbGUtbGV2ZWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuLmJ1bmRsZS1sZXZlbHNfX2NhcmQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDFmcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgzMCwgMzAsIDYwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHg7XG59XG4uYnVuZGxlLWxldmVsc19faWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uYnVuZGxlLWxldmVsc19fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBtYXJnaW46IDAgMCA2cHg7XG59XG4uYnVuZGxlLWxldmVsc19fdGV4dCB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIENlcnQgY2FyZHMgKEV4cGVyaWVuY2VkICsgUHJvZmVzc2lvbmFsKSAqL1xuLmJ1bmRsZS1jZXJ0IHsgYmFja2dyb3VuZDogI2ZmZjsgfVxuLmJ1bmRsZS1jZXJ0LS1leHBlcmllbmNlZCB7IGJhY2tncm91bmQ6ICNmOGZhZmM7IH1cbi5idW5kbGUtY2VydF9faGVhZGluZyB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59XG4uYnVuZGxlLWNlcnRfX2ludHJvIHtcbiAgICBjb2xvcjogIzRiNTU2MztcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogODIwcHg7XG59XG4uYnVuZGxlLWNlcnRfX2NhcmQge1xuICAgIG1heC13aWR0aDogNTQwcHg7XG4gICAgbWFyZ2luOiAyNHB4IGF1dG8gMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idW5kbGUtY2VydF9fc2FtcGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMjRweCBhdXRvIDA7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjRweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDgpO1xufVxuLmJ1bmRsZS1jZXJ0X19jYXJkLWJhbmQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTRweCAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYnVuZGxlLWNlcnRfX2NhcmQtYmFuZC0tcHJvIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uYnVuZGxlLWNlcnRfX2NhcmQtYm9keSB7XG4gICAgcGFkZGluZzogMzZweCAyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG4uYnVuZGxlLWNlcnRfX2NhcmQtbmFtZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59XG4uYnVuZGxlLWNlcnRfX2NhcmQtdGllciB7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbn1cblxuLyogU2tpbGxzIEJhZGdlcyB3aXRoIENyZWRseSAqL1xuLmJ1bmRsZS1iYWRnZXMgeyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4uYnVuZGxlLWJhZGdlc19fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuLmJ1bmRsZS1iYWRnZXNfX2ludHJvIHtcbiAgICBjb2xvcjogIzRiNTU2MztcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogODIwcHg7XG59XG4uYnVuZGxlLWJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDI0cHggMjJweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbn1cbi5idW5kbGUtYmFkZ2VfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG4uYnVuZGxlLWJhZGdlX19saW5rOmhvdmVyIC5idW5kbGUtYmFkZ2VfX2xhYmVsIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5idW5kbGUtYmFkZ2VfX2ltZyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiA5NnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uYnVuZGxlLWJhZGdlX19sYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi8qIFN0YWNrYWJsZSBDcmVkZW50aWFscyAqL1xuLmJ1bmRsZS1zdGFja19fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMy41dncsIDIuNzVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuLmJ1bmRsZS1zdGFja19faW50cm8ge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA4MjBweDtcbn1cbi5idW5kbGUtc3RhY2tfX2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA5NDBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qIEFsaWduZWQgT2NjdXBhdGlvbnMgKi9cbi5idW5kbGUtam9ic19fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMy41dncsIDIuNzVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuLmJ1bmRsZS1qb2JzX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbHVtbnM6IDI7XG4gICAgY29sdW1uLWdhcDogNDhweDtcbn1cbi5idW5kbGUtam9ic19fbGlzdCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDhweCAwIDhweCAyNHB4O1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBjb2xvcjogIzFmMjkzNztcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xufVxuLmJ1bmRsZS1qb2JzX19saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAxNHB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmJ1bmRsZS1qb2JzX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGNvbHVtbi1nYXA6IDQ4cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xufVxuLmJ1bmRsZS1qb2JzX19mb290ZXIgLmN0YS1idG4geyBtYXJnaW46IDA7IH1cblxuLmJ1bmRsZS1qb2JzX19jZS1saW5rIHtcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbn1cbi5idW5kbGUtam9ic19fY2UtbGluazpob3ZlciB7IGNvbG9yOiAjZDYzZDA5OyB9XG4uYnVuZGxlLWpvYnNfX2NyZWRlbnRpYWwge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAgIC5idW5kbGUtam9ic19fZm9vdGVyIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IHJvdy1nYXA6IDE2cHg7IH1cbiAgICAuYnVuZGxlLWpvYnNfX2NyZWRlbnRpYWwgeyBqdXN0aWZ5LXNlbGY6IGNlbnRlcjsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmJ1bmRsZS1qb2JzX19saXN0IHsgY29sdW1uczogMTsgfVxufVxuXG4vKiBSZWFkeSB0byBTdGFydCBDZXJ0aWZ5aW5nIOKAlCByZXVzZXMgc2VjdGlvbnMvY2VydF9yZWFkeS5odG1sLnR3aWcgKi9cblxuLyogQ29tcGFjdCBuZXdzbGV0dGVyIG9uIGJ1bmRsZSBwYWdlcyDigJQgb3ZlcnJpZGVzIHRoZSBnbG9iYWwgcHktNSBwYWRkaW5nXG4gICBhbmQgdGhlIGlubmVyIGNvbnRhaW5lcidzIHB5LTUgKyBtYi01IHNwYWNpbmcgd2l0aG91dCB0b3VjaGluZyB0aGVcbiAgIHNoYXJlZCBzZWN0aW9ucy9uZXdzbGV0dGVyLmh0bWwudHdpZyB0ZW1wbGF0ZS4gKi9cbi5idW5kbGUtbmV3c2xldHRlci13cmFwIC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbn1cbi5idW5kbGUtbmV3c2xldHRlci13cmFwIC5uZXdzbGV0dGVyID4gLmNvbnRhaW5lci14bCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG4uYnVuZGxlLW5ld3NsZXR0ZXItd3JhcCAubmV3c2xldHRlciAudGV4dC1jZW50ZXIubWItNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbjpyb290IHtcbiAgICAtLWZzLWNhcmQtdGl0bGU6IDEuNXJlbTtcbiAgICAtLWZzLWNhcmQtdGV4dDogMS4wNjI1cmVtO1xuICAgIC0tZnMtY2FyZC1sYWJlbDogMC45NXJlbTtcbn1cblxuLnNlcnZlLWNhcmRfX3RpdGxlLFxuLnBsYXRmb3JtLWZlYXR1cmVfX3RpdGxlLFxuLndoeS1jYXJkX190aXRsZSxcbi5jZXJ0LXVuaXF1ZV9fdGl0bGUsXG4uY2VydC1yZWFkeV9fdGl0bGUsXG4uZXhwZXJ0aXNlLWNhcmRfX3RpdGxlLFxuLmRlbGl2ZXItY2FyZF9fdGl0bGUsXG4uaGUtZmVhdHVyZXNfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcmQtdGl0bGUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4ucGxhdGZvcm0tZmVhdHVyZV9fdGV4dCxcbi53aHktY2FyZF9fdGV4dCxcbi5jZXJ0LXVuaXF1ZV9fZGVzYyxcbi5jZXJ0LXJlYWR5X190ZXh0LFxuLmhlLWZlYXR1cmVzX190ZXh0IHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcmQtdGV4dCk7XG59XG5cbi5jZXJ0aWZ5LWNhcmRfX2xhYmVsLFxuLmNlcnQtb2ZmZXJpbmdzX19hcHAtbmFtZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXJkLWxhYmVsKTtcbn1cblxuLyog4pSA4pSAIEFwcGxpY2F0aW9uLXJlcXVpcmVtZW50cyBtb2RhbCAoc2hhcmVkOiBJTEwgY291cnNlIHNlbGVjdG9yICsgT25saW5lIFN0b3JlIGUtbGVhcm5pbmcgcGFja3MpIOKUgOKUgCAqL1xuLmN3LW1vZGFsX19jb250ZW50IHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmN3LW1vZGFsX19oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtdGVhbCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHg7XG59XG4uY3ctbW9kYWxfX2V5ZWJyb3cge1xuICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4uY3ctbW9kYWxfX3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIG1hcmdpbjogMDtcbn1cbi5jdy1tb2RhbF9fY2xvc2UgeyBtYXJnaW46IDA7IH1cblxuLmN3LW1vZGFsX19ib2R5IHsgcGFkZGluZzogMjRweDsgfVxuLmN3LW1vZGFsX19sZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMnB4O1xufVxuLmN3LW1vZGFsX19sZWFkLWljb24ge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLmN3LW1vZGFsX19pbnRybyB7XG4gICAgY29sb3I6ICMyZDJkM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jdy1tb2RhbF9fYXBwIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uY3ctbW9kYWxfX3N1YmhlYWQge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLXRlYWwpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG59XG4uY3ctbW9kYWxfX3JlcXMge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gICAgYmFja2dyb3VuZDogI2YxZjNmNDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE0cHggMjBweCAxNHB4IDM4cHg7XG4gICAgY29sb3I6ICMyZDJkM2E7XG59XG4uY3ctbW9kYWxfX3JlcXMgbGkgeyBtYXJnaW4tYm90dG9tOiA0cHg7IGxpbmUtaGVpZ2h0OiAxLjQ1OyB9XG4uY3ctbW9kYWxfX3JlcXMgbGk6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmN3LW1vZGFsX19zdGVwcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBjb3VudGVyLXJlc2V0OiBjdy1zdGVwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuLmN3LW1vZGFsX19zdGVwcyBsaSB7XG4gICAgY291bnRlci1pbmNyZW1lbnQ6IGN3LXN0ZXA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDI2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgY29sb3I6ICMyZDJkM2E7XG59XG4uY3ctbW9kYWxfX3N0ZXBzIGxpOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4uY3ctbW9kYWxfX3N0ZXBzIGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGNvdW50ZXIoY3ctc3RlcCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5jdy1tb2RhbF9fbm90ZSB7XG4gICAgYmFja2dyb3VuZDogI2U4ZjRmNDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmZlMGUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGNvbG9yOiAjMmE0YTRhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG59XG4uY3ctbW9kYWxfX2hlbHAge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBjb2xvcjogIzZhNmE3ODtcbiAgICBtYXJnaW46IDIwcHggMCAwO1xufVxuLmN3LW1vZGFsX19oZWxwIGEgeyBjb2xvcjogdmFyKC0tdG9zYS10ZWFsKTsgfVxuXG4uY3ctbW9kYWxfX2Zvb3RlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjhmOTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UzZTZlODtcbiAgICBwYWRkaW5nOiAxOHB4IDI0cHg7XG59XG4uY3ctbW9kYWxfX2NvbmZpcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBjb2xvcjogIzJkMmQzYTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1hcmdpbjogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3ctbW9kYWxfX2NvbmZpcm0gaW5wdXQgeyBtYXJnaW4tdG9wOiAycHg7IGZsZXg6IDAgMCBhdXRvOyB9XG4uY3ctbW9kYWxfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG59XG4uY3ctbW9kYWxfX2J0biB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiAxMHB4IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZSwgYmFja2dyb3VuZCAwLjE4cyBlYXNlO1xufVxuLmN3LW1vZGFsX19idG4tLWdob3N0IHsgYmFja2dyb3VuZDogIzBjMmEyYjsgY29sb3I6ICNmZmY7IH1cbi5jdy1tb2RhbF9fYnRuLS1naG9zdDpob3ZlciB7IGJhY2tncm91bmQ6ICMwODIwMjA7IGNvbG9yOiAjZmZmOyB9XG4uY3ctbW9kYWxfX2J0bi0tb3JhbmdlIHsgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpOyBjb2xvcjogI2ZmZjsgfVxuLmN3LW1vZGFsX19idG4tLW9yYW5nZTpob3ZlciB7IGJhY2tncm91bmQ6ICNkNjNmMGM7IGNvbG9yOiAjZmZmOyB9XG4uY3ctbW9kYWxfX2J0bi5pcy1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgLmN3LW1vZGFsX19mb290ZXIgeyBmbGV4LWRpcmVjdGlvbjogcm93OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAuY3ctbW9kYWxfX2NvbmZpcm0geyBtYXgtd2lkdGg6IDYwJTsgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxNDc5Ljk4cHgpIHtcbiAgICAuY2VydC10ZXN0aW5nLWNlbnRlcl9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDYwcHggNDhweDtcbiAgICB9XG4gICAgLmhlLWJhbm5lcjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45NSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMC44OCkgNDUlLCByZ2JhKDI1NSwyNTUsMjU1LDAuNTUpIDY1JSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA4MiUpO1xuICAgIH1cbiAgICAubmF2YmFyIC5uYXZiYXItYnJhbmQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm5hdmJhciAubmF2YmFyLWJyYW5kIGltZyB7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICB9XG4gICAgLm5hdmJhciAubmF2YmFyLW5hdiAubmF2LWxpbmssXG4gICAgLm5hdmJhciAubmF2YmFyLW5hdiAubWVudWJhcl9fbGluayB7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwLjZyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC5tZW51YmFyX19hY3Rpb25zIHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICAubWVudWJhcl9fc2VhcmNoIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGZsZXg6IDEgMSAxMjBweDtcbiAgICAgICAgbWluLXdpZHRoOiA5MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDE4MHB4O1xuICAgIH1cbiAgICAubWVudWJhcl9fY3RhLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgfVxuICAgIC5tZW51YmFyX19hY3Rpb25zIC5sb2dpbi1oZWFkZXJfX2xhbmctYnRuIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDRweDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTY5OS45OHB4KSB7XG4gICAgLm5hdmJhciAubmF2YmFyLWJyYW5kIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5uYXZiYXIgLm5hdmJhci1icmFuZCBpbWcge1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgfVxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYgLm5hdi1saW5rLFxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYgLm1lbnViYXJfX2xpbmsge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMC41cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAubWVudWJhcl9fYWN0aW9ucyB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZ2FwOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5tZW51YmFyX19zZWFyY2gge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZmxleDogMSAxIDEyMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDkwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTgwcHg7XG4gICAgfVxuICAgIC5tZW51YmFyX19jdGEtYnRuIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDAuNzgxMjVyZW07XG4gICAgfVxuICAgIC5tZW51YmFyX19hY3Rpb25zIC5sb2dpbi1oZWFkZXJfX2xhbmctYnRuIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDRweDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMjk5Ljk4cHgpIHtcbiAgICAubmF2YmFyIC5jb250YWluZXIteGwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubmF2YmFyIC5uYXZiYXItYnJhbmQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm5hdmJhciAubmF2YmFyLWJyYW5kIGltZyB7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICB9XG4gICAgLm5hdmJhciAubmF2YmFyLW5hdiB7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtbGluayxcbiAgICAubmF2YmFyIC5uYXZiYXItbmF2IC5tZW51YmFyX19saW5rIHtcbiAgICAgICAgcGFkZGluZzogMS41cmVtIDAuMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICB9XG4gICAgLm1lbnViYXJfX2FjdGlvbnMge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGdhcDogMC4zNzVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm1lbnViYXJfX3NlYXJjaCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbGV4OiAxIDEgNzBweDtcbiAgICAgICAgbWluLXdpZHRoOiA3MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgICAubWVudWJhcl9fY3RhLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggNnB4O1xuICAgICAgICBmb250LXNpemU6IDAuNzgxMjVyZW07XG4gICAgICAgIGdhcDogNHB4O1xuICAgIH1cbiAgICAubWVudWJhcl9fYWN0aW9ucyAubG9naW4taGVhZGVyX19sYW5nLWNvZGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyog4pSA4pSAIE1vYmlsZSBmaXhlcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIGJvZHkge1xuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgIH1cbiAgICAucm93LmctNSB7XG4gICAgICAgIC0tYnMtZ3V0dGVyLXg6IDJyZW07XG4gICAgfVxuICAgIC5jdGEtYnRuIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAuY2VydC10ZXN0aW1vbmlhbF9fdmVjdG9yIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmhlLXM1IC5oZS1zNV9fY2FyZCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuICAgIC5oZS1zNF9fdmlkZW8ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgIH1cbiAgICAuaGUtYmFubmVyIHtcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICB9XG4gICAgLmhlLWN0YV9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICB9XG4gICAgLmNlcnQtZW50cnlfX2JvZHksXG4gICAgLmNlcnQtZW50cnktLXJldmVyc2UgLmNlcnQtZW50cnlfX2JvZHkge1xuICAgICAgICBwYWRkaW5nOiAwIDI0cHggMzJweDtcbiAgICB9XG4gICAgLmNlcnQtdW5pcXVlX192ZWN0b3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuY2VydC11bmlxdWVfX2NhcmQtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDMycHg7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFicyB7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICB9XG4gICAgLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtaXRlbSB7XG4gICAgICAgIGZsZXg6IDEgMSBjYWxjKDUwJSAtIDZweCk7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFicyAubmF2LWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFiLWxvZ28ge1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fdGFiLWNoZXZyb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuY2VydC1vZmZlcmluZ3NfX3RhYnMgLm5hdi1saW5rLmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuY2VydC10ZXN0aW5nLWNlbnRlcl9fcm93IHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gICAgLmNlcnQtdGVzdGluZy1jZW50ZXJfX21lZGlhIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiA5NTYgLyA3MjI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIH1cbiAgICAuY2VydC10ZXN0aW5nLWNlbnRlcl9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjRweCA1NnB4O1xuICAgIH1cbiAgICAuYmUtaGVybyB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG4gICAgLmJlLWhlcm9fX2lubmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLmJleW9uZC1kaXBsb21hX19pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5iZXlvbmQtZGlwbG9tYV9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0ODBweDtcbiAgICB9XG4gICAgLmJleW9uZC1kaXBsb21hX19zdGF0LWNhcmQge1xuICAgICAgICByaWdodDogOHB4O1xuICAgICAgICBib3R0b206IDc1cHg7XG4gICAgfVxuICAgIC5jZXJ0LW9mZmVyaW5nc19fY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICB9XG4gICAgLmNlcnQtb2ZmZXJpbmdzX19sb2dvLWl0ZW0gaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5jZXJ0LXVuaXF1ZV9fY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG4gICAgLmNlcnQtdW5pcXVlX19jYXJkLWlubmVyIHtcbiAgICAgICAgcGFkZGluZzogMzJweCAyMHB4O1xuICAgIH1cbiAgICAuY2VydC11bmlxdWVfX3ZlY3RvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5jZXJ0LXVuaXF1ZV9faXRlbXMge1xuICAgICAgICBnYXA6IDI0cHg7XG4gICAgfVxuICAgIC5jZXJ0LXVuaXF1ZV9faXRlbSB7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICB9XG4gICAgLmNlcnQtdW5pcXVlX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICB9XG4gICAgLmNlcnQtYnVuZGxlc19faW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDhweDtcbiAgICB9XG4gICAgLmNlcnQtYnVuZGxlc19fZ3JhcGhpYyB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTJweDtcbiAgICB9XG4gICAgLnN0LXRhYmxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICB9XG4gICAgLnN0LXRhYmxlIHRoZWFkIHRoLFxuICAgIC5zdC10YWJsZSB0Ym9keSB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICB9XG4gICAgLnN0LXRhYmxlIHRoLFxuICAgIC5zdC10YWJsZSB0ZCB7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIH1cbiAgICAuc3QtdGllcl9fdGFibGUtd3JhcCB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxuICAgIC5zdC10YWJsZS0tdHdvIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5zdC10YWJsZS0taW52ZXJzZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuICAgIC5zdC10YWJsZS0tc3RhY2sgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuc3QtdGFibGUtLXN0YWNrLFxuICAgIC5zdC10YWJsZS0tc3RhY2sgdGJvZHksXG4gICAgLnN0LXRhYmxlLS1zdGFjayB0cixcbiAgICAuc3QtdGFibGUtLXN0YWNrIHRkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIC5zdC10YWJsZS0tc3RhY2sgdGJvZHkgdHIge1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU5ZjI7XG4gICAgfVxuICAgIC5zdC10YWJsZS0tc3RhY2sgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlLWxpZ2h0KTtcbiAgICB9XG4gICAgLnN0LXRhYmxlLS1zdGFjayB0Ym9keSB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuc3QtdGFibGUtLXN0YWNrIHRib2R5IHRkW2RhdGEtbGFiZWxdOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgICAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIH1cbiAgICAuc3QtdGFibGUtLXN0YWNrIC5zdC1jZXJ0c19fZ3JvdXAgdGQge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgfVxuICAgIC5zdC1jdGEgKyAubmV3c2xldHRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA3MnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5iZS1wdXJjaGFzZV9fZnJhbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5iZS1wdXJjaGFzZV9faW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDE2cHggMzJweDtcbiAgICB9XG4gICAgLmJlLXN0ZXAge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5oZS1zNV9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICB9XG4gICAgLmNlcnQtb2ZmZXJpbmdzX190YWItbG9nbyB7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAgIC5zZXJ2ZS1jYXJkX19pY29uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgCBGUiBzaGFyZWQgc2VjdGlvbnMgKGV0YWJsaXNzZW1lbnQgLyBvcmdhbmlzbWUgZGUgZm9ybWF0aW9uKSDilIDilIDilIDilIBcbiAgIFwiT2ZmcmUgZGUgY2VydGlmaWNhdGlvbnMgVG9zYVwiOiB3aGl0ZSBiYW5kLCB5ZWxsb3cgY2hldnJvbiB2ZWN0b3Igc3R1Y2tcbiAgIHRvIHRoZSBsZWZ0IGVkZ2UsIGxpZ2h0LWJsdWUgY2FyZCB3aXRoIGEgbm90Y2hlZCB0b3AtcmlnaHQgY29ybmVyLiAqL1xuLmV0YWItb2ZmZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZXRhYi1vZmZlcl9fdmVjdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmV0YWItb2ZmZXJfX2NhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjRTNGMUY1O1xuICAgIC8qIE5hcnJvd2VyIGFuZCB0YWxsZXIgdGhhbiB0aGUgbmF0dXJhbCBjb250YWluZXIgd2lkdGgsIGZvciBhIHNxdWFyaXNoXG4gICAgICAgY2FyZCByYXRoZXIgdGhhbiBhIHdpZGUgZmxhdCBiYW5kLiAqL1xuICAgIG1heC13aWR0aDogMTA4MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDEyMHB4IDg4cHg7XG4gICAgLS1ldGFiLW5vdGNoOiA3MnB4O1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIHZhcigtLWV0YWItbm90Y2gpKSAwLCAxMDAlIHZhcigtLWV0YWItbm90Y2gpLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uZXRhYi1vZmZlcl9fY2FyZCAucm93IHsgcm93LWdhcDogNDhweDsgfVxuLmV0YWItb2ZmZXJfX2dhbW1lIHtcbiAgICBwYWRkaW5nLXRvcDogMTRweDtcbn1cbi5ldGFiLW9mZmVyX19nYW1tZS1sb2dvIHtcbiAgICBtYXgtaGVpZ2h0OiA0NHB4O1xuICAgIHdpZHRoOiBhdXRvO1xufVxuLmV0YWItb2ZmZXJfX2dhbW1lLWFwcHMge1xuICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICBjb2xvcjogIzRhNGE1ZTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLmV0YWItb2ZmZXJfX2NhcmQgeyBwYWRkaW5nOiA0MHB4IDI0cHg7IC0tZXRhYi1ub3RjaDogNDhweDsgfVxuICAgIC5ldGFiLW9mZmVyX192ZWN0b3IgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8qIFwiVW5lIHNvbHV0aW9uIHBvdXIgY2hhcXVlIHBhcmNvdXJzXCI6IHdoaXRlIGJhbmQsIHBhbGUgdmVjdG9yIG9uIHRoZSBsZWZ0LFxuICAgYmx1ZSBkb3RzLCBzcXVhcmUgZXZlbmx5LXNwYWNlZCBjYXJkcy4gKi9cbi5ldGFiLXBhcmNvdXJzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmV0YWItcGFyY291cnNfX3ZlY3RvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAxMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmV0YWItcGFyY291cnMgLnNlY3Rpb24tZG90cy0tYmx1ZSBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmV0YWItcGFyY291cnNfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjRweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDgpO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxOHB4O1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgbWluLWhlaWdodDogMDtcbn1cbi5ldGFiLXBhcmNvdXJzX19jYXJkIC5oZS1zM19faWNvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5ldGFiLXBhcmNvdXJzX19jYXJkIC5oZS1zM19fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG5cbi8qIOKUgOKUgOKUgOKUgCBGUiBjZW50cmUtYWdyw6nDqSAvIGNlcnRpZmljYXRpb24tw6AtZGlzdGFuY2UgcGFnZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uY2EtcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDZweCAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbWFyZ2luOiA2cHg7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4vKiBDZXJ0aWZpY2F0aW9uLcOgLWRpc3RhbmNlIHBhZ2Ugb25seSAqL1xuLmNhLXBpbGwtLW9yYW5nZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5jYS1zdGF0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyNHB4IHJnYmEoMzAsIDMwLCA2MCwgMC4wOCk7XG4gICAgcGFkZGluZzogMzZweCAyOHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI3NXB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuLyogQmx1ZSBkaXNjIHBlZWtpbmcgb3V0IG9mIHRoZSB0b3AtcmlnaHQgY29ybmVyICovXG4uY2Etc3RhdDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTQ4cHg7XG4gICAgcmlnaHQ6IC0zM3B4O1xuICAgIHdpZHRoOiA3NXB4O1xuICAgIGhlaWdodDogNzVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5jYS1zdGF0X19udW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMy4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4vKiBTaG9ydCB2ZXJ0aWNhbCBiYXIgc3RyYWRkbGluZyB0aGUgY2FyZCdzIGxlZnQgZWRnZSAqL1xuLmNhLXN0YXRfX251bTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMzFweDtcbiAgICB0b3A6IDRweDtcbiAgICBib3R0b206IDRweDtcbiAgICB3aWR0aDogNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uY2Etc3RhdF9fdGV4dCB7XG4gICAgY29sb3I6ICM0YTRhNWU7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG4uY2Etc3RlcHMge1xuICAgIGJhY2tncm91bmQ6ICMzODQ2RDg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jYS1zdGVwcyAuc2VjdGlvbi10aXRsZSB7IGNvbG9yOiAjZmZmOyB9XG4uY2Etc3RlcHNfX2ludHJvIHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7IH1cbi5jYS1zdGVwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuLmNhLXN0ZXBfX251bSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4vKiBDZXJ0aWZpY2F0aW9uLcOgLWRpc3RhbmNlIHBhZ2Ugb25seSAqL1xuLmNhLXN0ZXBfX251bS0tb3JhbmdlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmNhLXN0ZXBfX3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLmNhLXN0ZXBfX3RleHQsIC5jYS1zdGVwIGxpIHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7IH1cbi5jYS1zdGVwIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMTRweDtcbiAgICBtYXJnaW46IDEwcHggMCAwO1xufVxuLmNhLXN0ZXAgdWwgbGkgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctbGVmdDogMTRweDsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4uY2Etc3RlcCB1bCBsaTo6YmVmb3JlIHsgY29udGVudDogJ1xcMDBCNyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuLmNhLXN0ZXAgYSB7IGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7IH1cbi5jYS1yZXFzIHtcbiAgICBiYWNrZ3JvdW5kOiAjRTNGMUY1O1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogMzZweDtcbn1cbi8qIENlcnRpZmljYXRpb24tw6AtZGlzdGFuY2U6IGRlY29yYXRpdmUgc2hhcGVzIGJlaGluZCB0aGUgcmVxdWlyZW1lbnRzIGNhcmQgKi9cbi5jYS1yZXFzLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYS1yZXFzLXdyYXAgPiA6bm90KC5jYS1yZXFzX192ZWN0b3IpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cbi5jYS1yZXFzX192ZWN0b3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAyOSU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IDEwOSU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmNhLXJlcXNfX3RpdGxlIHsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxLjNyZW07IG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbi5jYS1yZXFzIGR0IHsgZm9udC13ZWlnaHQ6IDcwMDsgbWFyZ2luLXRvcDogMTRweDsgfVxuLmNhLXJlcXMgZGQgeyBtYXJnaW46IDA7IGNvbG9yOiAjNGE0YTVlOyB9XG4uY2EtZmluZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogNDBweCAwO1xufVxuLmNhLWZpbmRlciAuY29udGFpbmVyLXhsIHtcbiAgICBiYWNrZ3JvdW5kOiAjMzg0NkQ4O1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDYwcHgpIDAsIDEwMCUgNjBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIHBhZGRpbmctbGVmdDogNTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4O1xufVxuLmNhLWZpbmRlciAuc2VjdGlvbi10aXRsZSB7IGNvbG9yOiAjZmZmOyB9XG4uY2EtZmluZGVyX190ZXh0IHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7IH1cbi5jYS1maW5kZXJfX2Zvcm0geyBkaXNwbGF5OiBmbGV4OyBtYXgtd2lkdGg6IDU2MHB4OyB9XG4uY2EtZmluZGVyX19pbnB1dCB7XG4gICAgZmxleDogMTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLyogQnVuZGxlIHNpZGViYXIg4oCUIG5lc3RlZCBcIkV4YW1zIGFuZCBNaW5pbXVtIFBhc3NpbmcgU2NvcmVzXCIgYmxvY2tcbiAgIChsZXZlbCDihpIgZXhhbXMg4oaSIFwiUGx1cyAxIG9mIHRoZSBmb2xsb3dpbmcgTjpcIiDihpIgZXhhbXMpLiBTZWxlY3RvcnMgYXJlXG4gICBzY29wZWQgdW5kZXIgLmJ1bmRsZS1zaWRlX19idWxsZXQtbGlzdCB0byBvdmVycmlkZSBpdHMgZ2VuZXJpYyBsaSBydWxlcy4gKi9cbi5idW5kbGUtc2lkZV9fYnVsbGV0LWxpc3QgLmJ1bmRsZS1zaWRlX19zY29yZS1ncm91cHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDZweCAwIDA7XG59XG4uYnVuZGxlLXNpZGVfX2J1bGxldC1saXN0IC5idW5kbGUtc2lkZV9fc2NvcmUtZ3JvdXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA0cHggMCA0cHggMTRweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi5idW5kbGUtc2lkZV9fYnVsbGV0LWxpc3QgLmJ1bmRsZS1zaWRlX19zY29yZS1ncm91cDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAolwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAzcHg7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5idW5kbGUtc2lkZV9fYnVsbGV0LWxpc3QgLmJ1bmRsZS1zaWRlX19zY29yZS1ncm91cC0tZmxhdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmJ1bmRsZS1zaWRlX19idWxsZXQtbGlzdCAuYnVuZGxlLXNpZGVfX3Njb3JlLWdyb3VwLS1mbGF0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmU7XG59XG4uYnVuZGxlLXNpZGVfX3Njb3JlLWdyb3VwLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMWYyOTM3O1xufVxuLmJ1bmRsZS1zaWRlX19idWxsZXQtbGlzdCAuYnVuZGxlLXNpZGVfX3Njb3JlLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDJweCAwIDA7XG59XG4uYnVuZGxlLXNpZGVfX2J1bGxldC1saXN0IC5idW5kbGUtc2lkZV9fc2NvcmUtbGlzdCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM0YjU1NjM7XG59XG4uYnVuZGxlLXNpZGVfX2J1bGxldC1saXN0IC5idW5kbGUtc2lkZV9fc2NvcmUtbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAk1wiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAycHg7XG4gICAgY29sb3I6ICM5Y2EzYWY7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5idW5kbGUtc2lkZV9fc2NvcmUtZXhhbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiOlwiO1xufVxuLmJ1bmRsZS1zaWRlX19zY29yZS12YWx1ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYnVuZGxlLXNpZGVfX3Njb3JlLW5vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogNnB4IDAgMnB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogIzM3NDE1MTtcbn1cblxuLyog4pSA4pSAIENvbnRhY3QgVXMgcGFnZSDigJQgRlIgdmFyaWFudCAodGVtcGxhdGVzL3BhZ2VzL2NvbnRhY3RfdXNfZnIuaHRtbC50d2lnKSDilIDilIAgKi9cblxuLmN1LWZvcm1fX2dyb3VwLS1pbmxpbmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jdS1mb3JtX19ncm91cC0taW5saW5lIC5jdS1mb3JtX19sYWJlbC0taW5saW5lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTdweDtcbiAgICB0b3A6IDE1cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cbi8qIENocm9tZSBkb2VzIG5vdCByZS1zdHlsZSA6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiBsYWJlbCBvbiB2YWx1ZSBjaGFuZ2VzOyBKUyBtaXJyb3JzIHRoZSBzdGF0ZSBhcyAuaGFzLXZhbHVlICovXG4uY3UtZm9ybV9fZ3JvdXAtLWlubGluZTpmb2N1cy13aXRoaW4gLmN1LWZvcm1fX2xhYmVsLS1pbmxpbmUsXG4uY3UtZm9ybV9fZ3JvdXAtLWlubGluZS5oYXMtdmFsdWUgLmN1LWZvcm1fX2xhYmVsLS1pbmxpbmUsXG4uY3UtZm9ybV9fZ3JvdXAtLWlubGluZSAuY3UtZm9ybV9faW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiAuY3UtZm9ybV9fbGFiZWwtLWlubGluZSB7XG4gICAgb3BhY2l0eTogMDtcbn1cbi5jdS1mb3JtX19ncm91cC0taW5saW5lIC5jdS1mb3JtX19yZXF1aXJlZCB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5jdS1mb3JtX19mb290ZXItLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAyMHB4O1xufVxuXG4uY3UtcGFydG5lciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIHBhZGRpbmc6IDk2cHggMDtcbn1cbi5jdS1wYXJ0bmVyX190aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4uY3UtcGFydG5lcl9fc3VidGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG59XG4uY3UtcGFydG5lcl9fdGV4dCB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uY3UtcGFydG5lcl9fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuLmN1LXBhcnRuZXJfX2xpc3QgbGkge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG4uY3UtcGFydG5lcl9fbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDAuNXJlbTtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uY3UtcGFydG5lcl9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDUyMHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi5jdS1wYXJ0bmVyICsgLm5ld3NsZXR0ZXIge1xuICAgIHBhZGRpbmctdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5jdS1wYXJ0bmVyIHtcbiAgICAgICAgcGFkZGluZzogNjRweCAwO1xuICAgIH1cbiAgICAuY3UtcGFydG5lcl9faW1nIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxufVxuXG4vKiDilIDilIAgT25saW5lIHN0b3JlIOKAlCBGUiB2YXJpYW50ICh0ZW1wbGF0ZXMvcGFnZXMvb25saW5lX3N0b3JlX2ZyLmh0bWwudHdpZykg4pSA4pSAICovXG4uYmUtcHVyY2hhc2UtLWZyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJlLXB1cmNoYXNlLS1mcjo6YmVmb3JlLFxuLmJlLXB1cmNoYXNlLS1mcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5iZS1wdXJjaGFzZS0tZnI6OmJlZm9yZSB7IHdpZHRoOiA0MjBweDsgaGVpZ2h0OiA0MjBweDsgcmlnaHQ6IC0xNjBweDsgdG9wOiAzOCU7IH1cbi5iZS1wdXJjaGFzZS0tZnI6OmFmdGVyICB7IHdpZHRoOiAyNjBweDsgaGVpZ2h0OiAyNjBweDsgbGVmdDogLTEyMHB4OyBib3R0b206IDEyJTsgfVxuLmJlLXB1cmNoYXNlLS1mciA+IC5jb250YWluZXIteGwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cbi5iZS1wdXJjaGFzZV9fcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiAxOHB4IDQ4cHg7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjM1cmVtLCAyLjN2dywgMS45cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1heC13aWR0aDogOTIwcHg7XG4gICAgbWFyZ2luOiAwIDAgMThweDtcbn1cbi5iZS1wdXJjaGFzZV9fbGVhZCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xufVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX2ZyYW1lIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9faW5uZXIgeyBwYWRkaW5nOiAwOyB9XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFuZSB7IG1pbi1oZWlnaHQ6IDA7IH1cbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX19wYW5lW2RhdGEtcHVyY2hhc2UtcGFuZT1cIjNcIl0uaXMtYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH1cbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX19wYW5lLWludHJvIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMzJweDtcbn1cblxuLmJlLXB1cmNoYXNlX19jcnVtYnMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogNnB4IDE0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmJlLXB1cmNoYXNlX19jcnVtYiB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4yNXJlbSwgMnZ3LCAxLjc1cmVtKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbn1cbi5iZS1wdXJjaGFzZV9fY3J1bWI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnPic7XG4gICAgbWFyZ2luLWxlZnQ6IDE0cHg7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5iZS1wdXJjaGFzZV9fY3J1bWI6bGFzdC1jaGlsZDo6YWZ0ZXIgeyBjb250ZW50OiBub25lOyB9XG4uYmUtcHVyY2hhc2VfX2NydW1iLmlzLWRvbmUgeyBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyB9XG4uYmUtcHVyY2hhc2VfX2NydW1iLmlzLWFjdGl2ZSxcbi5iZS1wdXJjaGFzZV9fY3J1bWIuaXMtYWN0aXZlOjphZnRlciB7IGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7IH1cbi5iZS1wdXJjaGFzZV9fY3J1bWIuaXMtc2tpcHBlZCB7IG9wYWNpdHk6IDAuNDU7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmJlLXB1cmNoYXNlX19wYW5lbCB7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICAgIHBhZGRpbmc6IDQwcHggY2xhbXAoMjBweCwgM3Z3LCA0OHB4KSA0OHB4O1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX2RldGFpbHMgeyBwYWRkaW5nOiA0MHB4IGNsYW1wKDIwcHgsIDN2dywgNDhweCkgNDhweDsgfVxuXG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fdGFicyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIGdhcDogMzJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNDRweDtcbn1cbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX190YWJzIC5uYXYtaXRlbSB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9XG4uYmUtcHVyY2hhc2VfX3RhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE2cHggMTJweCAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMThweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnM7XG59XG4uYmUtcHVyY2hhc2VfX3RhYjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMjJweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYm9yZGVyOiAxMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzO1xufVxuLmJlLXB1cmNoYXNlX190YWItLWRlc2t0b3AgIHsgYm9yZGVyLWNvbG9yOiAjOEJDQ0ZGICFpbXBvcnRhbnQ7IH1cbi5iZS1wdXJjaGFzZV9fdGFiLS1ncmFwaGljcyB7IGJvcmRlci1jb2xvcjogI0ZGNjZGRiAhaW1wb3J0YW50OyB9XG4uYmUtcHVyY2hhc2VfX3RhYi0tZGlnaXRhbCAgeyBib3JkZXItY29sb3I6ICM2NkNDOTkgIWltcG9ydGFudDsgfVxuLmJlLXB1cmNoYXNlX190YWItLWNvZGUgICAgIHsgYm9yZGVyLWNvbG9yOiAjRTZBMDcxICFpbXBvcnRhbnQ7IH1cbi5iZS1wdXJjaGFzZV9fdGFiLS1kZXNrdG9wOjphZnRlciAgeyBib3JkZXItdG9wLWNvbG9yOiAjOEJDQ0ZGOyB9XG4uYmUtcHVyY2hhc2VfX3RhYi0tZ3JhcGhpY3M6OmFmdGVyIHsgYm9yZGVyLXRvcC1jb2xvcjogI0ZGNjZGRjsgfVxuLmJlLXB1cmNoYXNlX190YWItLWRpZ2l0YWw6OmFmdGVyICB7IGJvcmRlci10b3AtY29sb3I6ICM2NkNDOTk7IH1cbi5iZS1wdXJjaGFzZV9fdGFiLS1jb2RlOjphZnRlciAgICAgeyBib3JkZXItdG9wLWNvbG9yOiAjRTZBMDcxOyB9XG4uYmUtcHVyY2hhc2VfX3RhYi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzFhMWEyZSAhaW1wb3J0YW50O1xufVxuLmJlLXB1cmNoYXNlX190YWIuYWN0aXZlOjphZnRlciB7IGJvcmRlci10b3AtY29sb3I6ICNmZmY7IH1cbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX190YWItbG9nbyB7IGhlaWdodDogNDBweDsgfVxuLmJlLXB1cmNoYXNlX190YWItYXBwcyB7IGZvbnQtc2l6ZTogMC44NXJlbTsgbGluZS1oZWlnaHQ6IDEuMzsgfVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX2hlYWRpbmcge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fc3ViamVjdCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWRjZWY7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3N1YmplY3Q6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjOEJDQ0ZGO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuXG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFja3Mge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMzVweCwgMWZyKSk7XG4gICAgZ2FwOiAyOHB4O1xuICAgIGJvcmRlcjogMDtcbn1cbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX19wYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAjRTZGNEY4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM4QkNDRkY7XG4gICAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgICBwYWRkaW5nOiAzMHB4IDI0cHggMzRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgdHJhbnNmb3JtIDAuMnM7XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFjazpob3Zlcixcbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX19wYWNrLmlzLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xufVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2staGVhZCxcbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX19wYWNrOmhvdmVyIC5iZS1wdXJjaGFzZV9fcGFjay1oZWFkLFxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2suaXMtYWN0aXZlIC5iZS1wdXJjaGFzZV9fcGFjay1oZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFjay1uYW1lLFxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2s6aG92ZXIgLmJlLXB1cmNoYXNlX19wYWNrLW5hbWUsXG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFjay5pcy1hY3RpdmUgLmJlLXB1cmNoYXNlX19wYWNrLW5hbWUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFjay1ib2R5IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGdhcDogMjJweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2stZGVzYyB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFjay1kZXNjIHVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW46IDE2cHggYXV0byAwO1xufVxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2stcHJpY2Uge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi5iZS1wdXJjaGFzZS0tZnIgLmJlLXB1cmNoYXNlX19wYWNrLWNoZWNrb3V0LFxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2s6aG92ZXIgLmJlLXB1cmNoYXNlX19wYWNrLWNoZWNrb3V0LFxuLmJlLXB1cmNoYXNlLS1mciAuYmUtcHVyY2hhc2VfX3BhY2suaXMtYWN0aXZlIC5iZS1wdXJjaGFzZV9fcGFjay1jaGVja291dCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAyNnB4IGF1dG8gMDtcbiAgICBwYWRkaW5nOiAxNnB4IDMycHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTZweCkgMCwgMTAwJSAxNnB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fcGFjay1jaGVja291dDpob3ZlciB7IGJhY2tncm91bmQ6ICNkNjNkMDk7IH1cbi5iZS1wdXJjaGFzZV9fcGFja3MtZW1wdHkge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyNHB4IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuLmZhcS0teWVsbG93LWRvdHMgLnNlY3Rpb24tZG90cyBzcGFuIHsgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5iZS1wdXJjaGFzZS0tZnIgfiAubmV3c2xldHRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fdGFicyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IGdhcDogMjBweCAxNnB4OyBtYXJnaW4tYm90dG9tOiAzNnB4OyB9XG4gICAgLmJlLXB1cmNoYXNlX19waWxsIHsgcGFkZGluZzogMTRweCAyOHB4OyBib3JkZXItcmFkaXVzOiAyOHB4OyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICAuYmUtcHVyY2hhc2UtLWZyIC5iZS1wdXJjaGFzZV9fdGFicyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG4gICAgLmJlLXB1cmNoYXNlX19wYW5lbCB7IGJvcmRlci1yYWRpdXM6IDE2cHg7IHBhZGRpbmc6IDI0cHggMTZweCAzMnB4OyB9XG59XG4uYmUtcHVyY2hhc2VfX2NydW1iIC5iZS1wdXJjaGFzZV9fc3RlcC1udW0geyBkaXNwbGF5OiBpbmxpbmU7IH1cbi5iZS1zdGVwcy0tZnIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsICNmZmY2ZDkgMCUsICNmZmZmZmYgMzIlLCAjZjFmMmZiIDEwMCUpO1xufVxuLmJlLXN0ZXBzLS1mciAuYmUtc3RlcCB7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgyMCwgMzAsIDYwLCAwLjA2KTtcbn1cblxuLyogXCJCZXNvaW4gZCdhaWRlID9cIiDigJQgcGhvdG8gY2FyZCB3aXRoIGEgeWVsbG93IGRpYWdvbmFsIGFuZCBhIHdoaXRlIHRleHQgYm94LiAqL1xuLmJlLWhlbHAge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogNzJweCAwIDQwcHg7XG59XG4uYmUtaGVscF9fY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDU0MHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDYwcHgpIDAsIDEwMCUgNjBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5iZS1oZWxwX19jYXJkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgNDQlIDAsIDI2JSAxMDAlLCAwIDEwMCUpO1xufVxuLmJlLWhlbHBfX2JveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiBjbGFtcCgyNHB4LCA2dncsIDk2cHgpO1xuICAgIHdpZHRoOiBtaW4oNTYwcHgsIGNhbGMoMTAwJSAtIDQ4cHgpKTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDU2cHggNjBweDtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAzNnB4KSAwLCAxMDAlIDM2cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDIwLCAzMCwgNjAsIDAuMTUpO1xufVxuLmJlLWhlbHBfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIDN2dywgMi41cmVtKTtcbn1cbi5iZS1oZWxwX190ZXh0IHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLmJlLWhlbHAgeyBwYWRkaW5nOiA0OHB4IDAgMjRweDsgfVxuICAgIC5iZS1oZWxwX19jYXJkIHsgbWluLWhlaWdodDogMDsgcGFkZGluZzogMzJweCAwOyB9XG4gICAgLmJlLWhlbHBfX2JveCB7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAzMnB4IDI0cHg7IH1cbn1cblxuLyog4pSA4pSAIFN1YmplY3QgZGV0YWlsczogRlIgdmFyaWFudHMgKFNlcHQgMjAyNiBtb2NrdXBzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi8qIEJsYWNrIENUQSAoRlIgc2lkZWJhciBcIkFjaGV0ZXIgdW5lIGNlcnRpZmljYXRpb25cIikgKi9cbi5jdGEtYnRuLS1ibGFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5jdGEtYnRuLS1ibGFjazpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLyogRnJhbmNlIGNvbXDDqXRlbmNlcyBjYXJkICovXG4uc3ViamVjdC1kZXRhaWxzX19mYy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19mYy1jb2RlIHtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG5cbi8qIEZSIGhlcm8gdGlsZTogcHJvZHVjdCBpY29uIGluIGEgd2hpdGUgZGlzYyB3aXRoIHRoZSBwcm9kdWN0IG5hbWUuICovXG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLS1jaXJjbGUgLnN1YmplY3QtZGV0YWlsc19faGVyby10aWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLWRpc2Mge1xuICAgIHdpZHRoOiAxOTBweDtcbiAgICBoZWlnaHQ6IDE5MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19faGVyby1kaXNjIGltZyB7XG4gICAgd2lkdGg6IDg0cHg7XG4gICAgaGVpZ2h0OiA4NHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLWRpc2MtbmFtZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnN1YmplY3QtZGV0YWlsc19faGVyby0tY2lyY2xlIC5zdWJqZWN0LWRldGFpbHNfX2hlcm8tdGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICAuc3ViamVjdC1kZXRhaWxzX19oZXJvLWRpc2MgeyB3aWR0aDogMTUwcHg7IGhlaWdodDogMTUwcHg7IH1cbiAgICAuc3ViamVjdC1kZXRhaWxzX19oZXJvLWRpc2MgaW1nIHsgd2lkdGg6IDY0cHg7IGhlaWdodDogNjRweDsgfVxufVxuXG4vKiBTYW1wbGUgVGVzdHM6IGhpZGUgZXZlcnkgbW9kYWwgdHJpZ2dlciBvbiBtb2JpbGUgYW5kIHRhYmxldCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgW2RhdGEtYnMtdGFyZ2V0PVwiI3NhbXBsZS10ZXN0cy1tb2RhbFwiXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5zYnQtaGVybyB7XG4gICAgYmFja2dyb3VuZDogI0Y1RjdGRjtcbn1cbi5zYnQtYm9keSB7XG4gICAgbWF4LXdpZHRoOiA3NjBweDtcbn1cbi5zYnQtYm9keV9fdGV4dCB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi5zYnQtYm9keV9fbGluayB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5zYnQtYm9keV9fc2Vjb25kYXJ5IHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5zYnQtYWxlcnQge1xuICAgIG1heC13aWR0aDogNzYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLnN0LWNlcnRzX19ibG9jay10aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjJyZW0sIDJ2dywgMS41cmVtKTtcbn1cbi5zdC10aWVyX19hZnRlciB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnN0LXRpZXJfX2FmdGVyIGgzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG4uc3QtdGllcl9fYWZ0ZXIgYSxcbi5zdC10aWVyX19mb290bm90ZSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi5tZW51YmFyX19zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5tZW51YmFyX19zZWFyY2gge1xuICAgICAgICB3aWR0aDogMjMwcHg7XG4gICAgfVxufVxuXG4ubWVudWJhcl9fc2VhcmNoLWZpZWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNHB4KSAwLCAxMDAlIDE0cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMC44NXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMjtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pbnB1dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE4cHggMTBweCAycmVtO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2O1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDEycHgpIDAsIDEwMCUgMTJweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM4YTkwOTc7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWlucHV0Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuLm1lbnViYXJfX3NlYXJjaC1pbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLXJlc3VsdHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDAuNXJlbSk7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDUwO1xuICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAubWVudWJhcl9fc2VhcmNoLXJlc3VsdHMge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgIH1cbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjg1cmVtO1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMS4xcmVtO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5tZW51YmFyX19zZWFyY2gtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWl0ZW06aG92ZXIsXG4ubWVudWJhcl9fc2VhcmNoLWl0ZW0uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmNmYxO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG5cbi5tZW51YmFyX19zZWFyY2gtdGh1bWIge1xuICAgIGZsZXg6IDAgMCAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG59XG5cbi5tZW51YmFyX19zZWFyY2gtdGh1bWItLXBsYWNlaG9sZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjZmMTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDNweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5tZW51YmFyX19zZWFyY2gtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLXRpdGxlIG1hcmsge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDEsIDczLCAxNiwgMC4xOCk7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLXR5cGUge1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgY29sb3I6ICM4YTkwOTc7XG59XG5cbi5tZW51YmFyX19zZWFyY2gtaXRlbTpob3ZlciAubWVudWJhcl9fc2VhcmNoLXR5cGUsXG4ubWVudWJhcl9fc2VhcmNoLWl0ZW0uaXMtYWN0aXZlIC5tZW51YmFyX19zZWFyY2gtdHlwZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1lbXB0eSB7XG4gICAgcGFkZGluZzogMXJlbSAxLjFyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjNmI3MTc3O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qKlxuICogU3dpcGVyIDEyLjEuM1xuICogTW9zdCBtb2Rlcm4gbW9iaWxlIHRvdWNoIHNsaWRlciBhbmQgZnJhbWV3b3JrIHdpdGggaGFyZHdhcmUgYWNjZWxlcmF0ZWQgdHJhbnNpdGlvbnNcbiAqIGh0dHBzOi8vc3dpcGVyanMuY29tXG4gKlxuICogQ29weXJpZ2h0IDIwMTQtMjAyNiBWbGFkaW1pciBLaGFybGFtcGlkaVxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxuICpcbiAqIFJlbGVhc2VkIG9uOiBNYXJjaCAyNCwgMjAyNlxuICovXG5cbjpyb290IHtcbiAgLS1zd2lwZXItdGhlbWUtY29sb3I6ICMwMDdhZmY7XG4gIC8qXG4gIC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcjogdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKTtcbiAgLS1zd2lwZXItd3JhcHBlci10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogaW5pdGlhbDtcbiAgKi9cbn1cbjpob3N0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIC8qIEZpeCBvZiBXZWJraXQgZmxpY2tlcmluZyAqL1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zd2lwZXItdmVydGljYWwgPiAuc3dpcGVyLXdyYXBwZXIge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnN3aXBlci13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zd2lwZXItd3JhcHBlci10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgaW5pdGlhbCk7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuLnN3aXBlci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLWlvcyAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci13cmFwcGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xufVxuLnN3aXBlci1ob3Jpem9udGFsIHtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbn1cbi5zd2lwZXItdmVydGljYWwge1xuICB0b3VjaC1hY3Rpb246IHBhbi14O1xufVxuLnN3aXBlci1zbGlkZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc3dpcGVyLXNsaWRlLWludmlzaWJsZS1ibGFuayB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIEF1dG8gSGVpZ2h0ICovXG4uc3dpcGVyLWF1dG9oZWlnaHQsXG4uc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5zd2lwZXItYXV0b2hlaWdodCAuc3dpcGVyLXdyYXBwZXIge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBoZWlnaHQ7XG59XG4uc3dpcGVyLWJhY2tmYWNlLWhpZGRlbiAuc3dpcGVyLXNsaWRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiAzRCBFZmZlY3RzICovXG4uc3dpcGVyLTNkLnN3aXBlci1jc3MtbW9kZSAuc3dpcGVyLXdyYXBwZXIge1xuICBwZXJzcGVjdGl2ZTogMTIwMHB4O1xufVxuLnN3aXBlci0zZCAuc3dpcGVyLXdyYXBwZXIge1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xufVxuLnN3aXBlci0zZCB7XG4gIHBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIC5zd2lwZXItc2xpZGUsXG4gIC5zd2lwZXItY3ViZS1zaGFkb3cge1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIH1cbn1cblxuLyogQ1NTIE1vZGUgKi9cbi5zd2lwZXItY3NzLW1vZGUge1xuICA+IC5zd2lwZXItd3JhcHBlciB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGb3IgRmlyZWZveCAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogRm9yIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgPiAuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlIHtcbiAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgc3RhcnQ7XG4gIH1cbiAgJi5zd2lwZXItaG9yaXpvbnRhbCB7XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gICAgfVxuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zd2lwZXItc2xpZGVzLW9mZnNldC1iZWZvcmUpO1xuICAgICAgc2Nyb2xsLW1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXN3aXBlci1zbGlkZXMtb2Zmc2V0LWJlZm9yZSk7XG4gICAgfVxuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1zd2lwZXItc2xpZGVzLW9mZnNldC1hZnRlcik7XG4gICAgfVxuICB9XG4gICYuc3dpcGVyLXZlcnRpY2FsIHtcbiAgICA+IC5zd2lwZXItd3JhcHBlciB7XG4gICAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTtcbiAgICB9XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc3dpcGVyLXNsaWRlcy1vZmZzZXQtYmVmb3JlKTtcbiAgICAgIHNjcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXN3aXBlci1zbGlkZXMtb2Zmc2V0LWJlZm9yZSk7XG4gICAgfVxuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXN3aXBlci1zbGlkZXMtb2Zmc2V0LWFmdGVyKTtcbiAgICB9XG4gIH1cbiAgJi5zd2lwZXItZnJlZS1tb2RlIHtcbiAgICA+IC5zd2lwZXItd3JhcHBlciB7XG4gICAgICBzY3JvbGwtc25hcC10eXBlOiBub25lO1xuICAgIH1cbiAgICA+IC5zd2lwZXItd3JhcHBlciA+IC5zd2lwZXItc2xpZGUge1xuICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IG5vbmU7XG4gICAgfVxuICB9XG4gICYuc3dpcGVyLWNlbnRlcmVkIHtcbiAgICA+IC5zd2lwZXItd3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBvcmRlcjogOTk5OTtcbiAgICB9XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlIHtcbiAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBjZW50ZXIgY2VudGVyO1xuICAgICAgc2Nyb2xsLXNuYXAtc3RvcDogYWx3YXlzO1xuICAgIH1cbiAgfVxuICAmLnN3aXBlci1jZW50ZXJlZC5zd2lwZXItaG9yaXpvbnRhbCB7XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKTtcbiAgICB9XG4gICAgPiAuc3dpcGVyLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICB3aWR0aDogdmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlcik7XG4gICAgfVxuICB9XG4gICYuc3dpcGVyLWNlbnRlcmVkLnN3aXBlci12ZXJ0aWNhbCB7XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUpO1xuICAgIH1cbiAgICA+IC5zd2lwZXItd3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLXdpZHRoOiAxcHg7XG4gICAgICBoZWlnaHQ6IHZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBTbGlkZSBzdHlsZXMgc3RhcnQgKi9cbi8qIDNEIFNoYWRvd3MgKi9cbi5zd2lwZXItM2Qge1xuICAuc3dpcGVyLXNsaWRlLXNoYWRvdyxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdyxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG4gIC5zd2lwZXItc2xpZGUtc2hhZG93IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB9XG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICB9XG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIH1cbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICB9XG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgfVxufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlciB7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0yMXB4O1xuICBtYXJnaW4tdG9wOiAtMjFweDtcbiAgei1pbmRleDogMTA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tc3dpcGVyLXByZWxvYWRlci1jb2xvciwgdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc3dpcGVyOm5vdCguc3dpcGVyLXdhdGNoLXByb2dyZXNzKSxcbi5zd2lwZXItd2F0Y2gtcHJvZ3Jlc3MgLnN3aXBlci1zbGlkZS12aXNpYmxlIHtcbiAgLnN3aXBlci1sYXp5LXByZWxvYWRlciB7XG4gICAgYW5pbWF0aW9uOiBzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgaW5maW5pdGUgbGluZWFyO1xuICB9XG59XG4uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRlIHtcbiAgLS1zd2lwZXItcHJlbG9hZGVyLWNvbG9yOiAjZmZmO1xufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlci1ibGFjayB7XG4gIC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcjogIzAwMDtcbn1cbkBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qIFNsaWRlIHN0eWxlcyBlbmQgKi9cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/