/*!*************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./assets/styles/app.css ***!
  \*************************************************************************************************/
/* ============================================
   Dice Adventure — Maître du jeu / JdR plateau
   Direction artistique : dés (D4·D6·D20·D100),
   rouge Donjons & Dragons, cuir, parchemin, potions.
   ============================================ */

:root {
    /* Rouge D&D */
    --rouge-dnd: #9a1b1e;
    --rouge-vif: #c0282b;
    --rouge-fonce: #6e1214;

    /* Cuir / sac à dos / armure */
    --brun-cuir: #5c4033;
    --brun-clair: #8b6a4f;
    --brun-fonce: #2a1d16;
    --brun-noir: #1c130d;

    /* Parchemin */
    --parchemin: #f4e8d0;
    --parchemin-clair: #fbf3e0;
    --parchemin-fonce: #e8d8b8;

    /* Accents : or (trésor) & potion */
    --or: #c9a227;
    --or-clair: #e3c25a;
    --potion: #4a7c59;
    --potion-vif: #5fae73;

    --encre: #2e2418;
    --encre-doux: #5a4b38;

    --ombre-douce: 0 10px 30px rgba(28, 19, 13, 0.18);
    --ombre-forte: 0 18px 45px rgba(28, 19, 13, 0.35);
    --rayon: 14px;

    --font-titre: 'Cinzel', Georgia, serif;
    --font-corps: 'Spectral', Georgia, 'Times New Roman', serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background-color: var(--parchemin);
    background-image:
        radial-gradient(ellipse at top left, rgba(139, 106, 79, 0.12), transparent 55%),
        radial-gradient(ellipse at bottom right, rgba(154, 27, 30, 0.08), transparent 55%);
    color: var(--encre);
    font-family: var(--font-corps);
    font-size: 1.05rem;
    line-height: 1.7;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

h1, h2, h3 {
    font-family: var(--font-titre);
    line-height: 1.15;
    letter-spacing: 0.5px;
}

a { color: var(--rouge-dnd); }

img { max-width: 100%; display: block; }

hr {color: #0f0a06;}

/* ---------- Boutons ---------- */

.btn {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.9rem;
    font-family: var(--font-titre);
    font-size: 0.98rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-decoration: none;
    border-radius: 999px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.btn--primary {
    color: var(--parchemin-clair);
    background: linear-gradient(135deg, var(--rouge-vif), var(--rouge-fonce));
    box-shadow: 0 8px 20px rgba(110, 18, 20, 0.4);
}

.btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(110, 18, 20, 0.55);
}

.btn--ghost {
    color: var(--parchemin-clair);
    border-color: rgba(244, 232, 208, 0.55);
    background: rgba(244, 232, 208, 0.06);
}

.btn--ghost:hover {
    border-color: var(--or-clair);
    color: var(--or-clair);
    transform: translateY(-2px);
}

.btn--dark {
    color: var(--parchemin-clair);
    background: linear-gradient(135deg, var(--brun-cuir), var(--brun-fonce));
    box-shadow: var(--ombre-douce);
}

.btn--dark:hover { transform: translateY(-2px); box-shadow: var(--ombre-forte); }

.btn--danger {
    color: #fff;
    background: linear-gradient(135deg, #b23a3a, #7a1d1d);
    box-shadow: 0 6px 16px rgba(110, 18, 20, 0.35);
}

.btn--danger:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(110, 18, 20, 0.5); }

/* ---------- Header / navigation ---------- */

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 2rem;
    background: rgba(28, 19, 13, 0.92);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(201, 162, 39, 0.35);
    box-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--parchemin);
    text-decoration: none;
    font-family: var(--font-titre);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 1px;
}

.brand strong { color: var(--or-clair); font-weight: 800; }

/* Logo de la navigation : hauteur fixe, largeur automatique.
   Le viewBox du SVG est déjà recadré sur le dessin (pas de vide haut/bas). */
.brand__logo {
    display: block;
    height: 46px;
    width: auto;
}

.main-nav ul {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
}

.main-nav a {
    color: var(--parchemin);
    text-decoration: none;
    font-family: var(--font-titre);
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.6px;
    padding: 0.5rem 0.95rem;
    border-radius: 999px;
    transition: background-color 0.2s, color 0.2s;
}

.main-nav a:hover { background-color: rgba(192, 40, 43, 0.85); color: #fff; }

.main-nav .nav-cta {
    background: linear-gradient(135deg, var(--rouge-vif), var(--rouge-fonce));
    color: #fff;
}

.main-nav .nav-cta:hover { box-shadow: 0 6px 16px rgba(110, 18, 20, 0.5); }

/* ---------- Layout sections ---------- */

main { flex: 1; }

.section {
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 5.5rem 0;
}

.section--alt {
    width: 100%;
    max-width: none;
    background:
        linear-gradient(rgba(232, 216, 184, 0.6), rgba(232, 216, 184, 0.6)),
        radial-gradient(circle at 20% 20%, rgba(154, 27, 30, 0.06), transparent 40%);
    border-top: 1px solid rgba(139, 106, 79, 0.3);
    border-bottom: 1px solid rgba(139, 106, 79, 0.3);
}

.section--alt > .section__inner {
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 5.5rem 0;
}

.section__head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 3rem;
}

.section__kicker {
    display: inline-block;
    font-family: var(--font-titre);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--rouge-dnd);
    padding: 0.35rem 1rem;
    border: 1px solid rgba(154, 27, 30, 0.35);
    border-radius: 999px;
    background: rgba(154, 27, 30, 0.06);
    margin-bottom: 1.1rem;
}

.section__head h2 {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--rouge-fonce);
    margin: 0 0 0.8rem;
}

.section__head p {
    color: var(--encre-doux);
    font-size: 1.12rem;
    margin: 0;
}

/* ---------- Actualités (accueil) ---------- */

.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.6rem;
}

.news-card {
    background: var(--parchemin-clair);
    border: 1px solid rgba(139, 106, 79, 0.4);
    border-left: 4px solid var(--rouge-dnd);
    border-radius: var(--rayon);
    overflow: hidden;
    box-shadow: var(--ombre-douce);
    transition: transform 0.2s ease, box-shadow 0.25s ease;
}

.news-card:hover { transform: translateY(-5px); box-shadow: var(--ombre-forte); }

.news-card__img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}

.news-card__body { padding: 1.6rem 1.8rem; }
.news-card__title { margin: 0 0 0.6rem; font-size: 1.25rem; color: var(--brun-cuir); }
.news-card__text { margin: 0; color: var(--encre-doux); }

/* ---------- HERO ---------- */

.hero {
    position: relative;
    overflow: hidden;
    color: var(--parchemin);
    background:
        radial-gradient(ellipse at 70% 10%, rgba(154, 27, 30, 0.35), transparent 55%),
        radial-gradient(ellipse at 10% 90%, rgba(74, 124, 89, 0.18), transparent 50%),
        linear-gradient(160deg, #2a1d16 0%, #1c130d 55%, #140d08 100%);
}

.hero::after {
    /* texture cuir subtile */
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image:
        repeating-linear-gradient(45deg, rgba(255,255,255,0.015) 0 2px, transparent 2px 6px);
    pointer-events: none;
}

/* Image de fond du héro : plein cadre, recadrée au centre. */
.hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}

/* Voile sombre par-dessus la photo pour garder le texte lisible. */
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(160deg, rgba(20, 13, 8, 0.78) 0%, rgba(28, 19, 13, 0.55) 45%, rgba(20, 13, 8, 0.82) 100%),
        radial-gradient(ellipse at 70% 12%, rgba(154, 27, 30, 0.28), transparent 55%);
}

.hero__inner {
    position: relative;
    z-index: 2;
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 6.5rem 0 7rem;
    max-width: 780px;
    text-align: center;
}

.hero__eyebrow {
    display: inline-block;
    font-family: var(--font-titre);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--or-clair);
    margin: 0 0 1.4rem;
    padding: 0.4rem 1.1rem;
    border: 1px solid rgba(201, 162, 39, 0.45);
    border-radius: 999px;
}

.hero__title {
    font-size: clamp(2.6rem, 7vw, 4.6rem);
    font-weight: 800;
    margin: 0 0 1.3rem;
    color: var(--parchemin-clair);
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.55);
}

.hero__title em {
    font-style: normal;
    color: var(--rouge-vif);
    text-shadow: 0 0 30px rgba(192, 40, 43, 0.5);
}

.hero__subtitle {
    font-size: clamp(1.05rem, 2.2vw, 1.3rem);
    color: rgba(244, 232, 208, 0.85);
    max-width: 600px;
    margin: 0 auto 2.4rem;
}

.hero__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 3.5rem;
}

.hero__stats {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 2.8rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.hero__stats li { text-align: center; }

.hero__stats .num {
    display: block;
    font-family: var(--font-titre);
    font-size: 2rem;
    font-weight: 700;
    color: var(--or-clair);
}

.hero__stats .lbl {
    font-size: 0.82rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(244, 232, 208, 0.65);
}

/* Dés flottants en décor */
.hero__dice {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.hero__dice .die-deco {
    position: absolute;
    color: rgba(201, 162, 39, 0.22);
    animation: float 9s ease-in-out infinite;
}

.hero__dice .d1 { width: 120px; top: 12%; left: 6%; animation-delay: 0s; color: rgba(192,40,43,0.25); }
.hero__dice .d2 { width: 90px;  top: 60%; left: 12%; animation-delay: 1.2s; }
.hero__dice .d3 { width: 150px; top: 18%; right: 7%; animation-delay: 0.6s; }
.hero__dice .d4 { width: 80px;  top: 68%; right: 14%; animation-delay: 2s; color: rgba(95,174,115,0.25); }
.hero__dice .d5 { width: 60px;  top: 40%; right: 30%; animation-delay: 1.6s; }

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-22px) rotate(8deg); }
}

@media (prefers-reduced-motion: reduce) {
    .hero__dice .die-deco { animation: none; }
}

/* ---------- Grilles & cartes ---------- */

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

.card {
    background: var(--parchemin-clair);
    border: 1px solid rgba(139, 106, 79, 0.4);
    border-radius: var(--rayon);
    padding: 2.1rem 1.8rem;
    box-shadow: var(--ombre-douce);
    transition: transform 0.2s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: var(--ombre-forte);
    border-color: var(--or);
}

.card__die {
    margin-bottom: 1.1rem;
}

.card h3 {
    font-size: 1.3rem;
    color: var(--brun-cuir);
    margin: 0 0 0.6rem;
}

.card p { margin: 0; color: var(--encre-doux); }

/* ---------- Formules ---------- */

.formule {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--parchemin-clair);
    border: 1px solid rgba(139, 106, 79, 0.4);
    border-radius: var(--rayon);
    padding: 2.2rem 1.9rem;
    box-shadow: var(--ombre-douce);
    transition: transform 0.2s ease, box-shadow 0.25s ease;
}

.formule:hover { transform: translateY(-6px); box-shadow: var(--ombre-forte); }

.formule--phare {
    border: 2px solid var(--rouge-dnd);
    background: linear-gradient(180deg, #fff7e6, var(--parchemin-clair));
}

.formule__badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, var(--rouge-vif), var(--rouge-fonce));
    color: #fff;
    font-family: var(--font-titre);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 0.3rem 1rem;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(110,18,20,0.4);
    white-space: nowrap;
}

.formule__icon { width: 46px; height: 46px; color: var(--rouge-dnd); margin-bottom: 0.9rem; }

.formule h3 {
    font-size: 1.45rem;
    color: var(--brun-cuir);
    margin: 0 0 0.3rem;
}

.formule__price {
    font-family: var(--font-titre);
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--rouge-dnd);
    margin: 0.2rem 0 1rem;
}

.formule__price span {
    font-family: var(--font-corps);
    font-size: 0.95rem;
    font-weight: 400;
    color: var(--encre-doux);
}

.formule ul {
    list-style: none;
    margin: 0 0 1.6rem;
    padding: 0;
    flex: 1;
}

.formule li {
    position: relative;
    padding: 0.4rem 0 0.4rem 1.7rem;
    border-bottom: 1px dashed rgba(139, 106, 79, 0.3);
    color: var(--encre-doux);
}

.formule li::before {
    content: "🎲";
    position: absolute;
    left: 0;
    font-size: 0.9rem;
}

.formule .btn { justify-content: center; width: 100%; }

/* ---------- Étapes (déroulé) ---------- */

.steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
}

.step {
    position: relative;
    text-align: center;
    padding: 1.5rem 1rem;
}

.step__die {
    width: 72px;
    height: 72px;
    margin: 0 auto 1rem;
    color: var(--rouge-dnd);
    position: relative;
}

.step__num {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-titre);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--parchemin-clair);
    padding-bottom: 6px;
}

.step h3 { font-size: 1.15rem; color: var(--brun-cuir); margin: 0 0 0.4rem; }
.step p { margin: 0; color: var(--encre-doux); font-size: 0.98rem; }

/* Bouton « Lancer le dé » (injecté en JS) + animation du dé */
.step__roll {
    margin-top: 1rem;
    font-size: 0.8rem;
    padding: 0.5rem 1.2rem;
}

.step__die img { width: 100%; height: 100%; }

.step__die img.is-rolling { animation: dice-roll 0.55s ease; }

@keyframes dice-roll {
    0%   { transform: rotate(0deg) scale(1); }
    50%  { transform: rotate(200deg) scale(1.18); }
    100% { transform: rotate(360deg) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .step__die img.is-rolling { animation: none; }
}

/* ---------- Le maître du jeu ---------- */

.mj {
    width: 100%;
    background:
        radial-gradient(ellipse at 80% 20%, rgba(154, 27, 30, 0.3), transparent 50%),
        linear-gradient(160deg, #2a1d16, #140d08);
    color: var(--parchemin);
    border-top: 1px solid rgba(201,162,39,0.3);
    border-bottom: 1px solid rgba(201,162,39,0.3);
}

.mj__inner {
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 5.5rem 0;
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 3rem;
    align-items: center;
}

.mj__portrait {
    border-radius: var(--rayon);
    background:
        radial-gradient(circle at 50% 35%, rgba(201,162,39,0.25), transparent 60%),
        linear-gradient(160deg, #3a2820, #1c130d);
    border: 2px solid rgba(201, 162, 39, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--ombre-forte);
}

.mj__portrait .die-deco { width: 55%; color: rgba(201,162,39,0.55); }

.mj__inner .section__kicker {
    color: var(--or-clair);
    border-color: rgba(201,162,39,0.4);
    background: rgba(201,162,39,0.08);
}

.mj h2 { font-size: clamp(1.8rem, 4vw, 2.5rem); color: var(--parchemin-clair); margin: 0.4rem 0 1rem; }
.mj p { color: rgba(244, 232, 208, 0.85); }

.mj__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
}

.mj__tags li {
    font-family: var(--font-titre);
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    padding: 0.4rem 0.95rem;
    border: 1px solid rgba(201,162,39,0.4);
    border-radius: 999px;
    color: var(--or-clair);
}

/* ---------- Témoignages ---------- */

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

.quote {
    background: var(--parchemin-clair);
    border: 1px solid rgba(139, 106, 79, 0.4);
    border-left: 4px solid var(--rouge-dnd);
    border-radius: var(--rayon);
    padding: 1.8rem;
    box-shadow: var(--ombre-douce);
}

.quote p { font-style: italic; margin: 0 0 1rem; color: var(--encre); }
.quote .stars { color: var(--or); letter-spacing: 2px; margin-bottom: 0.5rem; }
.quote .who { font-family: var(--font-titre); font-size: 0.92rem; color: var(--brun-cuir); font-weight: 600; }

/* ---------- Contact ---------- */

.contact {
    width: 100%;
    background:
        linear-gradient(160deg, #2a1d16, #1c130d);
    color: var(--parchemin);
}

.contact__inner {
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 5.5rem 0;
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 3rem;
    align-items: center;
}

.contact__intro .section__kicker {
    color: var(--or-clair);
    border-color: rgba(201,162,39,0.4);
    background: rgba(201,162,39,0.08);
}

.contact__intro h2 { font-size: clamp(1.8rem, 4vw, 2.5rem); color: var(--parchemin-clair); margin: 0.4rem 0 1rem; }
.contact__intro p { color: rgba(244, 232, 208, 0.85); }

.contact__list { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.contact__list li { display: flex; gap: 0.7rem; align-items: center; margin-bottom: 0.7rem; color: rgba(244,232,208,0.9); }
.contact__list .ico { color: var(--or-clair); font-size: 1.1rem; }

/* Carte parchemin du formulaire */
.contact-form {
    background: var(--parchemin-clair);
    background-image: radial-gradient(ellipse at top, rgba(139,106,79,0.08), transparent 60%);
    border: 1px solid rgba(201,162,39,0.4);
    border-radius: var(--rayon);
    padding: 2.3rem;
    box-shadow: var(--ombre-forte);
    color: var(--encre);
}

/* ---------- Formulaire externe (Google Forms, click-to-load) ---------- */

/* Ici la carte parchemin sert de simple cadre : on allège le padding. */
.contact-form--embed { padding: 1.2rem; }

.contact-embed { width: 100%; }

.contact-embed__iframe {
    display: block;
    width: 100%;
    max-width: 640px;
    height: 1138px;
    margin: 0 auto;
    border: 0;
    border-radius: 10px;
    background: #fff;
}

.contact-embed__placeholder {
    text-align: center;
    padding: 2.2rem 1.4rem;
    border: 1px dashed rgba(139, 106, 79, 0.55);
    border-radius: var(--rayon);
    background: rgba(232, 216, 184, 0.45);
}

.contact-embed__title {
    font-family: var(--font-titre);
    font-size: 1.15rem;
    color: var(--rouge-dnd);
    margin: 0 0 0.6rem;
}

.contact-embed__text {
    font-size: 0.95rem;
    color: var(--encre-doux);
    margin: 0 auto 1.3rem;
    max-width: 420px;
}

.contact-embed__alt {
    font-size: 0.85rem;
    color: var(--encre-doux);
    margin: 1.2rem 0 0;
}

/* ---------- Footer ---------- */

.site-footer {
    background: linear-gradient(180deg, #1c130d, #0f0a06);
    color: rgba(244, 232, 208, 0.75);
    border-top: 1px solid rgba(201, 162, 39, 0.3);
    padding: 3rem 0 1.5rem;
}

.site-footer__inner {
    width: min(1120px, 92%);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: space-between;
    align-items: flex-start;
}

.site-footer .brand { font-size: 1.25rem; margin-bottom: 0.6rem; }
.site-footer__inner p { margin: 0.2rem 0; font-size: 0.95rem; }

.site-footer__links { display: flex; gap: 1.4rem; flex-wrap: wrap; }
.site-footer__links a { color: rgba(244,232,208,0.8); text-decoration: none; font-size: 0.95rem; }
.site-footer__links a:hover { color: var(--or-clair); }

.site-footer__bottom {
    width: min(1120px, 92%);
    margin: 2rem auto 0;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(201,162,39,0.18);
    text-align: center;
    font-size: 0.85rem;
    color: rgba(244,232,208,0.5);
    letter-spacing: 0.5px;
}

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
    .grid--3, .steps, .quotes { grid-template-columns: 1fr 1fr; }
    .mj__inner, .contact__inner { grid-template-columns: 1fr; }
    .mj__portrait { max-width: 320px; margin: 0 auto; }
}

@media (max-width: 640px) {
    body { font-size: 1rem; }
    .site-header { padding: 0.6rem 1rem; }
    .main-nav ul { gap: 0.1rem; }
    .main-nav a { padding: 0.45rem 0.6rem; font-size: 0.78rem; }
    .main-nav .hide-mobile { display: none; }
    .brand__logo { height: 34px; }
    .rgpd-banner { padding: 1rem 1rem; gap: 0.8rem 1rem; }
    .rgpd-banner__actions .btn { padding: 0.6rem 1rem; font-size: 0.85rem; }
    .section, .section--alt > .section__inner { padding: 3.5rem 0; }
    .grid--3, .grid--2, .steps, .quotes { grid-template-columns: 1fr; }
    .hero__inner { padding: 4.5rem 0 5rem; }
    .hero__stats { gap: 1.6rem; }
    .mj__inner, .contact__inner, .mj__inner > *, .contact__inner > * { padding-left: 0; padding-right: 0; }
}

/* ============================================
   Administration
   ============================================ */

.admin {
    background:
        radial-gradient(ellipse at 80% 0%, rgba(154, 27, 30, 0.18), transparent 55%),
        linear-gradient(170deg, #2a1d16, #140d08);
    color: var(--parchemin);
    min-height: 100%;
}

.admin__inner {
    width: min(1180px, 92%);
    margin: 0 auto;
    padding: 3rem 0 5rem;
}

.admin__head {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid rgba(201, 162, 39, 0.3);
}

.admin__head .section__kicker {
    color: var(--or-clair);
    border-color: rgba(201, 162, 39, 0.4);
    background: rgba(201, 162, 39, 0.08);
}

.admin__head h1 {
    font-size: clamp(2rem, 4vw, 2.8rem);
    color: var(--parchemin-clair);
    margin: 0.5rem 0 0.4rem;
}

.admin__head p { margin: 0; color: rgba(244, 232, 208, 0.8); }

.admin__head-actions { display: flex; gap: 0.7rem; flex-wrap: wrap; }

/* Flash */
.admin-flash {
    padding: 0.9rem 1.2rem;
    border-radius: 10px;
    margin-bottom: 1rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.admin-flash--success { background: rgba(74, 124, 89, 0.2); border-color: var(--potion-vif); color: #d7f0df; }
.admin-flash--error { background: rgba(178, 58, 58, 0.22); border-color: #e08a8a; color: #f6dcdc; }

/* Blocs */
.admin-block { margin-top: 3rem; }

.admin-block__title {
    font-size: 1.5rem;
    color: var(--or-clair);
    margin: 0 0 1.4rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid rgba(201, 162, 39, 0.2);
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
    align-items: start;
}

.admin-card {
    background: var(--parchemin-clair);
    color: var(--encre);
    border: 1px solid rgba(201, 162, 39, 0.35);
    border-radius: var(--rayon);
    padding: 1.6rem;
    box-shadow: var(--ombre-douce);
}

.admin-card--new {
    background: rgba(244, 232, 208, 0.06);
    color: var(--parchemin);
    border-style: dashed;
    border-color: rgba(201, 162, 39, 0.5);
}

.admin-card__new-title { margin: 0 0 1rem; font-size: 1.15rem; color: var(--or-clair); }

.admin-card--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
    max-width: 720px;
}
.admin-card--inline .admin-field { flex: 1; min-width: 240px; margin: 0; }

.admin-field { margin-bottom: 1rem; display: flex; flex-direction: column; }

.admin-field label {
    font-family: var(--font-titre);
    font-size: 0.78rem;
    letter-spacing: 0.4px;
    font-weight: 600;
    margin-bottom: 0.35rem;
    color: var(--brun-cuir);
}

.admin-card--new .admin-field label { color: var(--or-clair); }

.admin-field input,
.admin-field textarea {
    font-family: var(--font-corps);
    font-size: 0.98rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--brun-clair);
    border-radius: 8px;
    background: #fffdf6;
    color: var(--encre);
    resize: vertical;
}

.admin-field input:focus,
.admin-field textarea:focus {
    outline: none;
    border-color: var(--rouge-dnd);
    box-shadow: 0 0 0 3px rgba(154, 27, 30, 0.15);
}
/* ============================================
.admin-row2 { display: grid; grid-template-columns: 0.5fr 0.5fr; gap: 0.6rem; }
   ============================================ */


.admin-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: var(--brun-cuir);
    margin: 0.2rem 0 1rem;
    cursor: pointer;
}
.admin-card--new .admin-check { color: rgba(244, 232, 208, 0.85); }
.admin-check input { width: 18px; height: 18px; accent-color: var(--rouge-dnd); }

.admin-card__actions { display: flex; gap: 0.7rem; flex-wrap: wrap; margin-top: 0.4rem; }
.admin-card__actions .btn,
.admin-card .btn { font-size: 0.85rem; padding: 0.6rem 1.3rem; }

/* Avis */
.admin-card--avis { display: flex; flex-direction: column; gap: 0.6rem; }
.admin-avis__stars { color: var(--or); letter-spacing: 2px; font-size: 1.05rem; }
.admin-avis__message { font-style: italic; margin: 0; }
.admin-avis__author { margin: 0; font-family: var(--font-titre); font-size: 0.85rem; color: var(--brun-cuir); font-weight: 600; }
.admin-card--avis form { margin-top: auto; }

.admin-empty { color: rgba(244, 232, 208, 0.6); font-style: italic; }

/* Actualités */
.admin-subtitle {
    color: var(--or-clair);
    font-size: 1.05rem;
    margin: 2rem 0 1rem;
    opacity: 0.85;
}

.admin-actu__img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    border-radius: 8px;
    margin: 0.6rem 0;
}
.admin-actu__title { margin: 0.4rem 0 0.5rem; font-size: 1.2rem; color: var(--brun-cuir); }
.admin-actu__desc { margin: 0 0 1.1rem; color: var(--encre-doux); }

.admin-card--archived { opacity: 0.72; }

.admin-tag {
    display: inline-block;
    font-family: var(--font-titre);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    padding: 0.2rem 0.7rem;
    border-radius: 999px;
}
.admin-tag--on { background: rgba(74, 124, 89, 0.18); color: #2f7a49; }
.admin-tag--off { background: rgba(92, 64, 51, 0.15); color: var(--brun-cuir); }

@media (max-width: 640px) {
    .admin-grid { grid-template-columns: 1fr; }
}

/* ============================================
   Bannière de consentement RGPD
   ============================================ */

/* L'attribut hidden doit gagner sur le display: flex ci-dessous */
.rgpd-banner[hidden] {
    display: none;
}

.rgpd-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem 2rem;
    padding: 1.1rem 1.5rem;
    background: var(--brun-noir);
    color: var(--parchemin);
    box-shadow: 0 -10px 30px rgba(28, 19, 13, 0.35);
}

.rgpd-banner p {
    margin: 0;
    max-width: 56rem;
    font-size: 0.95rem;
    line-height: 1.55;
}

.rgpd-banner__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    max-width: 100%;
}

/* Détail déplié par le bouton « En savoir plus » */
.rgpd-banner__detail {
    flex-basis: 100%;
    max-width: 56rem;
    margin: 0;
    padding-left: 1rem;
    border-left: 3px solid var(--or);
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--parchemin-fonce);
}

.btn--info {
    background: transparent;
    color: var(--parchemin);
    border: 1px solid rgba(244, 232, 208, 0.45);
}

.btn--info:hover {
    background: rgba(244, 232, 208, 0.12);
}

/* ============================================
   Formulaire de contact : anti-spam & retours
   ============================================ */

/* Honeypot : champ caché aux humains, seuls les robots le remplissent */
.hp-field {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.form-feedback {
    padding: 0.75rem 1rem;
    border-radius: var(--rayon);
    font-weight: 600;
}

.form-feedback--ok {
    background: var(--potion);
    color: var(--parchemin-clair);
}

.form-feedback--err {
    background: var(--rouge-fonce);
    color: var(--parchemin-clair);
}

.form-note {
    font-size: 0.85rem;
    color: var(--encre-doux);
    margin: 0.6rem 0 0;
}

/* ============================================
   Pages légales (mentions légales, CGV)
   ============================================ */

.legal {
    max-width: 52rem;
    margin: 0 auto;
    padding: 3.5rem 1.5rem 4.5rem;
}

.legal h1 {
    margin: 0.3rem 0 0.4rem;
    font-size: clamp(1.9rem, 4vw, 2.6rem);
    color: var(--rouge-dnd);
}

.legal h2 {
    margin: 2.2rem 0 0.6rem;
    font-size: 1.3rem;
    color: var(--brun-cuir);
}

.legal p,
.legal li {
    margin: 0.5rem 0;
}

.legal__maj {
    font-style: italic;
    color: var(--encre-doux);
}

.legal__avertissement {
    padding: 0.8rem 1.1rem;
    border-radius: var(--rayon);
    background: var(--parchemin-fonce);
    border: 1px dashed var(--or);
    font-size: 0.95rem;
}

/* Passage provisoire (Lorem ipsum) à remplacer avant mise en ligne */
.a-completer {
    background: rgba(201, 162, 39, 0.28);
    border-bottom: 2px dotted var(--or);
    padding: 0 0.25rem;
}

/* ---------- Qu'est-ce que le JDR ? (encadré pédagogique) ---------- */
.jdr-box {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
    background: linear-gradient(180deg, var(--parchemin-clair), var(--parchemin));
    border: 1px solid rgba(201, 162, 39, 0.55);
    border-radius: var(--rayon);
    box-shadow: var(--ombre-douce);
    padding: 3rem 2.4rem;
    position: relative;
}
.jdr-box::before {
    /* liseré or intérieur — effet parchemin encadré */
    content: "";
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(201, 162, 39, 0.28);
    border-radius: calc(var(--rayon) - 6px);
    pointer-events: none;
}
.jdr-box__title {
    font-size: clamp(1.7rem, 4vw, 2.4rem);
    color: var(--rouge-fonce);
    margin: 0 0 1rem;
}
.jdr-box__lead {
    color: var(--encre-doux);
    font-size: 1.12rem;
    margin: 0 auto 2rem;
    max-width: 620px;
}
.jdr-roles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem;
    text-align: left;
    margin-bottom: 2rem;
}
.jdr-role {
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(139, 106, 79, 0.28);
    border-radius: 10px;
    padding: 1.2rem 1.3rem;
}
.jdr-role__tag {
    display: inline-block;
    font-family: var(--font-titre);
    font-weight: 600;
    color: var(--rouge-dnd);
    margin-bottom: 0.5rem;
}
.jdr-role p { margin: 0; color: var(--encre-doux); }
.jdr-box__dice {
    margin: 0;
    font-size: 1.08rem;
    color: var(--encre);
    font-style: italic;
}
@media (max-width: 640px) {
    .jdr-roles { grid-template-columns: 1fr; }
    .jdr-box { padding: 2.2rem 1.4rem; }
}

/* ---------- Dé animé de la section JDR ---------- */
.jdr-dice-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}
.jdr-dice-note .jdr-box__dice { max-width: 520px; text-align: left; }
.jdr-die {
    flex: none;
    width: 52px;
    height: 52px;
    display: inline-flex;
    filter: drop-shadow(0 6px 10px rgba(28, 19, 13, 0.25));
}
.jdr-die img {
    width: 100%;
    height: 100%;
    transform-origin: 50% 55%;
    animation: jdr-tumble 4s ease-in-out infinite;
}
.jdr-die:hover img { animation-duration: 1.1s; }  /* survol : le dé roule plus vite */

@keyframes jdr-tumble {
    0%, 55% { transform: translateY(0) rotate(0deg); }
    70%     { transform: translateY(-10px) rotate(190deg); }
    85%     { transform: translateY(0) rotate(360deg); }
    100%    { transform: translateY(0) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .jdr-die img { animation: none; }
}

/* ---------- Séparateur thématique (remplace le <hr>) ---------- */
.rune-sep {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    width: min(1120px, 92%);
    margin: 2.5rem auto;
    color: var(--or);
}
.rune-sep::before,
.rune-sep::after {
    content: "";
    flex: 1;
    height: 2px;
}
.rune-sep::before { background: linear-gradient(90deg, transparent, rgba(201, 162, 39, 0.55)); }
.rune-sep::after  { background: linear-gradient(90deg, rgba(201, 162, 39, 0.55), transparent); }
.rune-sep__icon {
    flex: none;
    width: 34px;
    height: 34px;
    display: inline-flex;
    color: var(--or);
}
.rune-sep__icon svg { width: 100%; height: 100%; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNBLGdDQUFnQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRTtBQUNwRTtJQUNJLFVBQVU7SUFDVixXQUFXO0lBQ1gsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixzREFBc0Q7QUFDMUQ7QUFDQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1oseUJBQXlCO0lBQ3pCLDZDQUE2QztBQUNqRDtBQUNBLHFCQUFxQix3QkFBd0IsRUFBRSxHQUFHLG1DQUFtQzs7QUFFckY7SUFDSSxVQUFVLHFDQUFxQyxFQUFFO0lBQ2pELFVBQVUsMkNBQTJDLEVBQUU7SUFDdkQsVUFBVSx1Q0FBdUMsRUFBRTtJQUNuRCxVQUFVLHVDQUF1QyxFQUFFO0FBQ3ZEO0FBQ0E7SUFDSSxlQUFlLGVBQWUsRUFBRTtBQUNwQzs7QUFFQSxtRUFBbUU7QUFDbkU7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCx1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLGdCQUFnQjtBQUNwQjtBQUNBOztJQUVJLFdBQVc7SUFDWCxPQUFPO0lBQ1AsV0FBVztBQUNmO0FBQ0Esb0JBQW9CLHlFQUF5RSxFQUFFO0FBQy9GLG9CQUFvQix5RUFBeUUsRUFBRTtBQUMvRjtJQUNJLFVBQVU7SUFDVixXQUFXO0lBQ1gsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixnQkFBZ0I7QUFDcEI7QUFDQSxzQkFBc0IsV0FBVyxFQUFFLFlBQVksRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEaWNlIEFkdmVudHVyZSDigJQgTWHDrnRyZSBkdSBqZXUgLyBKZFIgcGxhdGVhdVxyXG4gICBEaXJlY3Rpb24gYXJ0aXN0aXF1ZSA6IGTDqXMgKEQ0wrdENsK3RDIwwrdEMTAwKSxcclxuICAgcm91Z2UgRG9uam9ucyAmIERyYWdvbnMsIGN1aXIsIHBhcmNoZW1pbiwgcG90aW9ucy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbjpyb290IHtcclxuICAgIC8qIFJvdWdlIEQmRCAqL1xyXG4gICAgLS1yb3VnZS1kbmQ6ICM5YTFiMWU7XHJcbiAgICAtLXJvdWdlLXZpZjogI2MwMjgyYjtcclxuICAgIC0tcm91Z2UtZm9uY2U6ICM2ZTEyMTQ7XHJcblxyXG4gICAgLyogQ3VpciAvIHNhYyDDoCBkb3MgLyBhcm11cmUgKi9cclxuICAgIC0tYnJ1bi1jdWlyOiAjNWM0MDMzO1xyXG4gICAgLS1icnVuLWNsYWlyOiAjOGI2YTRmO1xyXG4gICAgLS1icnVuLWZvbmNlOiAjMmExZDE2O1xyXG4gICAgLS1icnVuLW5vaXI6ICMxYzEzMGQ7XHJcblxyXG4gICAgLyogUGFyY2hlbWluICovXHJcbiAgICAtLXBhcmNoZW1pbjogI2Y0ZThkMDtcclxuICAgIC0tcGFyY2hlbWluLWNsYWlyOiAjZmJmM2UwO1xyXG4gICAgLS1wYXJjaGVtaW4tZm9uY2U6ICNlOGQ4Yjg7XHJcblxyXG4gICAgLyogQWNjZW50cyA6IG9yICh0csOpc29yKSAmIHBvdGlvbiAqL1xyXG4gICAgLS1vcjogI2M5YTIyNztcclxuICAgIC0tb3ItY2xhaXI6ICNlM2MyNWE7XHJcbiAgICAtLXBvdGlvbjogIzRhN2M1OTtcclxuICAgIC0tcG90aW9uLXZpZjogIzVmYWU3MztcclxuXHJcbiAgICAtLWVuY3JlOiAjMmUyNDE4O1xyXG4gICAgLS1lbmNyZS1kb3V4OiAjNWE0YjM4O1xyXG5cclxuICAgIC0tb21icmUtZG91Y2U6IDAgMTBweCAzMHB4IHJnYmEoMjgsIDE5LCAxMywgMC4xOCk7XHJcbiAgICAtLW9tYnJlLWZvcnRlOiAwIDE4cHggNDVweCByZ2JhKDI4LCAxOSwgMTMsIDAuMzUpO1xyXG4gICAgLS1yYXlvbjogMTRweDtcclxuXHJcbiAgICAtLWZvbnQtdGl0cmU6ICdDaW56ZWwnLCBHZW9yZ2lhLCBzZXJpZjtcclxuICAgIC0tZm9udC1jb3JwczogJ1NwZWN0cmFsJywgR2VvcmdpYSwgJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmO1xyXG59XHJcblxyXG4qIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG5cclxuaHRtbCB7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9XHJcblxyXG5ib2R5IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcmNoZW1pbik7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxyXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBsZWZ0LCByZ2JhKDEzOSwgMTA2LCA3OSwgMC4xMiksIHRyYW5zcGFyZW50IDU1JSksXHJcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgYm90dG9tIHJpZ2h0LCByZ2JhKDE1NCwgMjcsIDMwLCAwLjA4KSwgdHJhbnNwYXJlbnQgNTUlKTtcclxuICAgIGNvbG9yOiB2YXIoLS1lbmNyZSk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1jb3Jwcyk7XHJcbiAgICBmb250LXNpemU6IDEuMDVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS43O1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG5cclxuaDEsIGgyLCBoMyB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRyZSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcclxufVxyXG5cclxuYSB7IGNvbG9yOiB2YXIoLS1yb3VnZS1kbmQpOyB9XHJcblxyXG5pbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGJsb2NrOyB9XHJcblxyXG5ociB7Y29sb3I6ICMwZjBhMDY7fVxyXG5cclxuLyogLS0tLS0tLS0tLSBCb3V0b25zIC0tLS0tLS0tLS0gKi9cclxuXHJcbi5idG4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjU1cmVtO1xyXG4gICAgcGFkZGluZzogMC44NXJlbSAxLjlyZW07XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRyZSk7XHJcbiAgICBmb250LXNpemU6IDAuOThyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMjVzIGVhc2UsIGJhY2tncm91bmQgMC4yNXMgZWFzZTtcclxufVxyXG5cclxuLmJ0bi0tcHJpbWFyeSB7XHJcbiAgICBjb2xvcjogdmFyKC0tcGFyY2hlbWluLWNsYWlyKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXJvdWdlLXZpZiksIHZhcigtLXJvdWdlLWZvbmNlKSk7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMTEwLCAxOCwgMjAsIDAuNCk7XHJcbn1cclxuXHJcbi5idG4tLXByaW1hcnk6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgxMTAsIDE4LCAyMCwgMC41NSk7XHJcbn1cclxuXHJcbi5idG4tLWdob3N0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0NCwgMjMyLCAyMDgsIDAuNTUpO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDIzMiwgMjA4LCAwLjA2KTtcclxufVxyXG5cclxuLmJ0bi0tZ2hvc3Q6aG92ZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1vci1jbGFpcik7XHJcbiAgICBjb2xvcjogdmFyKC0tb3ItY2xhaXIpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG59XHJcblxyXG4uYnRuLS1kYXJrIHtcclxuICAgIGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnJ1bi1jdWlyKSwgdmFyKC0tYnJ1bi1mb25jZSkpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tb21icmUtZG91Y2UpO1xyXG59XHJcblxyXG4uYnRuLS1kYXJrOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OiB2YXIoLS1vbWJyZS1mb3J0ZSk7IH1cclxuXHJcbi5idG4tLWRhbmdlciB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNiMjNhM2EsICM3YTFkMWQpO1xyXG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDExMCwgMTgsIDIwLCAwLjM1KTtcclxufVxyXG5cclxuLmJ0bi0tZGFuZ2VyOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OiAwIDEwcHggMjJweCByZ2JhKDExMCwgMTgsIDIwLCAwLjUpOyB9XHJcblxyXG4vKiAtLS0tLS0tLS0tIEhlYWRlciAvIG5hdmlnYXRpb24gLS0tLS0tLS0tLSAqL1xyXG5cclxuLnNpdGUtaGVhZGVyIHtcclxuICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB6LWluZGV4OiA1MDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZ2FwOiAxcmVtO1xyXG4gICAgcGFkZGluZzogMC43cmVtIDJyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI4LCAxOSwgMTMsIDAuOTIpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMDEsIDE2MiwgMzksIDAuMzUpO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggMThweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xyXG59XHJcblxyXG4uYnJhbmQge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjZyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tcGFyY2hlbWluKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdHJlKTtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbn1cclxuXHJcbi5icmFuZCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tb3ItY2xhaXIpOyBmb250LXdlaWdodDogODAwOyB9XHJcblxyXG4vKiBMb2dvIGRlIGxhIG5hdmlnYXRpb24gOiBoYXV0ZXVyIGZpeGUsIGxhcmdldXIgYXV0b21hdGlxdWUuXHJcbiAgIExlIHZpZXdCb3ggZHUgU1ZHIGVzdCBkw6lqw6AgcmVjYWRyw6kgc3VyIGxlIGRlc3NpbiAocGFzIGRlIHZpZGUgaGF1dC9iYXMpLiAqL1xyXG4uYnJhbmRfX2xvZ28ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDQ2cHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxufVxyXG5cclxuLm1haW4tbmF2IHVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMC40cmVtO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLm1haW4tbmF2IGEge1xyXG4gICAgY29sb3I6IHZhcigtLXBhcmNoZW1pbik7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRyZSk7XHJcbiAgICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAuOTVyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycztcclxufVxyXG5cclxuLm1haW4tbmF2IGE6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MiwgNDAsIDQzLCAwLjg1KTsgY29sb3I6ICNmZmY7IH1cclxuXHJcbi5tYWluLW5hdiAubmF2LWN0YSB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1yb3VnZS12aWYpLCB2YXIoLS1yb3VnZS1mb25jZSkpO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5tYWluLW5hdiAubmF2LWN0YTpob3ZlciB7IGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgxMTAsIDE4LCAyMCwgMC41KTsgfVxyXG5cclxuLyogLS0tLS0tLS0tLSBMYXlvdXQgc2VjdGlvbnMgLS0tLS0tLS0tLSAqL1xyXG5cclxubWFpbiB7IGZsZXg6IDE7IH1cclxuXHJcbi5zZWN0aW9uIHtcclxuICAgIHdpZHRoOiBtaW4oMTEyMHB4LCA5MiUpO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiA1LjVyZW0gMDtcclxufVxyXG5cclxuLnNlY3Rpb24tLWFsdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6XHJcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoMjMyLCAyMTYsIDE4NCwgMC42KSwgcmdiYSgyMzIsIDIxNiwgMTg0LCAwLjYpKSxcclxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAyMCUsIHJnYmEoMTU0LCAyNywgMzAsIDAuMDYpLCB0cmFuc3BhcmVudCA0MCUpO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTM5LCAxMDYsIDc5LCAwLjMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTM5LCAxMDYsIDc5LCAwLjMpO1xyXG59XHJcblxyXG4uc2VjdGlvbi0tYWx0ID4gLnNlY3Rpb25fX2lubmVyIHtcclxuICAgIHdpZHRoOiBtaW4oMTEyMHB4LCA5MiUpO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiA1LjVyZW0gMDtcclxufVxyXG5cclxuLnNlY3Rpb25fX2hlYWQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWF4LXdpZHRoOiA3MjBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvIDNyZW07XHJcbn1cclxuXHJcbi5zZWN0aW9uX19raWNrZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0cmUpO1xyXG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAyLjVweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBjb2xvcjogdmFyKC0tcm91Z2UtZG5kKTtcclxuICAgIHBhZGRpbmc6IDAuMzVyZW0gMXJlbTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTU0LCAyNywgMzAsIDAuMzUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1NCwgMjcsIDMwLCAwLjA2KTtcclxuICAgIG1hcmdpbi1ib3R0b206IDEuMXJlbTtcclxufVxyXG5cclxuLnNlY3Rpb25fX2hlYWQgaDIge1xyXG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDR2dywgMi42cmVtKTtcclxuICAgIGNvbG9yOiB2YXIoLS1yb3VnZS1mb25jZSk7XHJcbiAgICBtYXJnaW46IDAgMCAwLjhyZW07XHJcbn1cclxuXHJcbi5zZWN0aW9uX19oZWFkIHAge1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpO1xyXG4gICAgZm9udC1zaXplOiAxLjEycmVtO1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4vKiAtLS0tLS0tLS0tIEFjdHVhbGl0w6lzIChhY2N1ZWlsKSAtLS0tLS0tLS0tICovXHJcblxyXG4ubmV3cy1ncmlkIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDEuNnJlbTtcclxufVxyXG5cclxuLm5ld3MtY2FyZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzksIDEwNiwgNzksIDAuNCk7XHJcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXJvdWdlLWRuZCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYXlvbik7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tb21icmUtZG91Y2UpO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjI1cyBlYXNlO1xyXG59XHJcblxyXG4ubmV3cy1jYXJkOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOyBib3gtc2hhZG93OiB2YXIoLS1vbWJyZS1mb3J0ZSk7IH1cclxuXHJcbi5uZXdzLWNhcmRfX2ltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTgwcHg7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4ubmV3cy1jYXJkX19ib2R5IHsgcGFkZGluZzogMS42cmVtIDEuOHJlbTsgfVxyXG4ubmV3cy1jYXJkX190aXRsZSB7IG1hcmdpbjogMCAwIDAuNnJlbTsgZm9udC1zaXplOiAxLjI1cmVtOyBjb2xvcjogdmFyKC0tYnJ1bi1jdWlyKTsgfVxyXG4ubmV3cy1jYXJkX190ZXh0IHsgbWFyZ2luOiAwOyBjb2xvcjogdmFyKC0tZW5jcmUtZG91eCk7IH1cclxuXHJcbi8qIC0tLS0tLS0tLS0gSEVSTyAtLS0tLS0tLS0tICovXHJcblxyXG4uaGVybyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgY29sb3I6IHZhcigtLXBhcmNoZW1pbik7XHJcbiAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDcwJSAxMCUsIHJnYmEoMTU0LCAyNywgMzAsIDAuMzUpLCB0cmFuc3BhcmVudCA1NSUpLFxyXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDEwJSA5MCUsIHJnYmEoNzQsIDEyNCwgODksIDAuMTgpLCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxNjBkZWcsICMyYTFkMTYgMCUsICMxYzEzMGQgNTUlLCAjMTQwZDA4IDEwMCUpO1xyXG59XHJcblxyXG4uaGVybzo6YWZ0ZXIge1xyXG4gICAgLyogdGV4dHVyZSBjdWlyIHN1YnRpbGUgKi9cclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBpbnNldDogMDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxyXG4gICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4wMTUpIDAgMnB4LCB0cmFuc3BhcmVudCAycHggNnB4KTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4vKiBJbWFnZSBkZSBmb25kIGR1IGjDqXJvIDogcGxlaW4gY2FkcmUsIHJlY2FkcsOpZSBhdSBjZW50cmUuICovXHJcbi5oZXJvX19iZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBpbnNldDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIHotaW5kZXg6IDA7XHJcbn1cclxuXHJcbi8qIFZvaWxlIHNvbWJyZSBwYXItZGVzc3VzIGxhIHBob3RvIHBvdXIgZ2FyZGVyIGxlIHRleHRlIGxpc2libGUuICovXHJcbi5oZXJvOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAwO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCByZ2JhKDIwLCAxMywgOCwgMC43OCkgMCUsIHJnYmEoMjgsIDE5LCAxMywgMC41NSkgNDUlLCByZ2JhKDIwLCAxMywgOCwgMC44MikgMTAwJSksXHJcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNzAlIDEyJSwgcmdiYSgxNTQsIDI3LCAzMCwgMC4yOCksIHRyYW5zcGFyZW50IDU1JSk7XHJcbn1cclxuXHJcbi5oZXJvX19pbm5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgd2lkdGg6IG1pbigxMTIwcHgsIDkyJSk7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHBhZGRpbmc6IDYuNXJlbSAwIDdyZW07XHJcbiAgICBtYXgtd2lkdGg6IDc4MHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uaGVyb19fZXllYnJvdyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRyZSk7XHJcbiAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1vci1jbGFpcik7XHJcbiAgICBtYXJnaW46IDAgMCAxLjRyZW07XHJcbiAgICBwYWRkaW5nOiAwLjRyZW0gMS4xcmVtO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDEsIDE2MiwgMzksIDAuNDUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbn1cclxuXHJcbi5oZXJvX190aXRsZSB7XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDIuNnJlbSwgN3Z3LCA0LjZyZW0pO1xyXG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIG1hcmdpbjogMCAwIDEuM3JlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgNHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjU1KTtcclxufVxyXG5cclxuLmhlcm9fX3RpdGxlIGVtIHtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGNvbG9yOiB2YXIoLS1yb3VnZS12aWYpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMTkyLCA0MCwgNDMsIDAuNSk7XHJcbn1cclxuXHJcbi5oZXJvX19zdWJ0aXRsZSB7XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDEuMDVyZW0sIDIuMnZ3LCAxLjNyZW0pO1xyXG4gICAgY29sb3I6IHJnYmEoMjQ0LCAyMzIsIDIwOCwgMC44NSk7XHJcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMi40cmVtO1xyXG59XHJcblxyXG4uaGVyb19fYWN0aW9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiAxcmVtO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzLjVyZW07XHJcbn1cclxuXHJcbi5oZXJvX19zdGF0cyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDIuOHJlbTtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uaGVyb19fc3RhdHMgbGkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cclxuXHJcbi5oZXJvX19zdGF0cyAubnVtIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0cmUpO1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiB2YXIoLS1vci1jbGFpcik7XHJcbn1cclxuXHJcbi5oZXJvX19zdGF0cyAubGJsIHtcclxuICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBjb2xvcjogcmdiYSgyNDQsIDIzMiwgMjA4LCAwLjY1KTtcclxufVxyXG5cclxuLyogRMOpcyBmbG90dGFudHMgZW4gZMOpY29yICovXHJcbi5oZXJvX19kaWNlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAwO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uaGVyb19fZGljZSAuZGllLWRlY28ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29sb3I6IHJnYmEoMjAxLCAxNjIsIDM5LCAwLjIyKTtcclxuICAgIGFuaW1hdGlvbjogZmxvYXQgOXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5oZXJvX19kaWNlIC5kMSB7IHdpZHRoOiAxMjBweDsgdG9wOiAxMiU7IGxlZnQ6IDYlOyBhbmltYXRpb24tZGVsYXk6IDBzOyBjb2xvcjogcmdiYSgxOTIsNDAsNDMsMC4yNSk7IH1cclxuLmhlcm9fX2RpY2UgLmQyIHsgd2lkdGg6IDkwcHg7ICB0b3A6IDYwJTsgbGVmdDogMTIlOyBhbmltYXRpb24tZGVsYXk6IDEuMnM7IH1cclxuLmhlcm9fX2RpY2UgLmQzIHsgd2lkdGg6IDE1MHB4OyB0b3A6IDE4JTsgcmlnaHQ6IDclOyBhbmltYXRpb24tZGVsYXk6IDAuNnM7IH1cclxuLmhlcm9fX2RpY2UgLmQ0IHsgd2lkdGg6IDgwcHg7ICB0b3A6IDY4JTsgcmlnaHQ6IDE0JTsgYW5pbWF0aW9uLWRlbGF5OiAyczsgY29sb3I6IHJnYmEoOTUsMTc0LDExNSwwLjI1KTsgfVxyXG4uaGVyb19fZGljZSAuZDUgeyB3aWR0aDogNjBweDsgIHRvcDogNDAlOyByaWdodDogMzAlOyBhbmltYXRpb24tZGVsYXk6IDEuNnM7IH1cclxuXHJcbkBrZXlmcmFtZXMgZmxvYXQge1xyXG4gICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgcm90YXRlKDBkZWcpOyB9XHJcbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIycHgpIHJvdGF0ZSg4ZGVnKTsgfVxyXG59XHJcblxyXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gICAgLmhlcm9fX2RpY2UgLmRpZS1kZWNvIHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0gR3JpbGxlcyAmIGNhcnRlcyAtLS0tLS0tLS0tICovXHJcblxyXG4uZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogMS42cmVtOyB9XHJcbi5ncmlkLS0zIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfVxyXG4uZ3JpZC0tMiB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH1cclxuXHJcbi5jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcmNoZW1pbi1jbGFpcik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzOSwgMTA2LCA3OSwgMC40KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJheW9uKTtcclxuICAgIHBhZGRpbmc6IDIuMXJlbSAxLjhyZW07XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1vbWJyZS1kb3VjZSk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMjVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlO1xyXG59XHJcblxyXG4uY2FyZDpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1vbWJyZS1mb3J0ZSk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW9yKTtcclxufVxyXG5cclxuLmNhcmRfX2RpZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjFyZW07XHJcbn1cclxuXHJcbi5jYXJkIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWJydW4tY3Vpcik7XHJcbiAgICBtYXJnaW46IDAgMCAwLjZyZW07XHJcbn1cclxuXHJcbi5jYXJkIHAgeyBtYXJnaW46IDA7IGNvbG9yOiB2YXIoLS1lbmNyZS1kb3V4KTsgfVxyXG5cclxuLyogLS0tLS0tLS0tLSBGb3JtdWxlcyAtLS0tLS0tLS0tICovXHJcblxyXG4uZm9ybXVsZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcmNoZW1pbi1jbGFpcik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzOSwgMTA2LCA3OSwgMC40KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJheW9uKTtcclxuICAgIHBhZGRpbmc6IDIuMnJlbSAxLjlyZW07XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1vbWJyZS1kb3VjZSk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMjVzIGVhc2U7XHJcbn1cclxuXHJcbi5mb3JtdWxlOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpOyBib3gtc2hhZG93OiB2YXIoLS1vbWJyZS1mb3J0ZSk7IH1cclxuXHJcbi5mb3JtdWxlLS1waGFyZSB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1yb3VnZS1kbmQpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZjdlNiwgdmFyKC0tcGFyY2hlbWluLWNsYWlyKSk7XHJcbn1cclxuXHJcbi5mb3JtdWxlX19iYWRnZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xNHB4O1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcm91Z2UtdmlmKSwgdmFyKC0tcm91Z2UtZm9uY2UpKTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0cmUpO1xyXG4gICAgZm9udC1zaXplOiAwLjcycmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBwYWRkaW5nOiAwLjNyZW0gMXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDExMCwxOCwyMCwwLjQpO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLmZvcm11bGVfX2ljb24geyB3aWR0aDogNDZweDsgaGVpZ2h0OiA0NnB4OyBjb2xvcjogdmFyKC0tcm91Z2UtZG5kKTsgbWFyZ2luLWJvdHRvbTogMC45cmVtOyB9XHJcblxyXG4uZm9ybXVsZSBoMyB7XHJcbiAgICBmb250LXNpemU6IDEuNDVyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYnJ1bi1jdWlyKTtcclxuICAgIG1hcmdpbjogMCAwIDAuM3JlbTtcclxufVxyXG5cclxuLmZvcm11bGVfX3ByaWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdHJlKTtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiB2YXIoLS1yb3VnZS1kbmQpO1xyXG4gICAgbWFyZ2luOiAwLjJyZW0gMCAxcmVtO1xyXG59XHJcblxyXG4uZm9ybXVsZV9fcHJpY2Ugc3BhbiB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1jb3Jwcyk7XHJcbiAgICBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpO1xyXG59XHJcblxyXG4uZm9ybXVsZSB1bCB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwIDAgMS42cmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuXHJcbi5mb3JtdWxlIGxpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDAuNHJlbSAwIDAuNHJlbSAxLjdyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHJnYmEoMTM5LCAxMDYsIDc5LCAwLjMpO1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpO1xyXG59XHJcblxyXG4uZm9ybXVsZSBsaTo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwi8J+OslwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG59XHJcblxyXG4uZm9ybXVsZSAuYnRuIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHdpZHRoOiAxMDAlOyB9XHJcblxyXG4vKiAtLS0tLS0tLS0tIMOJdGFwZXMgKGTDqXJvdWzDqSkgLS0tLS0tLS0tLSAqL1xyXG5cclxuLnN0ZXBzIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xyXG4gICAgZ2FwOiAxLjRyZW07XHJcbn1cclxuXHJcbi5zdGVwIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDEuNXJlbSAxcmVtO1xyXG59XHJcblxyXG4uc3RlcF9fZGllIHtcclxuICAgIHdpZHRoOiA3MnB4O1xyXG4gICAgaGVpZ2h0OiA3MnB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMXJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1yb3VnZS1kbmQpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uc3RlcF9fbnVtIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdHJlKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcclxufVxyXG5cclxuLnN0ZXAgaDMgeyBmb250LXNpemU6IDEuMTVyZW07IGNvbG9yOiB2YXIoLS1icnVuLWN1aXIpOyBtYXJnaW46IDAgMCAwLjRyZW07IH1cclxuLnN0ZXAgcCB7IG1hcmdpbjogMDsgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpOyBmb250LXNpemU6IDAuOThyZW07IH1cclxuXHJcbi8qIEJvdXRvbiDCqyBMYW5jZXIgbGUgZMOpIMK7IChpbmplY3TDqSBlbiBKUykgKyBhbmltYXRpb24gZHUgZMOpICovXHJcbi5zdGVwX19yb2xsIHtcclxuICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgIHBhZGRpbmc6IDAuNXJlbSAxLjJyZW07XHJcbn1cclxuXHJcbi5zdGVwX19kaWUgaW1nIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfVxyXG5cclxuLnN0ZXBfX2RpZSBpbWcuaXMtcm9sbGluZyB7IGFuaW1hdGlvbjogZGljZS1yb2xsIDAuNTVzIGVhc2U7IH1cclxuXHJcbkBrZXlmcmFtZXMgZGljZS1yb2xsIHtcclxuICAgIDAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfVxyXG4gICAgNTAlICB7IHRyYW5zZm9ybTogcm90YXRlKDIwMGRlZykgc2NhbGUoMS4xOCk7IH1cclxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIHNjYWxlKDEpOyB9XHJcbn1cclxuXHJcbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcbiAgICAuc3RlcF9fZGllIGltZy5pcy1yb2xsaW5nIHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0gTGUgbWHDrnRyZSBkdSBqZXUgLS0tLS0tLS0tLSAqL1xyXG5cclxuLm1qIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgMjAlLCByZ2JhKDE1NCwgMjcsIDMwLCAwLjMpLCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxNjBkZWcsICMyYTFkMTYsICMxNDBkMDgpO1xyXG4gICAgY29sb3I6IHZhcigtLXBhcmNoZW1pbik7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMDEsMTYyLDM5LDAuMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMDEsMTYyLDM5LDAuMyk7XHJcbn1cclxuXHJcbi5tal9faW5uZXIge1xyXG4gICAgd2lkdGg6IG1pbigxMTIwcHgsIDkyJSk7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHBhZGRpbmc6IDUuNXJlbSAwO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMC44NWZyIDEuMTVmcjtcclxuICAgIGdhcDogM3JlbTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5tal9fcG9ydHJhaXQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmF5b24pO1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAzNSUsIHJnYmEoMjAxLDE2MiwzOSwwLjI1KSwgdHJhbnNwYXJlbnQgNjAlKSxcclxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCAjM2EyODIwLCAjMWMxMzBkKTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjAxLCAxNjIsIDM5LCAwLjQpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLW9tYnJlLWZvcnRlKTtcclxufVxyXG5cclxuLm1qX19wb3J0cmFpdCAuZGllLWRlY28geyB3aWR0aDogNTUlOyBjb2xvcjogcmdiYSgyMDEsMTYyLDM5LDAuNTUpOyB9XHJcblxyXG4ubWpfX2lubmVyIC5zZWN0aW9uX19raWNrZXIge1xyXG4gICAgY29sb3I6IHZhcigtLW9yLWNsYWlyKTtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMDEsMTYyLDM5LDAuNCk7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwxNjIsMzksMC4wOCk7XHJcbn1cclxuXHJcbi5taiBoMiB7IGZvbnQtc2l6ZTogY2xhbXAoMS44cmVtLCA0dncsIDIuNXJlbSk7IGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpOyBtYXJnaW46IDAuNHJlbSAwIDFyZW07IH1cclxuLm1qIHAgeyBjb2xvcjogcmdiYSgyNDQsIDIzMiwgMjA4LCAwLjg1KTsgfVxyXG5cclxuLm1qX190YWdzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDAuNnJlbTtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDEuNXJlbSAwIDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubWpfX3RhZ3MgbGkge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0cmUpO1xyXG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xyXG4gICAgcGFkZGluZzogMC40cmVtIDAuOTVyZW07XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMSwxNjIsMzksMC40KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gICAgY29sb3I6IHZhcigtLW9yLWNsYWlyKTtcclxufVxyXG5cclxuLyogLS0tLS0tLS0tLSBUw6ltb2lnbmFnZXMgLS0tLS0tLS0tLSAqL1xyXG5cclxuLnF1b3RlcyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7IGdhcDogMS42cmVtOyB9XHJcblxyXG4ucXVvdGUge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcGFyY2hlbWluLWNsYWlyKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM5LCAxMDYsIDc5LCAwLjQpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1yb3VnZS1kbmQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmF5b24pO1xyXG4gICAgcGFkZGluZzogMS44cmVtO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tb21icmUtZG91Y2UpO1xyXG59XHJcblxyXG4ucXVvdGUgcCB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgbWFyZ2luOiAwIDAgMXJlbTsgY29sb3I6IHZhcigtLWVuY3JlKTsgfVxyXG4ucXVvdGUgLnN0YXJzIHsgY29sb3I6IHZhcigtLW9yKTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XHJcbi5xdW90ZSAud2hvIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0cmUpOyBmb250LXNpemU6IDAuOTJyZW07IGNvbG9yOiB2YXIoLS1icnVuLWN1aXIpOyBmb250LXdlaWdodDogNjAwOyB9XHJcblxyXG4vKiAtLS0tLS0tLS0tIENvbnRhY3QgLS0tLS0tLS0tLSAqL1xyXG5cclxuLmNvbnRhY3Qge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxNjBkZWcsICMyYTFkMTYsICMxYzEzMGQpO1xyXG4gICAgY29sb3I6IHZhcigtLXBhcmNoZW1pbik7XHJcbn1cclxuXHJcbi5jb250YWN0X19pbm5lciB7XHJcbiAgICB3aWR0aDogbWluKDExMjBweCwgOTIlKTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgcGFkZGluZzogNS41cmVtIDA7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS4xZnI7XHJcbiAgICBnYXA6IDNyZW07XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uY29udGFjdF9faW50cm8gLnNlY3Rpb25fX2tpY2tlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tb3ItY2xhaXIpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIwMSwxNjIsMzksMC40KTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjAxLDE2MiwzOSwwLjA4KTtcclxufVxyXG5cclxuLmNvbnRhY3RfX2ludHJvIGgyIHsgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDR2dywgMi41cmVtKTsgY29sb3I6IHZhcigtLXBhcmNoZW1pbi1jbGFpcik7IG1hcmdpbjogMC40cmVtIDAgMXJlbTsgfVxyXG4uY29udGFjdF9faW50cm8gcCB7IGNvbG9yOiByZ2JhKDI0NCwgMjMyLCAyMDgsIDAuODUpOyB9XHJcblxyXG4uY29udGFjdF9fbGlzdCB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMS41cmVtIDAgMDsgcGFkZGluZzogMDsgfVxyXG4uY29udGFjdF9fbGlzdCBsaSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC43cmVtOyBhbGlnbi1pdGVtczogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAwLjdyZW07IGNvbG9yOiByZ2JhKDI0NCwyMzIsMjA4LDAuOSk7IH1cclxuLmNvbnRhY3RfX2xpc3QgLmljbyB7IGNvbG9yOiB2YXIoLS1vci1jbGFpcik7IGZvbnQtc2l6ZTogMS4xcmVtOyB9XHJcblxyXG4vKiBDYXJ0ZSBwYXJjaGVtaW4gZHUgZm9ybXVsYWlyZSAqL1xyXG4uY29udGFjdC1mb3JtIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcmNoZW1pbi1jbGFpcik7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AsIHJnYmEoMTM5LDEwNiw3OSwwLjA4KSwgdHJhbnNwYXJlbnQgNjAlKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAxLDE2MiwzOSwwLjQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmF5b24pO1xyXG4gICAgcGFkZGluZzogMi4zcmVtO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tb21icmUtZm9ydGUpO1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlKTtcclxufVxyXG5cclxuLyogLS0tLS0tLS0tLSBGb3JtdWxhaXJlIGV4dGVybmUgKEdvb2dsZSBGb3JtcywgY2xpY2stdG8tbG9hZCkgLS0tLS0tLS0tLSAqL1xyXG5cclxuLyogSWNpIGxhIGNhcnRlIHBhcmNoZW1pbiBzZXJ0IGRlIHNpbXBsZSBjYWRyZSA6IG9uIGFsbMOoZ2UgbGUgcGFkZGluZy4gKi9cclxuLmNvbnRhY3QtZm9ybS0tZW1iZWQgeyBwYWRkaW5nOiAxLjJyZW07IH1cclxuXHJcbi5jb250YWN0LWVtYmVkIHsgd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5jb250YWN0LWVtYmVkX19pZnJhbWUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogNjQwcHg7XHJcbiAgICBoZWlnaHQ6IDExMzhweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbn1cclxuXHJcbi5jb250YWN0LWVtYmVkX19wbGFjZWhvbGRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAyLjJyZW0gMS40cmVtO1xyXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTM5LCAxMDYsIDc5LCAwLjU1KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJheW9uKTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjMyLCAyMTYsIDE4NCwgMC40NSk7XHJcbn1cclxuXHJcbi5jb250YWN0LWVtYmVkX190aXRsZSB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRyZSk7XHJcbiAgICBmb250LXNpemU6IDEuMTVyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tcm91Z2UtZG5kKTtcclxuICAgIG1hcmdpbjogMCAwIDAuNnJlbTtcclxufVxyXG5cclxuLmNvbnRhY3QtZW1iZWRfX3RleHQge1xyXG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpO1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMS4zcmVtO1xyXG4gICAgbWF4LXdpZHRoOiA0MjBweDtcclxufVxyXG5cclxuLmNvbnRhY3QtZW1iZWRfX2FsdCB7XHJcbiAgICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tZW5jcmUtZG91eCk7XHJcbiAgICBtYXJnaW46IDEuMnJlbSAwIDA7XHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0gRm9vdGVyIC0tLS0tLS0tLS0gKi9cclxuXHJcbi5zaXRlLWZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMWMxMzBkLCAjMGYwYTA2KTtcclxuICAgIGNvbG9yOiByZ2JhKDI0NCwgMjMyLCAyMDgsIDAuNzUpO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjAxLCAxNjIsIDM5LCAwLjMpO1xyXG4gICAgcGFkZGluZzogM3JlbSAwIDEuNXJlbTtcclxufVxyXG5cclxuLnNpdGUtZm9vdGVyX19pbm5lciB7XHJcbiAgICB3aWR0aDogbWluKDExMjBweCwgOTIlKTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGdhcDogMnJlbTtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc2l0ZS1mb290ZXIgLmJyYW5kIHsgZm9udC1zaXplOiAxLjI1cmVtOyBtYXJnaW4tYm90dG9tOiAwLjZyZW07IH1cclxuLnNpdGUtZm9vdGVyX19pbm5lciBwIHsgbWFyZ2luOiAwLjJyZW0gMDsgZm9udC1zaXplOiAwLjk1cmVtOyB9XHJcblxyXG4uc2l0ZS1mb290ZXJfX2xpbmtzIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxLjRyZW07IGZsZXgtd3JhcDogd3JhcDsgfVxyXG4uc2l0ZS1mb290ZXJfX2xpbmtzIGEgeyBjb2xvcjogcmdiYSgyNDQsMjMyLDIwOCwwLjgpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtc2l6ZTogMC45NXJlbTsgfVxyXG4uc2l0ZS1mb290ZXJfX2xpbmtzIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tb3ItY2xhaXIpOyB9XHJcblxyXG4uc2l0ZS1mb290ZXJfX2JvdHRvbSB7XHJcbiAgICB3aWR0aDogbWluKDExMjBweCwgOTIlKTtcclxuICAgIG1hcmdpbjogMnJlbSBhdXRvIDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMS4ycmVtO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjAxLDE2MiwzOSwwLjE4KTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcclxuICAgIGNvbG9yOiByZ2JhKDI0NCwyMzIsMjA4LDAuNSk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0gUmVzcG9uc2l2ZSAtLS0tLS0tLS0tICovXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcclxuICAgIC5ncmlkLS0zLCAuc3RlcHMsIC5xdW90ZXMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IH1cclxuICAgIC5tal9faW5uZXIsIC5jb250YWN0X19pbm5lciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XHJcbiAgICAubWpfX3BvcnRyYWl0IHsgbWF4LXdpZHRoOiAzMjBweDsgbWFyZ2luOiAwIGF1dG87IH1cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XHJcbiAgICBib2R5IHsgZm9udC1zaXplOiAxcmVtOyB9XHJcbiAgICAuc2l0ZS1oZWFkZXIgeyBwYWRkaW5nOiAwLjZyZW0gMXJlbTsgfVxyXG4gICAgLm1haW4tbmF2IHVsIHsgZ2FwOiAwLjFyZW07IH1cclxuICAgIC5tYWluLW5hdiBhIHsgcGFkZGluZzogMC40NXJlbSAwLjZyZW07IGZvbnQtc2l6ZTogMC43OHJlbTsgfVxyXG4gICAgLm1haW4tbmF2IC5oaWRlLW1vYmlsZSB7IGRpc3BsYXk6IG5vbmU7IH1cclxuICAgIC5icmFuZF9fbG9nbyB7IGhlaWdodDogMzRweDsgfVxyXG4gICAgLnJncGQtYmFubmVyIHsgcGFkZGluZzogMXJlbSAxcmVtOyBnYXA6IDAuOHJlbSAxcmVtOyB9XHJcbiAgICAucmdwZC1iYW5uZXJfX2FjdGlvbnMgLmJ0biB7IHBhZGRpbmc6IDAuNnJlbSAxcmVtOyBmb250LXNpemU6IDAuODVyZW07IH1cclxuICAgIC5zZWN0aW9uLCAuc2VjdGlvbi0tYWx0ID4gLnNlY3Rpb25fX2lubmVyIHsgcGFkZGluZzogMy41cmVtIDA7IH1cclxuICAgIC5ncmlkLS0zLCAuZ3JpZC0tMiwgLnN0ZXBzLCAucXVvdGVzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cclxuICAgIC5oZXJvX19pbm5lciB7IHBhZGRpbmc6IDQuNXJlbSAwIDVyZW07IH1cclxuICAgIC5oZXJvX19zdGF0cyB7IGdhcDogMS42cmVtOyB9XHJcbiAgICAubWpfX2lubmVyLCAuY29udGFjdF9faW5uZXIsIC5tal9faW5uZXIgPiAqLCAuY29udGFjdF9faW5uZXIgPiAqIHsgcGFkZGluZy1sZWZ0OiAwOyBwYWRkaW5nLXJpZ2h0OiAwOyB9XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEFkbWluaXN0cmF0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uYWRtaW4ge1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgMCUsIHJnYmEoMTU0LCAyNywgMzAsIDAuMTgpLCB0cmFuc3BhcmVudCA1NSUpLFxyXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxNzBkZWcsICMyYTFkMTYsICMxNDBkMDgpO1xyXG4gICAgY29sb3I6IHZhcigtLXBhcmNoZW1pbik7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uYWRtaW5fX2lubmVyIHtcclxuICAgIHdpZHRoOiBtaW4oMTE4MHB4LCA5MiUpO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiAzcmVtIDAgNXJlbTtcclxufVxyXG5cclxuLmFkbWluX19oZWFkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDEuNXJlbTtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIwMSwgMTYyLCAzOSwgMC4zKTtcclxufVxyXG5cclxuLmFkbWluX19oZWFkIC5zZWN0aW9uX19raWNrZXIge1xyXG4gICAgY29sb3I6IHZhcigtLW9yLWNsYWlyKTtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMDEsIDE2MiwgMzksIDAuNCk7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwgMTYyLCAzOSwgMC4wOCk7XHJcbn1cclxuXHJcbi5hZG1pbl9faGVhZCBoMSB7XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgMi44cmVtKTtcclxuICAgIGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4tY2xhaXIpO1xyXG4gICAgbWFyZ2luOiAwLjVyZW0gMCAwLjRyZW07XHJcbn1cclxuXHJcbi5hZG1pbl9faGVhZCBwIHsgbWFyZ2luOiAwOyBjb2xvcjogcmdiYSgyNDQsIDIzMiwgMjA4LCAwLjgpOyB9XHJcblxyXG4uYWRtaW5fX2hlYWQtYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC43cmVtOyBmbGV4LXdyYXA6IHdyYXA7IH1cclxuXHJcbi8qIEZsYXNoICovXHJcbi5hZG1pbi1mbGFzaCB7XHJcbiAgICBwYWRkaW5nOiAwLjlyZW0gMS4ycmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5hZG1pbi1mbGFzaC0tc3VjY2VzcyB7IGJhY2tncm91bmQ6IHJnYmEoNzQsIDEyNCwgODksIDAuMik7IGJvcmRlci1jb2xvcjogdmFyKC0tcG90aW9uLXZpZik7IGNvbG9yOiAjZDdmMGRmOyB9XHJcbi5hZG1pbi1mbGFzaC0tZXJyb3IgeyBiYWNrZ3JvdW5kOiByZ2JhKDE3OCwgNTgsIDU4LCAwLjIyKTsgYm9yZGVyLWNvbG9yOiAjZTA4YThhOyBjb2xvcjogI2Y2ZGNkYzsgfVxyXG5cclxuLyogQmxvY3MgKi9cclxuLmFkbWluLWJsb2NrIHsgbWFyZ2luLXRvcDogM3JlbTsgfVxyXG5cclxuLmFkbWluLWJsb2NrX190aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1vci1jbGFpcik7XHJcbiAgICBtYXJnaW46IDAgMCAxLjRyZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMC42cmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjAxLCAxNjIsIDM5LCAwLjIpO1xyXG59XHJcblxyXG4uYWRtaW4tZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzIwcHgsIDFmcikpO1xyXG4gICAgZ2FwOiAxLjVyZW07XHJcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XHJcbn1cclxuXHJcbi5hZG1pbi1jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcmNoZW1pbi1jbGFpcik7XHJcbiAgICBjb2xvcjogdmFyKC0tZW5jcmUpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDEsIDE2MiwgMzksIDAuMzUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmF5b24pO1xyXG4gICAgcGFkZGluZzogMS42cmVtO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tb21icmUtZG91Y2UpO1xyXG59XHJcblxyXG4uYWRtaW4tY2FyZC0tbmV3IHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ0LCAyMzIsIDIwOCwgMC4wNik7XHJcbiAgICBjb2xvcjogdmFyKC0tcGFyY2hlbWluKTtcclxuICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIwMSwgMTYyLCAzOSwgMC41KTtcclxufVxyXG5cclxuLmFkbWluLWNhcmRfX25ldy10aXRsZSB7IG1hcmdpbjogMCAwIDFyZW07IGZvbnQtc2l6ZTogMS4xNXJlbTsgY29sb3I6IHZhcigtLW9yLWNsYWlyKTsgfVxyXG5cclxuLmFkbWluLWNhcmQtLWlubGluZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgZ2FwOiAxcmVtO1xyXG4gICAgbWF4LXdpZHRoOiA3MjBweDtcclxufVxyXG4uYWRtaW4tY2FyZC0taW5saW5lIC5hZG1pbi1maWVsZCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMjQwcHg7IG1hcmdpbjogMDsgfVxyXG5cclxuLmFkbWluLWZpZWxkIHsgbWFyZ2luLWJvdHRvbTogMXJlbTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxyXG5cclxuLmFkbWluLWZpZWxkIGxhYmVsIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdHJlKTtcclxuICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWJydW4tY3Vpcik7XHJcbn1cclxuXHJcbi5hZG1pbi1jYXJkLS1uZXcgLmFkbWluLWZpZWxkIGxhYmVsIHsgY29sb3I6IHZhcigtLW9yLWNsYWlyKTsgfVxyXG5cclxuLmFkbWluLWZpZWxkIGlucHV0LFxyXG4uYWRtaW4tZmllbGQgdGV4dGFyZWEge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtY29ycHMpO1xyXG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xyXG4gICAgcGFkZGluZzogMC42cmVtIDAuOHJlbTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJydW4tY2xhaXIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZmRmNjtcclxuICAgIGNvbG9yOiB2YXIoLS1lbmNyZSk7XHJcbiAgICByZXNpemU6IHZlcnRpY2FsO1xyXG59XHJcblxyXG4uYWRtaW4tZmllbGQgaW5wdXQ6Zm9jdXMsXHJcbi5hZG1pbi1maWVsZCB0ZXh0YXJlYTpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yb3VnZS1kbmQpO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTU0LCAyNywgMzAsIDAuMTUpO1xyXG59XHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi5hZG1pbi1yb3cyIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjVmciAwLjVmcjsgZ2FwOiAwLjZyZW07IH1cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4uYWRtaW4tY2hlY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDAuNXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWJydW4tY3Vpcik7XHJcbiAgICBtYXJnaW46IDAuMnJlbSAwIDFyZW07XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLmFkbWluLWNhcmQtLW5ldyAuYWRtaW4tY2hlY2sgeyBjb2xvcjogcmdiYSgyNDQsIDIzMiwgMjA4LCAwLjg1KTsgfVxyXG4uYWRtaW4tY2hlY2sgaW5wdXQgeyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyBhY2NlbnQtY29sb3I6IHZhcigtLXJvdWdlLWRuZCk7IH1cclxuXHJcbi5hZG1pbi1jYXJkX19hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiAwLjdyZW07IGZsZXgtd3JhcDogd3JhcDsgbWFyZ2luLXRvcDogMC40cmVtOyB9XHJcbi5hZG1pbi1jYXJkX19hY3Rpb25zIC5idG4sXHJcbi5hZG1pbi1jYXJkIC5idG4geyBmb250LXNpemU6IDAuODVyZW07IHBhZGRpbmc6IDAuNnJlbSAxLjNyZW07IH1cclxuXHJcbi8qIEF2aXMgKi9cclxuLmFkbWluLWNhcmQtLWF2aXMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuNnJlbTsgfVxyXG4uYWRtaW4tYXZpc19fc3RhcnMgeyBjb2xvcjogdmFyKC0tb3IpOyBsZXR0ZXItc3BhY2luZzogMnB4OyBmb250LXNpemU6IDEuMDVyZW07IH1cclxuLmFkbWluLWF2aXNfX21lc3NhZ2UgeyBmb250LXN0eWxlOiBpdGFsaWM7IG1hcmdpbjogMDsgfVxyXG4uYWRtaW4tYXZpc19fYXV0aG9yIHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRyZSk7IGZvbnQtc2l6ZTogMC44NXJlbTsgY29sb3I6IHZhcigtLWJydW4tY3Vpcik7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cclxuLmFkbWluLWNhcmQtLWF2aXMgZm9ybSB7IG1hcmdpbi10b3A6IGF1dG87IH1cclxuXHJcbi5hZG1pbi1lbXB0eSB7IGNvbG9yOiByZ2JhKDI0NCwgMjMyLCAyMDgsIDAuNik7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxyXG5cclxuLyogQWN0dWFsaXTDqXMgKi9cclxuLmFkbWluLXN1YnRpdGxlIHtcclxuICAgIGNvbG9yOiB2YXIoLS1vci1jbGFpcik7XHJcbiAgICBmb250LXNpemU6IDEuMDVyZW07XHJcbiAgICBtYXJnaW46IDJyZW0gMCAxcmVtO1xyXG4gICAgb3BhY2l0eTogMC44NTtcclxufVxyXG5cclxuLmFkbWluLWFjdHVfX2ltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTQwcHg7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIG1hcmdpbjogMC42cmVtIDA7XHJcbn1cclxuLmFkbWluLWFjdHVfX3RpdGxlIHsgbWFyZ2luOiAwLjRyZW0gMCAwLjVyZW07IGZvbnQtc2l6ZTogMS4ycmVtOyBjb2xvcjogdmFyKC0tYnJ1bi1jdWlyKTsgfVxyXG4uYWRtaW4tYWN0dV9fZGVzYyB7IG1hcmdpbjogMCAwIDEuMXJlbTsgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpOyB9XHJcblxyXG4uYWRtaW4tY2FyZC0tYXJjaGl2ZWQgeyBvcGFjaXR5OiAwLjcyOyB9XHJcblxyXG4uYWRtaW4tdGFnIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdHJlKTtcclxuICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XHJcbiAgICBwYWRkaW5nOiAwLjJyZW0gMC43cmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbn1cclxuLmFkbWluLXRhZy0tb24geyBiYWNrZ3JvdW5kOiByZ2JhKDc0LCAxMjQsIDg5LCAwLjE4KTsgY29sb3I6ICMyZjdhNDk7IH1cclxuLmFkbWluLXRhZy0tb2ZmIHsgYmFja2dyb3VuZDogcmdiYSg5MiwgNjQsIDUxLCAwLjE1KTsgY29sb3I6IHZhcigtLWJydW4tY3Vpcik7IH1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xyXG4gICAgLmFkbWluLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCYW5uacOocmUgZGUgY29uc2VudGVtZW50IFJHUERcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qIEwnYXR0cmlidXQgaGlkZGVuIGRvaXQgZ2FnbmVyIHN1ciBsZSBkaXNwbGF5OiBmbGV4IGNpLWRlc3NvdXMgKi9cclxuLnJncGQtYmFubmVyW2hpZGRlbl0ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnJncGQtYmFubmVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiAxcmVtIDJyZW07XHJcbiAgICBwYWRkaW5nOiAxLjFyZW0gMS41cmVtO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnJ1bi1ub2lyKTtcclxuICAgIGNvbG9yOiB2YXIoLS1wYXJjaGVtaW4pO1xyXG4gICAgYm94LXNoYWRvdzogMCAtMTBweCAzMHB4IHJnYmEoMjgsIDE5LCAxMywgMC4zNSk7XHJcbn1cclxuXHJcbi5yZ3BkLWJhbm5lciBwIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1heC13aWR0aDogNTZyZW07XHJcbiAgICBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41NTtcclxufVxyXG5cclxuLnJncGQtYmFubmVyX19hY3Rpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGdhcDogMC43NXJlbTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxufVxyXG5cclxuLyogRMOpdGFpbCBkw6lwbGnDqSBwYXIgbGUgYm91dG9uIMKrIEVuIHNhdm9pciBwbHVzIMK7ICovXHJcbi5yZ3BkLWJhbm5lcl9fZGV0YWlsIHtcclxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDU2cmVtO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1vcik7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xyXG4gICAgY29sb3I6IHZhcigtLXBhcmNoZW1pbi1mb25jZSk7XHJcbn1cclxuXHJcbi5idG4tLWluZm8ge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tcGFyY2hlbWluKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ0LCAyMzIsIDIwOCwgMC40NSk7XHJcbn1cclxuXHJcbi5idG4tLWluZm86aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDIzMiwgMjA4LCAwLjEyKTtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9ybXVsYWlyZSBkZSBjb250YWN0IDogYW50aS1zcGFtICYgcmV0b3Vyc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyogSG9uZXlwb3QgOiBjaGFtcCBjYWNow6kgYXV4IGh1bWFpbnMsIHNldWxzIGxlcyByb2JvdHMgbGUgcmVtcGxpc3NlbnQgKi9cclxuLmhwLWZpZWxkIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgbGVmdDogLTk5OTlweCAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZvcm0tZmVlZGJhY2sge1xyXG4gICAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmF5b24pO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmZvcm0tZmVlZGJhY2stLW9rIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBvdGlvbik7XHJcbiAgICBjb2xvcjogdmFyKC0tcGFyY2hlbWluLWNsYWlyKTtcclxufVxyXG5cclxuLmZvcm0tZmVlZGJhY2stLWVyciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yb3VnZS1mb25jZSk7XHJcbiAgICBjb2xvcjogdmFyKC0tcGFyY2hlbWluLWNsYWlyKTtcclxufVxyXG5cclxuLmZvcm0tbm90ZSB7XHJcbiAgICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tZW5jcmUtZG91eCk7XHJcbiAgICBtYXJnaW46IDAuNnJlbSAwIDA7XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFBhZ2VzIGzDqWdhbGVzIChtZW50aW9ucyBsw6lnYWxlcywgQ0dWKVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmxlZ2FsIHtcclxuICAgIG1heC13aWR0aDogNTJyZW07XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHBhZGRpbmc6IDMuNXJlbSAxLjVyZW0gNC41cmVtO1xyXG59XHJcblxyXG4ubGVnYWwgaDEge1xyXG4gICAgbWFyZ2luOiAwLjNyZW0gMCAwLjRyZW07XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDEuOXJlbSwgNHZ3LCAyLjZyZW0pO1xyXG4gICAgY29sb3I6IHZhcigtLXJvdWdlLWRuZCk7XHJcbn1cclxuXHJcbi5sZWdhbCBoMiB7XHJcbiAgICBtYXJnaW46IDIuMnJlbSAwIDAuNnJlbTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWJydW4tY3Vpcik7XHJcbn1cclxuXHJcbi5sZWdhbCBwLFxyXG4ubGVnYWwgbGkge1xyXG4gICAgbWFyZ2luOiAwLjVyZW0gMDtcclxufVxyXG5cclxuLmxlZ2FsX19tYWoge1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlLWRvdXgpO1xyXG59XHJcblxyXG4ubGVnYWxfX2F2ZXJ0aXNzZW1lbnQge1xyXG4gICAgcGFkZGluZzogMC44cmVtIDEuMXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJheW9uKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcmNoZW1pbi1mb25jZSk7XHJcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tb3IpO1xyXG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG59XHJcblxyXG4vKiBQYXNzYWdlIHByb3Zpc29pcmUgKExvcmVtIGlwc3VtKSDDoCByZW1wbGFjZXIgYXZhbnQgbWlzZSBlbiBsaWduZSAqL1xyXG4uYS1jb21wbGV0ZXIge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyMDEsIDE2MiwgMzksIDAuMjgpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCB2YXIoLS1vcik7XHJcbiAgICBwYWRkaW5nOiAwIDAuMjVyZW07XHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0gUXUnZXN0LWNlIHF1ZSBsZSBKRFIgPyAoZW5jYWRyw6kgcMOpZGFnb2dpcXVlKSAtLS0tLS0tLS0tICovXHJcbi5qZHItYm94IHtcclxuICAgIG1heC13aWR0aDogODIwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLXBhcmNoZW1pbi1jbGFpciksIHZhcigtLXBhcmNoZW1pbikpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDEsIDE2MiwgMzksIDAuNTUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmF5b24pO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tb21icmUtZG91Y2UpO1xyXG4gICAgcGFkZGluZzogM3JlbSAyLjRyZW07XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmpkci1ib3g6OmJlZm9yZSB7XHJcbiAgICAvKiBsaXNlcsOpIG9yIGludMOpcmlldXIg4oCUIGVmZmV0IHBhcmNoZW1pbiBlbmNhZHLDqSAqL1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAxMHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDEsIDE2MiwgMzksIDAuMjgpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1yYXlvbikgLSA2cHgpO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuLmpkci1ib3hfX3RpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43cmVtLCA0dncsIDIuNHJlbSk7XHJcbiAgICBjb2xvcjogdmFyKC0tcm91Z2UtZm9uY2UpO1xyXG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcclxufVxyXG4uamRyLWJveF9fbGVhZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tZW5jcmUtZG91eCk7XHJcbiAgICBmb250LXNpemU6IDEuMTJyZW07XHJcbiAgICBtYXJnaW46IDAgYXV0byAycmVtO1xyXG4gICAgbWF4LXdpZHRoOiA2MjBweDtcclxufVxyXG4uamRyLXJvbGVzIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgICBnYXA6IDEuNHJlbTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG59XHJcbi5qZHItcm9sZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzksIDEwNiwgNzksIDAuMjgpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIHBhZGRpbmc6IDEuMnJlbSAxLjNyZW07XHJcbn1cclxuLmpkci1yb2xlX190YWcge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0cmUpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGNvbG9yOiB2YXIoLS1yb3VnZS1kbmQpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG59XHJcbi5qZHItcm9sZSBwIHsgbWFyZ2luOiAwOyBjb2xvcjogdmFyKC0tZW5jcmUtZG91eCk7IH1cclxuLmpkci1ib3hfX2RpY2Uge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1zaXplOiAxLjA4cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWVuY3JlKTtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcclxuICAgIC5qZHItcm9sZXMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxyXG4gICAgLmpkci1ib3ggeyBwYWRkaW5nOiAyLjJyZW0gMS40cmVtOyB9XHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0gRMOpIGFuaW3DqSBkZSBsYSBzZWN0aW9uIEpEUiAtLS0tLS0tLS0tICovXHJcbi5qZHItZGljZS1ub3RlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IDFyZW07XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XHJcbn1cclxuLmpkci1kaWNlLW5vdGUgLmpkci1ib3hfX2RpY2UgeyBtYXgtd2lkdGg6IDUyMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB9XHJcbi5qZHItZGllIHtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgICB3aWR0aDogNTJweDtcclxuICAgIGhlaWdodDogNTJweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDZweCAxMHB4IHJnYmEoMjgsIDE5LCAxMywgMC4yNSkpO1xyXG59XHJcbi5qZHItZGllIGltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1NSU7XHJcbiAgICBhbmltYXRpb246IGpkci10dW1ibGUgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbn1cclxuLmpkci1kaWU6aG92ZXIgaW1nIHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjFzOyB9ICAvKiBzdXJ2b2wgOiBsZSBkw6kgcm91bGUgcGx1cyB2aXRlICovXHJcblxyXG5Aa2V5ZnJhbWVzIGpkci10dW1ibGUge1xyXG4gICAgMCUsIDU1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cclxuICAgIDcwJSAgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHJvdGF0ZSgxOTBkZWcpOyB9XHJcbiAgICA4NSUgICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgzNjBkZWcpOyB9XHJcbiAgICAxMDAlICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgzNjBkZWcpOyB9XHJcbn1cclxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAgIC5qZHItZGllIGltZyB7IGFuaW1hdGlvbjogbm9uZTsgfVxyXG59XHJcblxyXG4vKiAtLS0tLS0tLS0tIFPDqXBhcmF0ZXVyIHRow6ltYXRpcXVlIChyZW1wbGFjZSBsZSA8aHI+KSAtLS0tLS0tLS0tICovXHJcbi5ydW5lLXNlcCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMS4ycmVtO1xyXG4gICAgd2lkdGg6IG1pbigxMTIwcHgsIDkyJSk7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgY29sb3I6IHZhcigtLW9yKTtcclxufVxyXG4ucnVuZS1zZXA6OmJlZm9yZSxcclxuLnJ1bmUtc2VwOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZmxleDogMTtcclxuICAgIGhlaWdodDogMnB4O1xyXG59XHJcbi5ydW5lLXNlcDo6YmVmb3JlIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyMDEsIDE2MiwgMzksIDAuNTUpKTsgfVxyXG4ucnVuZS1zZXA6OmFmdGVyICB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMDEsIDE2MiwgMzksIDAuNTUpLCB0cmFuc3BhcmVudCk7IH1cclxuLnJ1bmUtc2VwX19pY29uIHtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgICB3aWR0aDogMzRweDtcclxuICAgIGhlaWdodDogMzRweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgY29sb3I6IHZhcigtLW9yKTtcclxufVxyXG4ucnVuZS1zZXBfX2ljb24gc3ZnIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfVxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/