/* --- HYBRID THEME (Premium Tech) --- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    /* --- FARBPALETTE --- */
    /* Dark Shades (für Header, Footer, Akzent-Sektionen) */
    --dark-bg-main: #0f172a;
    /* Tiefes Slate-Blau/Schwarz */
    --dark-bg-lighter: #1e293b;
    /* Etwas helleres Slate für Karten auf dunklem Grund */
    --dark-text-header: #ffffff;
    --dark-text-body: #94a3b8;
    /* Gedämpftes hellgrau für Text auf dunklem Grund */

    /* Light Shades (für Content, Formulare) */
    --light-bg-main: #ededed;
    --light-bg-offset: #f8fafc;
    /* Sehr helles Grau zur Abhebung */
    --light-text-header: #0f172a;
    /* Dunkle Überschriften auf hellem Grund */
    --light-text-body: #475569;
    /* Dunkelgrauer Text */
    --border-light: #e2e8f0;

    /* Accents */
    --accent-blue: #0284c7;
    /* Tech-Blau */
    --accent-hover: #0369a1;

    /* Global Styles */
    --radius-card: 8px;
    --radius-btn: 6px;
    --shadow-card: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

/* --- GRUNDLAGEN --- */
body {
    font-family: 'Inter', sans-serif;
    background-color: var(--light-bg-main);
    color: var(--light-text-body);
    margin: 0;
    padding: 0;
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

main {
    flex: 1;
}

h1,
h2,
h3,
h4 {
    color: var(--light-text-header);
    margin-bottom: 15px;
    letter-spacing: -0.025em;
    font-weight: 700;
}

p {
    margin-bottom: 1.5rem;
}

a {
    text-decoration: none;
    color: inherit;
    transition: 0.3s;
}

ul {
    list-style: none;
    padding: 0;
}

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

/* --- HEADER & NAV (Jetzt DUNKEL für starken Kontrast) --- */
header {
    /* 1. Der "Milchglas"-Effekt */
    background-color: rgba(15, 23, 42, 0.85);
    /* Dunkel, aber leicht transparent */
    backdrop-filter: blur(12px);
    /* Das macht den Hintergrund unscharf (wie Apple/Windows) */
    -webkit-backdrop-filter: blur(12px);
    /* Für Safari */

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    /* Sehr feine Linie unten */
    position: sticky;
    top: 0;
    z-index: 1000;
    transition: all 0.3s ease;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
    /* Feste Höhe für Stabilität */
}

/* --- LOGO FINAL (Kompakter Block / Keine Linie) --- */

.logo-container {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center;
    align-items: flex-start;
    /* Linksbündig */
    text-decoration: none !important;
    line-height: 1 !important;
    /* Kein Border, kein Padding */
}

/* Oben: EISLER */
.logo-top {
    display: block !important;
    font-family: 'Inter', sans-serif;
    font-size: 28px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    color: #ffffff !important;

    /* Eng zusammen für den "Block"-Look */
    letter-spacing: 0px !important;

    line-height: 0.85 !important;
    margin-bottom: 4px !important;
    margin-left: -2px;
    /* Zieht das E optisch gerade */
}

/* Gruppe unten */
.logo-bottom-group {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start;
}

/* Die unteren Wörter */
.logo-sub {
    display: block !important;
    font-family: 'Inter', sans-serif;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    color: #cbd5e1 !important;

    /* Auseinandergezogen, damit sie so breit wirken wie EISLER */
    letter-spacing: 2.8px !important;

    line-height: 1.3 !important;
    white-space: nowrap;
}

/* --- HANDY ANPASSUNG --- */
@media (max-width: 768px) {
    .logo-top {
        font-size: 22px !important;
    }

    .logo-sub {
        font-size: 8.5px !important;
        letter-spacing: 2.2px !important;
    }
}

/* --- FEHLENDER NAV-BLOCK --- */
.nav-links {
    display: flex !important;
    gap: 40px !important;
    /* Das sorgt für den Abstand zwischen den Wörtern */
    align-items: center;
}

.nav-links a {
    position: relative;
    /* Wichtig für den Unterstrich */
    font-size: 0.85rem;
    font-weight: 600;
    color: #cbd5e1;
    /* Helles Grau-Blau statt hartem Weiß (wirkt hochwertiger) */
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 5px 0;
    transition: color 0.3s ease;
}

/* Hover-Effekt: Text wird Weiß */
.nav-links a:hover,
.nav-links a.active {
    color: #ffffff;
}

/* Animation: Der wachsende Unterstrich */
.nav-links a::after {
    content: '';
    position: absolute;
    width: 0;
    /* Startet unsichtbar */
    height: 2px;
    bottom: -2px;
    left: 0;
    background-color: var(--accent-blue);
    /* Deine blaue Akzentfarbe */
    transition: width 0.3s ease;
    /* Weiche Animation */
}

.nav-links a:hover::after,
.nav-links a.active::after {
    width: 100%;
    /* Wächst auf volle Breite */
}

/* --- BUTTON STYLING IM HEADER --- */
.cta-button {
    background-color: var(--accent-blue);
    color: white !important;
    padding: 10px 24px;
    border-radius: 50px;
    /* Pill-Shape wirkt moderner als Ecken */
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(2, 132, 199, 0.2);
    /* Leichter Schein */
}

.cta-button:hover {
    background-color: var(--accent-hover);
    transform: translateY(-2px);
    /* Schwebt leicht nach oben */
    box-shadow: 0 6px 20px rgba(2, 132, 199, 0.4);
}

.cta-button.secondary {
    background-color: transparent;
    border: 2px solid var(--accent-blue);
    color: var(--accent-blue) !important;
    box-shadow: none;
}

.cta-button.secondary:hover {
    background-color: var(--accent-blue);
    color: white !important;
    box-shadow: 0 6px 20px rgba(2, 132, 199, 0.3);
}



/* --- SECTIONS & THEMMING --- */
/* Hier wurde der Wert von 80px auf 120px erhöht für mehr "Luft" */
section {
    /* Erhöht von 80px/120px auf 140px für sehr viel "Luft" */
    padding: 140px 0;
    position: relative;
}

/* Optional: Falls es auf dem Handy zu viel Abstand ist */
@media (max-width: 768px) {
    section {
        padding: 80px 0;
    }

    .modern-card {
        padding: 30px;
    }

    /* Auf dem Handy etwas kompakter */
}

/* Optional: Eine Hilfsklasse, falls du an einer Stelle NOCH mehr Platz willst */
.extra-spacing {
    padding-bottom: 160px;
}

/* Standard Light Section (Default) */
.section-light {
    background-color: var(--light-bg-main);
}

.section-light-offset {
    background-color: var(--light-bg-offset);
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
}

/* Dark Section Utility Class */
.section-dark {
    background-color: var(--dark-bg-main);
    color: var(--dark-text-body);
}

.section-dark h1,
.section-dark h2,
.section-dark h3 {
    color: var(--dark-text-header);
}

.section-dark p {
    color: var(--dark-text-body);
}

.section-dark-lighter {
    position: relative;
    background-color: var(--dark-bg-lighter);
    color: var(--dark-text-body);
    padding: 80px 0;
    overflow: hidden;
}

/* Utility to add background image to a section */
.section-image-bg::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    /* Background Image with Dark Overlay */
    background: linear-gradient(to bottom, rgba(15, 23, 42, 0.8), rgba(15, 23, 42, 0.9)), url('images/sectionbright.png');
    background-size: cover;
    background-position: center;

    /* Zoom for watermarks consistency */
    transform: scale(1.15);
    z-index: 0;
}

.section-dark-lighter .container {
    position: relative;
    z-index: 1;
}

.section-dark-lighter h2,
.section-dark-lighter h3 {
    color: var(--dark-text-header);
}



/* Page Headers (Subpages - jetzt dunkel für Konsistenz) */
/* Page Headers (Subpages - jetzt im Hero-Look) */
.page-header {
    position: relative;
    height: 40vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background-color: var(--dark-bg-main);
    /* Fallback */
}

/* Background Image with Zoom & Overlay */
.page-header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    /* Same background as hero but maybe slightly darker overlay for readability */
    background: linear-gradient(to bottom, rgba(15, 23, 42, 0.8), rgba(15, 23, 42, 0.95)), url('images/pageheader.png');
    background-size: cover;
    background-position: center;

    /* Zoom to match consistency and hide watermarks */
    transform: scale(1.15);
    z-index: 0;
}

.page-header .container {
    position: relative;
    z-index: 1;
    /* Text above background */
}

.page-header h1 {
    color: #ffffff;
    margin: 0 0 15px 0;
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: -1px;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.page-header p {
    color: #cbd5e1;
    margin: 0 auto;
    font-size: 1.25rem;
    max-width: 600px;
    line-height: 1.6;
    opacity: 0.9;
}

/* Page Header Mobile Adjustment */
@media (max-width: 768px) {
    .page-header {
        height: 35vh;
        /* Slightly shorter on mobile */
        padding: 0 15px;
        /* Ensure padding on sides */
    }

    .page-header h1 {
        font-size: 2rem;
        /* Reduced from 3rem */
    }

    .page-header p {
        font-size: 1rem;
        /* Reduced from 1.25rem */
    }
}


/* --- HERO SECTION (Startseite - Dunkel) --- */
/* --- HERO SECTION (Startseite - Dunkel) --- */
.hero {
    position: relative;
    height: 75vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    /* Important so the zoomed background doesn't overflow */
}

/* The pseudo-element acts as the background layer */
.hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    /* The Background Image + Overlay */
    background: linear-gradient(to right, rgba(15, 23, 42, 0.9), rgba(15, 23, 42, 0.6)), url('images/hero.png');
    background-size: cover;
    background-position: center;

    /* The Zoom Effect */
    transform: scale(1.15);
    transform-origin: center center;

    z-index: -1;
    /* Place it behind the content */
}

.hero-content h1 {
    font-size: 3.5rem;
    line-height: 1.1;
    color: #fff;
    margin-bottom: 25px;
    position: relative;
    /* Ensure text is above pseudo-element */
    z-index: 1;
}

.hero-content p {
    font-size: 1.25rem;
    max-width: 600px;
    color: var(--dark-text-body);
    margin-bottom: 35px;
    position: relative;
    z-index: 1;
}

/* Ensure the buttons are clickable */
.hero-content div {
    position: relative;
    z-index: 1;
}


/* --- GRIDS & CARDS --- */
.grid-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
}

.grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

/* Karten auf hellem Hintergrund */
.modern-card {
    background-color: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--radius-card);

    /* HIER WURDE GEÄNDERT: Von 30px auf 50px für mehr Luft */
    padding: 50px;

    box-shadow: var(--shadow-card);
    transition: all 0.3s ease;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* Sorgt dafür, dass Buttons unten bündig sind */
}

.modern-card:hover {
    transform: translateY(-4px);
    border-color: var(--accent-blue);
}

/* Utility to align lists in cards */
.card-desc-min-height {
    min-height: 5.5rem;
    /* Ensure ~3-4 lines of text height for alignment */
    display: flex;
    align-items: flex-start;
    /* Optional, but good for short text */
}

.align-top {
    justify-content: flex-start !important;
    gap: 0;
    /* Let children handle spacing */
}

/* Fixed height for titles in cards to ensure alignment */
.h-title-fixed {
    min-height: 3.5rem;
    /* Approx 2 lines + margin */
    display: flex;
    align-items: center;
    /* Center vertically if 1 line, or top? Default is top usually for text */
    align-items: start;
    margin-bottom: 5px;
    /* Adjust spacing manually */
}


/* Icons in Karten */
.card-icon {
    width: 48px;
    height: 48px;
    background-color: #f0f9ff;
    color: var(--accent-blue);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.modern-card h3 {
    margin-top: 0;
    font-size: 1.25rem;
}

/* Competence Section Images */
.competence-card-image {
    width: 100%;
    height: 320px;
    /* Thinner fixed height */
    object-fit: cover;
    /* Maintain aspect ratio */
    object-position: center 20%;
    /* Focus on top part, cropping out bottom watermark */
    display: block;
    transition: transform 0.5s ease;
    transform: scale(1.15);
    /* Zoom in by default to hide watermark */
}

.competence-card-image:hover {
    transform: scale(1.15);
    /* Slightly more zoom on hover */
}


/* --- FORMS (Immer auf hellem Grund für Vertrauen) --- */
input,
textarea,
select {
    background-color: #fff;
    border: 1px solid var(--border-light);
    color: var(--light-text-header);
    padding: 12px;
    border-radius: var(--radius-btn);
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    transition: border 0.2s;
}

input:focus,
textarea:focus {
    outline: none;
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.1);
}

button[type="submit"] {
    background-color: var(--accent-blue);
    color: white;
    border: none;
    padding: 15px;
    border-radius: var(--radius-btn);
    font-weight: 600;
    cursor: pointer;
    font-size: 1rem;
    width: 100%;
}

button[type="submit"]:hover {
    background-color: var(--accent-hover);
}


/* --- FOOTER (Professional Multi-Column) --- */
footer {
    background-color: var(--dark-bg-main);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding-top: 80px;
    padding-bottom: 40px;
    color: var(--dark-text-body);
    font-size: 0.95rem;
    margin-top: auto;
}

/* Das Grid-Layout für die 3 Spalten */
.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    /* Links etwas breiter */
    gap: 60px;
    margin-bottom: 60px;
}

.footer-col h4 {
    color: #fff;
    margin-top: 0;
    margin-bottom: 20px;
    font-size: 1.1rem;
    font-weight: 600;
}

.footer-col p {
    margin-bottom: 15px;
    /* Abstand zwischen Absätzen */
}

/* Links im Footer */
.footer-links li {
    margin-bottom: 10px;
}

.footer-links a {
    color: var(--dark-text-body);
    transition: color 0.2s;
}

.footer-links a:hover {
    color: var(--accent-blue);
    padding-left: 5px;
    /* Kleiner Ruck nach rechts beim Hover */
}

/* Der untere Balken (Copyright etc.) */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    opacity: 0.8;
}

.legal-links {
    display: flex;
    gap: 15px;
}

.legal-links a:hover {
    color: #fff;
    text-decoration: underline;
}

/* --- MOBILE ANPASSUNG FOOTER --- */
@media (max-width: 768px) {
    .footer-grid {
        grid-template-columns: 1fr;
        /* Alles untereinander */
        gap: 40px;
        text-align: center;
        /* Auf Handy zentriert sieht oft besser aus */
    }

    .footer-bottom {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }
}

/* --- MOBILE --- */
@media (max-width: 768px) {
    .nav-links {
        display: none;
    }

    .hero-content h1 {
        font-size: 2.5rem;
    }

    .grid-2,
    .grid-3 {
        grid-template-columns: 1fr;
    }

    /* Utility to reorder items on mobile */
    .order-first-mobile {
        order: -1;
    }
}

/* --- MOBILE MENU & HAMBURGER (Modern Glass Style) --- */

/* Standardmäßig (Desktop) ausblenden */
.hamburger,
.mobile-menu {
    display: none;
}

@media (max-width: 768px) {

    /* 1. Desktop Elemente ausblenden */
    .desktop-only {
        display: none !important;
    }

    /* 2. Hamburger Icon (angepasst an neuen Look) */
    .hamburger {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 28px;
        height: 20px;
        cursor: pointer;
        z-index: 1001;
        margin-right: 5px;
        /* Kleiner Abstand zum Rand */
    }

    .hamburger span {
        display: block;
        height: 2px;
        /* Etwas feiner */
        width: 100%;
        background-color: #cbd5e1;
        /* Helles Grau-Blau (passend zum Text) */
        border-radius: 2px;
        transition: all 0.3s ease;
    }

    /* Animation zum "X" */
    .hamburger.open span:nth-child(1) {
        transform: translateY(9px) rotate(45deg);
        background-color: #fff;
    }

    .hamburger.open span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.open span:nth-child(3) {
        transform: translateY(-9px) rotate(-45deg);
        background-color: #fff;
    }

    /* 3. Das Mobile Menü (Jetzt auch im Glass-Look) */
    .mobile-menu {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 80px;
        /* Direkt unter dem Header */
        left: 0;
        width: 100%;

        /* Der Milchglas-Effekt für das Menü */
        background-color: rgba(15, 23, 42, 0.95);
        /* Fast undurchsichtig, aber edel */
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);

        padding: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        /* Sehr weiche Animation */
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    }

    .mobile-menu.open {
        max-height: 800px;
        /* Genug Platz zum Ausfahren */
    }

    .mobile-menu a {
        padding: 20px;
        text-align: center;
        /* Sehr feine Trennlinien */
        border-bottom: 1px solid rgba(255, 255, 255, 0.03);
        color: #cbd5e1;
        font-weight: 500;
        text-transform: uppercase;
        font-size: 0.9rem;
        letter-spacing: 1px;
        transition: background 0.2s, color 0.2s;
    }

    .mobile-menu a:hover {
        background-color: rgba(255, 255, 255, 0.05);
        color: #fff;
    }

    /* Der Button im mobilen Menü */
    .mobile-cta {
        background-color: var(--accent-blue) !important;
        color: white !important;
        font-weight: 700 !important;
        border: none !important;
        margin: 30px 20px;
        /* Mehr Abstand oben/unten */
        border-radius: 50px;
        /* Pill-Shape wie auf Desktop */
        box-shadow: 0 4px 15px rgba(2, 132, 199, 0.3);
    }
}

/* --- COOKIE BANNER (Glassmorphism) --- */
.cookie-banner {
    position: fixed;
    bottom: 20px;
    left: 20px;
    right: 20px;
    max-width: 500px;
    /* Nicht zu breit auf Desktop */
    background-color: rgba(15, 23, 42, 0.95);
    /* Dunkles Blau, fast deckend */
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 25px;
    z-index: 10000;
    /* Muss über allem liegen */
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);

    /* Standardmäßig unsichtbar, wird per JS eingeblendet */
    display: none;

    /* Flexbox für Layout */
    display: flex;
    flex-direction: column;
    gap: 20px;
    animation: slideUp 0.5s ease-out;
}

/* Animation beim Erscheinen */
@keyframes slideUp {
    from {
        transform: translateY(100px);
        opacity: 0;
    }

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

.cookie-content h3 {
    margin-top: 0;
    color: #fff;
    font-size: 1.1rem;
}

.cookie-content p {
    color: #cbd5e1;
    /* Helles Grau-Blau */
    font-size: 0.9rem;
    margin-bottom: 0;
    line-height: 1.5;
}

.cookie-content a {
    color: var(--accent-blue);
    text-decoration: underline;
}

.cookie-buttons {
    display: flex;
    gap: 15px;
}

.cookie-btn {
    flex: 1;
    padding: 12px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    border: none;
    transition: all 0.2s;
}

.cookie-btn.primary {
    background-color: var(--accent-blue);
    color: white;
}

.cookie-btn.primary:hover {
    background-color: var(--accent-hover);
}

.cookie-btn.secondary {
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #cbd5e1;
}

.cookie-btn.secondary:hover {
    border-color: #fff;
    color: #fff;
}

/* Mobile Anpassung */
@media (max-width: 600px) {
    .cookie-banner {
        left: 10px;
        right: 10px;
        bottom: 10px;
    }
}

/* Utility for zooming images to hide watermarks */
.img-zoom {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.15);
}

/* Dark CTA Box for separating content in dark sections */
.cta-box-dark {
    background-color: var(--dark-bg-lighter);
    padding: 40px;
    border-radius: var(--radius-card);
    text-align: center;
    margin-top: 60px;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Mobile Button Centering */
@media (max-width: 768px) {
    .cta-button {
        text-align: center;
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
}

/* Utility for text blocks that need spacing on desktop but not on mobile */
.text-block-padding {
    padding-left: 60px;
}

@media (max-width: 768px) {
    .text-block-padding {
        padding-left: 0;
        margin-top: 30px;
        /* Bring some spacing between image and text */
        text-align: center;
        /* Generally looks better on mobile below image */
    }
}

/* Utility for text blocks that need spacing on the RIGHT on desktop but not on mobile */
.text-block-padding-right {
    padding-right: 60px;
}

@media (max-width: 768px) {
    .text-block-padding-right {
        padding-right: 0;
        margin-bottom: 30px;
        /* Spacing below text before next element */
        text-align: center;
    }
}

/* --- PRODUCT HIGHLIGHT CARDS (Produkte-Seite) --- */
.product-highlight-card {
    background-color: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--radius-card);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    transition: all 0.4s ease;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
}

.product-highlight-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    border-color: var(--accent-blue);
}

.product-highlight-card .card-image {
    height: 260px;
    overflow: hidden;
}

.product-highlight-card .card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    transform: scale(1.05);
}

.product-highlight-card:hover .card-image img {
    transform: scale(1.12);
}

.product-highlight-card .card-body {
    padding: 30px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.product-highlight-card .card-body h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 1.2rem;
}

.product-highlight-card .card-body p {
    font-size: 0.95rem;
    color: var(--light-text-body);
    flex: 1;
    margin-bottom: 20px;
}

.product-highlight-card .card-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--accent-blue);
    transition: gap 0.3s ease;
}

.product-highlight-card:hover .card-link {
    gap: 14px;
}

.product-highlight-card .card-link svg {
    transition: transform 0.3s ease;
}

.product-highlight-card:hover .card-link svg {
    transform: translateX(4px);
}

/* --- PRODUKT BENTO GRID (5 Karten: 3 oben, 2 unten) --- */
.produkt-bento-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

/* Die breiten Karten in der unteren Reihe nehmen je 50% */
.produkt-bento-grid .bento-wide {
    grid-column: span 1;
}

/* Ab 3 Karten oben + 2 unten: 2er-Grid für untere Reihe */
@media (min-width: 769px) {
    .produkt-bento-grid {
        grid-template-columns: repeat(6, 1fr);
    }

    /* Obere 3 Karten: je 2 von 6 Spalten */
    .produkt-bento-grid > .product-highlight-card:not(.bento-wide) {
        grid-column: span 2;
    }

    /* Untere 2 breite Karten: je 3 von 6 Spalten */
    .produkt-bento-grid > .bento-wide {
        grid-column: span 3;
    }
}

/* Landscape-Layout für breite Karten */
.bento-wide .bento-wide-inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    height: 100%;
}

.bento-wide .bento-wide-inner .card-image {
    height: 100%;
    min-height: 280px;
}

.bento-wide .bento-wide-inner .card-image img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.bento-wide .bento-wide-inner .card-body {
    display: flex;
    flex-direction: column;
    padding: 30px;
}

/* "Neu"-Badge */
.bento-wide-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--accent-blue), #0ea5e9);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 4px 12px;
    border-radius: 50px;
    margin-bottom: 12px;
    width: fit-content;
}

/* Feature-Liste in breiten Karten */
.bento-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.bento-feature-list li {
    background-color: #f0f9ff;
    color: var(--accent-blue);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 50px;
    border: 1px solid #e0f2fe;
    white-space: nowrap;
}

/* Mobile: breite Karten werden vertikal */
@media (max-width: 768px) {
    .produkt-bento-grid {
        grid-template-columns: 1fr;
    }

    .produkt-bento-grid > .product-highlight-card:not(.bento-wide),
    .produkt-bento-grid > .bento-wide {
        grid-column: span 1;
    }

    .bento-wide .bento-wide-inner {
        grid-template-columns: 1fr;
    }

    .bento-wide .bento-wide-inner .card-image {
        min-height: 200px;
        height: 200px;
    }
}

/* --- PREMIUM PRODUCT DETAIL REDESIGN --- */

.premium-product-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    padding: 30px 0 60px 0;
}

.premium-hero-text h1 {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 20px;
    color: var(--dark-text);
}

.premium-hero-subtitle {
    font-size: 1.25rem;
    color: var(--accent-blue);
    font-weight: 600;
    margin-bottom: 20px;
}

.premium-hero-desc {
    font-size: 1.1rem;
    line-height: 1.7;
    color: var(--light-text-body);
    margin-bottom: 40px;
}

.premium-hero-image img {
    width: 100%;
    border-radius: var(--radius-card);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    /* Soft, serious shadow */
    transition: transform 0.4s ease;
    display: block;
}

.premium-hero-image img:hover {
    transform: translateY(-5px);
}

.premium-section {
    padding: 80px 0;
}

.premium-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

/* Reverse layout for alternating sections */
.premium-split.reverse .premium-image-col {
    order: 2;
}

.premium-image-col img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-card);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    display: block;
}

.premium-content-col h2 {
    font-size: 2.2rem;
    margin-top: 0;
    margin-bottom: 25px;
    color: var(--dark-text);
}

.premium-content-col p {
    font-size: 1.1rem;
    color: var(--light-text-body);
    line-height: 1.8;
    margin-bottom: 20px;
}

/* Elegant feature list */
.premium-features {
    list-style: none;
    padding: 0;
    margin: 30px 0 0 0;
}

.premium-features li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
}

.premium-features .icon-wrapper {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(14, 165, 233, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-blue);
    margin-top: 5px;
}

.premium-features h4 {
    margin: 0 0 5px 0;
    font-size: 1.1rem;
    color: var(--dark-text);
}

.premium-features p {
    margin: 0;
    font-size: 1rem;
    color: var(--light-text-body);
}

/* Elegant Table */
.premium-specs-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

.premium-specs-table tr {
    border-bottom: 1px solid var(--border-light);
}

.premium-specs-table tr:last-child {
    border-bottom: none;
}

.premium-specs-table td {
    padding: 20px 0;
    font-size: 1.05rem;
    vertical-align: top;
}

.premium-specs-table td:first-child {
    font-weight: 600;
    color: var(--dark-text);
    width: 40%;
    padding-right: 20px;
}

.premium-specs-table td:last-child {
    color: var(--light-text-body);
}

/* Navigation breadcrumb adjustments */
.premium-breadcrumb {
    color: var(--light-text-body);
    font-size: 0.9rem;
    margin-top: 40px;
    margin-bottom: 15px;
}

.premium-breadcrumb a {
    color: var(--accent-blue);
    text-decoration: none;
}

.premium-breadcrumb a:hover {
    text-decoration: underline;
}

.premium-breadcrumb span {
    margin: 0 10px;
    opacity: 0.5;
}

/* Mobile adjustments */
@media (max-width: 992px) {

    .premium-product-hero,
    .premium-split {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .premium-split.reverse .premium-image-col {
        order: 0;
    }

    .premium-hero-text h1 {
        font-size: 2.2rem;
        overflow-wrap: break-word;
        word-break: break-word;
        hyphens: auto;
    }

    .premium-hero-subtitle {
        font-size: 1.1rem;
    }

    .premium-hero-desc {
        font-size: 1rem;
    }

    .premium-content-col h2 {
        font-size: 1.8rem;
    }
}

@media (max-width: 768px) {

    .premium-hero-text h1 {
        font-size: 1.75rem;
    }

    .premium-hero-subtitle {
        font-size: 1rem;
    }

    .premium-hero-desc {
        font-size: 0.95rem;
        margin-bottom: 30px;
    }

    .premium-section {
        padding: 50px 0;
    }

    .premium-product-hero {
        padding: 20px 0 40px 0;
    }

    .premium-content-col h2 {
        font-size: 1.6rem;
    }

    .premium-content-col p {
        font-size: 1rem;
    }

    .premium-specs-table td {
        padding: 14px 0;
        font-size: 0.95rem;
    }

    .premium-specs-table td:first-child {
        width: 35%;
        padding-right: 12px;
    }
}

@media (max-width: 768px) {
    .product-highlight-card .card-image {
        height: 200px;
    }
}

/* --- PREMIUM IMAGE GALLERY (JS-DRIVEN) --- */
.premium-gallery-container {
    position: relative;
    width: 100%;
    border-radius: var(--radius-card);
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    background: #fff;
}

.premium-gallery-track {
    display: flex;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
    /* Smooth easing */
    will-change: transform;
}

.premium-gallery-track img {
    flex: 0 0 100%;
    width: 100%;
    /* Keep image height consistent */
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
}

/* Glassmorphism Navigation Buttons */
.gallery-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    color: var(--dark-text-header);
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    z-index: 100;
    pointer-events: auto;
    opacity: 0;
    /* Hidden by default, shown on container hover */
}

/* Show buttons on Desktop hover */
@media (min-width: 769px) {
    .premium-gallery-container:hover .gallery-nav-btn {
        opacity: 1;
    }
}

/* Always show buttons on Mobile */
@media (max-width: 768px) {
    .gallery-nav-btn {
        opacity: 1;
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }
}

.gallery-nav-btn:hover {
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
    transform: translateY(-50%) scale(1.05);
}

.gallery-nav-btn.prev {
    left: 15px;
}

.gallery-nav-btn.next {
    right: 15px;
}

/* Pagination Dots */
.gallery-pagination {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
    background: rgba(0, 0, 0, 0.2);
    padding: 6px 12px;
    border-radius: 20px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.gallery-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
}

.gallery-dot.active {
    background: rgba(255, 255, 255, 1);
    transform: scale(1.2);
}

.gallery-dot:hover {
    background: rgba(255, 255, 255, 0.8);
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJzdHlsZV9wcmVmaXhlZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS0gSFlCUklEIFRIRU1FIChQcmVtaXVtIFRlY2gpIC0tLSAqL1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCcpO1xuXG46cm9vdCB7XG4gICAgLyogLS0tIEZBUkJQQUxFVFRFIC0tLSAqL1xuICAgIC8qIERhcmsgU2hhZGVzIChmw7xyIEhlYWRlciwgRm9vdGVyLCBBa3plbnQtU2VrdGlvbmVuKSAqL1xuICAgIC0tZGFyay1iZy1tYWluOiAjMGYxNzJhO1xuICAgIC8qIFRpZWZlcyBTbGF0ZS1CbGF1L1NjaHdhcnogKi9cbiAgICAtLWRhcmstYmctbGlnaHRlcjogIzFlMjkzYjtcbiAgICAvKiBFdHdhcyBoZWxsZXJlcyBTbGF0ZSBmw7xyIEthcnRlbiBhdWYgZHVua2xlbSBHcnVuZCAqL1xuICAgIC0tZGFyay10ZXh0LWhlYWRlcjogI2ZmZmZmZjtcbiAgICAtLWRhcmstdGV4dC1ib2R5OiAjOTRhM2I4O1xuICAgIC8qIEdlZMOkbXBmdGVzIGhlbGxncmF1IGbDvHIgVGV4dCBhdWYgZHVua2xlbSBHcnVuZCAqL1xuXG4gICAgLyogTGlnaHQgU2hhZGVzIChmw7xyIENvbnRlbnQsIEZvcm11bGFyZSkgKi9cbiAgICAtLWxpZ2h0LWJnLW1haW46ICNlZGVkZWQ7XG4gICAgLS1saWdodC1iZy1vZmZzZXQ6ICNmOGZhZmM7XG4gICAgLyogU2VociBoZWxsZXMgR3JhdSB6dXIgQWJoZWJ1bmcgKi9cbiAgICAtLWxpZ2h0LXRleHQtaGVhZGVyOiAjMGYxNzJhO1xuICAgIC8qIER1bmtsZSDDnGJlcnNjaHJpZnRlbiBhdWYgaGVsbGVtIEdydW5kICovXG4gICAgLS1saWdodC10ZXh0LWJvZHk6ICM0NzU1Njk7XG4gICAgLyogRHVua2VsZ3JhdWVyIFRleHQgKi9cbiAgICAtLWJvcmRlci1saWdodDogI2UyZThmMDtcblxuICAgIC8qIEFjY2VudHMgKi9cbiAgICAtLWFjY2VudC1ibHVlOiAjMDI4NGM3O1xuICAgIC8qIFRlY2gtQmxhdSAqL1xuICAgIC0tYWNjZW50LWhvdmVyOiAjMDM2OWExO1xuXG4gICAgLyogR2xvYmFsIFN0eWxlcyAqL1xuICAgIC0tcmFkaXVzLWNhcmQ6IDhweDtcbiAgICAtLXJhZGl1cy1idG46IDZweDtcbiAgICAtLXNoYWRvdy1jYXJkOiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDUpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDMpO1xufVxuXG4vKiAtLS0gR1JVTkRMQUdFTiAtLS0gKi9cbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnLW1haW4pO1xuICAgIGNvbG9yOiB2YXIoLS1saWdodC10ZXh0LWJvZHkpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG5tYWluIHtcbiAgICBmbGV4OiAxO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCB7XG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LXRleHQtaGVhZGVyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG5wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbmEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG51bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIC0tLSBIRUFERVIgJiBOQVYgKEpldHp0IERVTktFTCBmw7xyIHN0YXJrZW4gS29udHJhc3QpIC0tLSAqL1xuaGVhZGVyIHtcbiAgICAvKiAxLiBEZXIgXCJNaWxjaGdsYXNcIi1FZmZla3QgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuODUpO1xuICAgIC8qIER1bmtlbCwgYWJlciBsZWljaHQgdHJhbnNwYXJlbnQgKi9cbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgLyogRGFzIG1hY2h0IGRlbiBIaW50ZXJncnVuZCB1bnNjaGFyZiAod2llIEFwcGxlL1dpbmRvd3MpICovXG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgLyogRsO8ciBTYWZhcmkgKi9cblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIC8qIFNlaHIgZmVpbmUgTGluaWUgdW50ZW4gKi9cbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbn1cblxubmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogODBweDtcbiAgICAvKiBGZXN0ZSBIw7ZoZSBmw7xyIFN0YWJpbGl0w6R0ICovXG59XG5cbi8qIC0tLSBMT0dPIEZJTkFMIChLb21wYWt0ZXIgQmxvY2sgLyBLZWluZSBMaW5pZSkgLS0tICovXG5cbi5sb2dvLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAvKiBMaW5rc2LDvG5kaWcgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgIC8qIEtlaW4gQm9yZGVyLCBrZWluIFBhZGRpbmcgKi9cbn1cblxuLyogT2JlbjogRUlTTEVSICovXG4ubG9nby10b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyOHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcblxuICAgIC8qIEVuZyB6dXNhbW1lbiBmw7xyIGRlbiBcIkJsb2NrXCItTG9vayAqL1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHggIWltcG9ydGFudDtcblxuICAgIGxpbmUtaGVpZ2h0OiAwLjg1ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgLyogWmllaHQgZGFzIEUgb3B0aXNjaCBnZXJhZGUgKi9cbn1cblxuLyogR3J1cHBlIHVudGVuICovXG4ubG9nby1ib3R0b20tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi8qIERpZSB1bnRlcmVuIFfDtnJ0ZXIgKi9cbi5sb2dvLXN1YiB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEwLjVweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjY2JkNWUxICFpbXBvcnRhbnQ7XG5cbiAgICAvKiBBdXNlaW5hbmRlcmdlem9nZW4sIGRhbWl0IHNpZSBzbyBicmVpdCB3aXJrZW4gd2llIEVJU0xFUiAqL1xuICAgIGxldHRlci1zcGFjaW5nOiAyLjhweCAhaW1wb3J0YW50O1xuXG4gICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIC0tLSBIQU5EWSBBTlBBU1NVTkcgLS0tICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAubG9nby10b3Age1xuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubG9nby1zdWIge1xuICAgICAgICBmb250LXNpemU6IDguNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAyLjJweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogLS0tIEZFSExFTkRFUiBOQVYtQkxPQ0sgLS0tICovXG4ubmF2LWxpbmtzIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgLyogRGFzIHNvcmd0IGbDvHIgZGVuIEFic3RhbmQgendpc2NoZW4gZGVuIFfDtnJ0ZXJuICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm5hdi1saW5rcyBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogV2ljaHRpZyBmw7xyIGRlbiBVbnRlcnN0cmljaCAqL1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjY2JkNWUxO1xuICAgIC8qIEhlbGxlcyBHcmF1LUJsYXUgc3RhdHQgaGFydGVtIFdlacOfICh3aXJrdCBob2Nod2VydGlnZXIpICovXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLyogSG92ZXItRWZmZWt0OiBUZXh0IHdpcmQgV2Vpw58gKi9cbi5uYXYtbGlua3MgYTpob3Zlcixcbi5uYXYtbGlua3MgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4vKiBBbmltYXRpb246IERlciB3YWNoc2VuZGUgVW50ZXJzdHJpY2ggKi9cbi5uYXYtbGlua3MgYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICAvKiBTdGFydGV0IHVuc2ljaHRiYXIgKi9cbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3R0b206IC0ycHg7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSk7XG4gICAgLyogRGVpbmUgYmxhdWUgQWt6ZW50ZmFyYmUgKi9cbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG4gICAgLyogV2VpY2hlIEFuaW1hdGlvbiAqL1xufVxuXG4ubmF2LWxpbmtzIGE6aG92ZXI6OmFmdGVyLFxuLm5hdi1saW5rcyBhLmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIFfDpGNoc3QgYXVmIHZvbGxlIEJyZWl0ZSAqL1xufVxuXG4vKiAtLS0gQlVUVE9OIFNUWUxJTkcgSU0gSEVBREVSIC0tLSAqL1xuLmN0YS1idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAvKiBQaWxsLVNoYXBlIHdpcmt0IG1vZGVybmVyIGFscyBFY2tlbiAqL1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMiwgMTMyLCAxOTksIDAuMik7XG4gICAgLyogTGVpY2h0ZXIgU2NoZWluICovXG59XG5cbi5jdGEtYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtaG92ZXIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAvKiBTY2h3ZWJ0IGxlaWNodCBuYWNoIG9iZW4gKi9cbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMiwgMTMyLCAxOTksIDAuNCk7XG59XG5cbi5jdGEtYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYWNjZW50LWJsdWUpO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uY3RhLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMiwgMTMyLCAxOTksIDAuMyk7XG59XG5cblxuXG4vKiAtLS0gU0VDVElPTlMgJiBUSEVNTUlORyAtLS0gKi9cbi8qIEhpZXIgd3VyZGUgZGVyIFdlcnQgdm9uIDgwcHggYXVmIDEyMHB4IGVyaMO2aHQgZsO8ciBtZWhyIFwiTHVmdFwiICovXG5zZWN0aW9uIHtcbiAgICAvKiBFcmjDtmh0IHZvbiA4MHB4LzEyMHB4IGF1ZiAxNDBweCBmw7xyIHNlaHIgdmllbCBcIkx1ZnRcIiAqL1xuICAgIHBhZGRpbmc6IDE0MHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBPcHRpb25hbDogRmFsbHMgZXMgYXVmIGRlbSBIYW5keSB6dSB2aWVsIEFic3RhbmQgaXN0ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBzZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogODBweCAwO1xuICAgIH1cblxuICAgIC5tb2Rlcm4tY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgfVxuXG4gICAgLyogQXVmIGRlbSBIYW5keSBldHdhcyBrb21wYWt0ZXIgKi9cbn1cblxuLyogT3B0aW9uYWw6IEVpbmUgSGlsZnNrbGFzc2UsIGZhbGxzIGR1IGFuIGVpbmVyIFN0ZWxsZSBOT0NIIG1laHIgUGxhdHogd2lsbHN0ICovXG4uZXh0cmEtc3BhY2luZyB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2MHB4O1xufVxuXG4vKiBTdGFuZGFyZCBMaWdodCBTZWN0aW9uIChEZWZhdWx0KSAqL1xuLnNlY3Rpb24tbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnLW1haW4pO1xufVxuXG4uc2VjdGlvbi1saWdodC1vZmZzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnLW9mZnNldCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XG59XG5cbi8qIERhcmsgU2VjdGlvbiBVdGlsaXR5IENsYXNzICovXG4uc2VjdGlvbi1kYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrLWJnLW1haW4pO1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLXRleHQtYm9keSk7XG59XG5cbi5zZWN0aW9uLWRhcmsgaDEsXG4uc2VjdGlvbi1kYXJrIGgyLFxuLnNlY3Rpb24tZGFyayBoMyB7XG4gICAgY29sb3I6IHZhcigtLWRhcmstdGV4dC1oZWFkZXIpO1xufVxuXG4uc2VjdGlvbi1kYXJrIHAge1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLXRleHQtYm9keSk7XG59XG5cbi5zZWN0aW9uLWRhcmstbGlnaHRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstYmctbGlnaHRlcik7XG4gICAgY29sb3I6IHZhcigtLWRhcmstdGV4dC1ib2R5KTtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogVXRpbGl0eSB0byBhZGQgYmFja2dyb3VuZCBpbWFnZSB0byBhIHNlY3Rpb24gKi9cbi5zZWN0aW9uLWltYWdlLWJnOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC8qIEJhY2tncm91bmQgSW1hZ2Ugd2l0aCBEYXJrIE92ZXJsYXkgKi9cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDE1LCAyMywgNDIsIDAuOCksIHJnYmEoMTUsIDIzLCA0MiwgMC45KSksIHVybCgnaW1hZ2VzL3NlY3Rpb25icmlnaHQucG5nJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cbiAgICAvKiBab29tIGZvciB3YXRlcm1hcmtzIGNvbnNpc3RlbmN5ICovXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG4uc2VjdGlvbi1kYXJrLWxpZ2h0ZXIgLmNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi5zZWN0aW9uLWRhcmstbGlnaHRlciBoMixcbi5zZWN0aW9uLWRhcmstbGlnaHRlciBoMyB7XG4gICAgY29sb3I6IHZhcigtLWRhcmstdGV4dC1oZWFkZXIpO1xufVxuXG5cblxuLyogUGFnZSBIZWFkZXJzIChTdWJwYWdlcyAtIGpldHp0IGR1bmtlbCBmw7xyIEtvbnNpc3RlbnopICovXG4vKiBQYWdlIEhlYWRlcnMgKFN1YnBhZ2VzIC0gamV0enQgaW0gSGVyby1Mb29rKSAqL1xuLnBhZ2UtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0MHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstYmctbWFpbik7XG4gICAgLyogRmFsbGJhY2sgKi9cbn1cblxuLyogQmFja2dyb3VuZCBJbWFnZSB3aXRoIFpvb20gJiBPdmVybGF5ICovXG4ucGFnZS1oZWFkZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLyogU2FtZSBiYWNrZ3JvdW5kIGFzIGhlcm8gYnV0IG1heWJlIHNsaWdodGx5IGRhcmtlciBvdmVybGF5IGZvciByZWFkYWJpbGl0eSAqL1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTUsIDIzLCA0MiwgMC44KSwgcmdiYSgxNSwgMjMsIDQyLCAwLjk1KSksIHVybCgnaW1hZ2VzL3BhZ2VoZWFkZXIucG5nJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cbiAgICAvKiBab29tIHRvIG1hdGNoIGNvbnNpc3RlbmN5IGFuZCBoaWRlIHdhdGVybWFya3MgKi9cbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbi5wYWdlLWhlYWRlciAuY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICAvKiBUZXh0IGFib3ZlIGJhY2tncm91bmQgKi9cbn1cblxuLnBhZ2UtaGVhZGVyIGgxIHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4ucGFnZS1oZWFkZXIgcCB7XG4gICAgY29sb3I6ICNjYmQ1ZTE7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBvcGFjaXR5OiAwLjk7XG59XG5cbi8qIFBhZ2UgSGVhZGVyIE1vYmlsZSBBZGp1c3RtZW50ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDM1dmg7XG4gICAgICAgIC8qIFNsaWdodGx5IHNob3J0ZXIgb24gbW9iaWxlICovXG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgLyogRW5zdXJlIHBhZGRpbmcgb24gc2lkZXMgKi9cbiAgICB9XG5cbiAgICAucGFnZS1oZWFkZXIgaDEge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIC8qIFJlZHVjZWQgZnJvbSAzcmVtICovXG4gICAgfVxuXG4gICAgLnBhZ2UtaGVhZGVyIHAge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIC8qIFJlZHVjZWQgZnJvbSAxLjI1cmVtICovXG4gICAgfVxufVxuXG5cbi8qIC0tLSBIRVJPIFNFQ1RJT04gKFN0YXJ0c2VpdGUgLSBEdW5rZWwpIC0tLSAqL1xuLyogLS0tIEhFUk8gU0VDVElPTiAoU3RhcnRzZWl0ZSAtIER1bmtlbCkgLS0tICovXG4uaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNzV2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBJbXBvcnRhbnQgc28gdGhlIHpvb21lZCBiYWNrZ3JvdW5kIGRvZXNuJ3Qgb3ZlcmZsb3cgKi9cbn1cblxuLyogVGhlIHBzZXVkby1lbGVtZW50IGFjdHMgYXMgdGhlIGJhY2tncm91bmQgbGF5ZXIgKi9cbi5oZXJvOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC8qIFRoZSBCYWNrZ3JvdW5kIEltYWdlICsgT3ZlcmxheSAqL1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgxNSwgMjMsIDQyLCAwLjkpLCByZ2JhKDE1LCAyMywgNDIsIDAuNikpLCB1cmwoJ2ltYWdlcy9oZXJvLnBuZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gICAgLyogVGhlIFpvb20gRWZmZWN0ICovXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgei1pbmRleDogLTE7XG4gICAgLyogUGxhY2UgaXQgYmVoaW5kIHRoZSBjb250ZW50ICovXG59XG5cbi5oZXJvLWNvbnRlbnQgaDEge1xuICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogRW5zdXJlIHRleHQgaXMgYWJvdmUgcHNldWRvLWVsZW1lbnQgKi9cbiAgICB6LWluZGV4OiAxO1xufVxuXG4uaGVyby1jb250ZW50IHAge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLXRleHQtYm9keSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLyogRW5zdXJlIHRoZSBidXR0b25zIGFyZSBjbGlja2FibGUgKi9cbi5oZXJvLWNvbnRlbnQgZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuXG4vKiAtLS0gR1JJRFMgJiBDQVJEUyAtLS0gKi9cbi5ncmlkLTMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7XG4gICAgZ2FwOiAzMHB4O1xufVxuXG4uZ3JpZC0yIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDYwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogS2FydGVuIGF1ZiBoZWxsZW0gSGludGVyZ3J1bmQgKi9cbi5tb2Rlcm4tY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1jYXJkKTtcblxuICAgIC8qIEhJRVIgV1VSREUgR0XDhE5ERVJUOiBWb24gMzBweCBhdWYgNTBweCBmw7xyIG1laHIgTHVmdCAqL1xuICAgIHBhZGRpbmc6IDUwcHg7XG5cbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIC8qIFNvcmd0IGRhZsO8ciwgZGFzcyBCdXR0b25zIHVudGVuIGLDvG5kaWcgc2luZCAqL1xufVxuXG4ubW9kZXJuLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTtcbn1cblxuLyogVXRpbGl0eSB0byBhbGlnbiBsaXN0cyBpbiBjYXJkcyAqL1xuLmNhcmQtZGVzYy1taW4taGVpZ2h0IHtcbiAgICBtaW4taGVpZ2h0OiA1LjVyZW07XG4gICAgLyogRW5zdXJlIH4zLTQgbGluZXMgb2YgdGV4dCBoZWlnaHQgZm9yIGFsaWdubWVudCAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgLyogT3B0aW9uYWwsIGJ1dCBnb29kIGZvciBzaG9ydCB0ZXh0ICovXG59XG5cbi5hbGlnbi10b3Age1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgIGdhcDogMDtcbiAgICAvKiBMZXQgY2hpbGRyZW4gaGFuZGxlIHNwYWNpbmcgKi9cbn1cblxuLyogRml4ZWQgaGVpZ2h0IGZvciB0aXRsZXMgaW4gY2FyZHMgdG8gZW5zdXJlIGFsaWdubWVudCAqL1xuLmgtdGl0bGUtZml4ZWQge1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICAvKiBBcHByb3ggMiBsaW5lcyArIG1hcmdpbiAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiBDZW50ZXIgdmVydGljYWxseSBpZiAxIGxpbmUsIG9yIHRvcD8gRGVmYXVsdCBpcyB0b3AgdXN1YWxseSBmb3IgdGV4dCAqL1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgLyogQWRqdXN0IHNwYWNpbmcgbWFudWFsbHkgKi9cbn1cblxuXG4vKiBJY29ucyBpbiBLYXJ0ZW4gKi9cbi5jYXJkLWljb24ge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmOWZmO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ubW9kZXJuLWNhcmQgaDMge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4vKiBDb21wZXRlbmNlIFNlY3Rpb24gSW1hZ2VzICovXG4uY29tcGV0ZW5jZS1jYXJkLWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMyMHB4O1xuICAgIC8qIFRoaW5uZXIgZml4ZWQgaGVpZ2h0ICovXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgLyogTWFpbnRhaW4gYXNwZWN0IHJhdGlvICovXG4gICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgMjAlO1xuICAgIC8qIEZvY3VzIG9uIHRvcCBwYXJ0LCBjcm9wcGluZyBvdXQgYm90dG9tIHdhdGVybWFyayAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgICAvKiBab29tIGluIGJ5IGRlZmF1bHQgdG8gaGlkZSB3YXRlcm1hcmsgKi9cbn1cblxuLmNvbXBldGVuY2UtY2FyZC1pbWFnZTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgICAvKiBTbGlnaHRseSBtb3JlIHpvb20gb24gaG92ZXIgKi9cbn1cblxuXG4vKiAtLS0gRk9STVMgKEltbWVyIGF1ZiBoZWxsZW0gR3J1bmQgZsO8ciBWZXJ0cmF1ZW4pIC0tLSAqL1xuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xuICAgIGNvbG9yOiB2YXIoLS1saWdodC10ZXh0LWhlYWRlcik7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtYnRuKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAwLjJzO1xufVxuXG5pbnB1dDpmb2N1cyxcbnRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDIsIDEzMiwgMTk5LCAwLjEpO1xufVxuXG5idXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtYnRuKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtaG92ZXIpO1xufVxuXG5cbi8qIC0tLSBGT09URVIgKFByb2Zlc3Npb25hbCBNdWx0aS1Db2x1bW4pIC0tLSAqL1xuZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrLWJnLW1haW4pO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLXRleHQtYm9keSk7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi8qIERhcyBHcmlkLUxheW91dCBmw7xyIGRpZSAzIFNwYWx0ZW4gKi9cbi5mb290ZXItZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDFmciAxZnI7XG4gICAgLyogTGlua3MgZXR3YXMgYnJlaXRlciAqL1xuICAgIGdhcDogNjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuXG4uZm9vdGVyLWNvbCBoNCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5mb290ZXItY29sIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgLyogQWJzdGFuZCB6d2lzY2hlbiBBYnPDpHR6ZW4gKi9cbn1cblxuLyogTGlua3MgaW0gRm9vdGVyICovXG4uZm9vdGVyLWxpbmtzIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZm9vdGVyLWxpbmtzIGEge1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLXRleHQtYm9keSk7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbn1cblxuLmZvb3Rlci1saW5rcyBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIC8qIEtsZWluZXIgUnVjayBuYWNoIHJlY2h0cyBiZWltIEhvdmVyICovXG59XG5cbi8qIERlciB1bnRlcmUgQmFsa2VuIChDb3B5cmlnaHQgZXRjLikgKi9cbi5mb290ZXItYm90dG9tIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLmxlZ2FsLWxpbmtzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTVweDtcbn1cblxuLmxlZ2FsLWxpbmtzIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiAtLS0gTU9CSUxFIEFOUEFTU1VORyBGT09URVIgLS0tICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuZm9vdGVyLWdyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgLyogQWxsZXMgdW50ZXJlaW5hbmRlciAqL1xuICAgICAgICBnYXA6IDQwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLyogQXVmIEhhbmR5IHplbnRyaWVydCBzaWVodCBvZnQgYmVzc2VyIGF1cyAqL1xuICAgIH1cblxuICAgIC5mb290ZXItYm90dG9tIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4vKiAtLS0gTU9CSUxFIC0tLSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdi1saW5rcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmhlcm8tY29udGVudCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIH1cblxuICAgIC5ncmlkLTIsXG4gICAgLmdyaWQtMyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIC8qIFV0aWxpdHkgdG8gcmVvcmRlciBpdGVtcyBvbiBtb2JpbGUgKi9cbiAgICAub3JkZXItZmlyc3QtbW9iaWxlIHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgIH1cbn1cblxuLyogLS0tIE1PQklMRSBNRU5VICYgSEFNQlVSR0VSIChNb2Rlcm4gR2xhc3MgU3R5bGUpIC0tLSAqL1xuXG4vKiBTdGFuZGFyZG3DpMOfaWcgKERlc2t0b3ApIGF1c2JsZW5kZW4gKi9cbi5oYW1idXJnZXIsXG4ubW9iaWxlLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXG4gICAgLyogMS4gRGVza3RvcCBFbGVtZW50ZSBhdXNibGVuZGVuICovXG4gICAgLmRlc2t0b3Atb25seSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiAyLiBIYW1idXJnZXIgSWNvbiAoYW5nZXBhc3N0IGFuIG5ldWVuIExvb2spICovXG4gICAgLmhhbWJ1cmdlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OiAxMDAxO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgLyogS2xlaW5lciBBYnN0YW5kIHp1bSBSYW5kICovXG4gICAgfVxuXG4gICAgLmhhbWJ1cmdlciBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAvKiBFdHdhcyBmZWluZXIgKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYmQ1ZTE7XG4gICAgICAgIC8qIEhlbGxlcyBHcmF1LUJsYXUgKHBhc3NlbmQgenVtIFRleHQpICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICB9XG5cbiAgICAvKiBBbmltYXRpb24genVtIFwiWFwiICovXG4gICAgLmhhbWJ1cmdlci5vcGVuIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDlweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAuaGFtYnVyZ2VyLm9wZW4gc3BhbjpudGgtY2hpbGQoMikge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5oYW1idXJnZXIub3BlbiBzcGFuOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAvKiAzLiBEYXMgTW9iaWxlIE1lbsO8IChKZXR6dCBhdWNoIGltIEdsYXNzLUxvb2spICovXG4gICAgLm1vYmlsZS1tZW51IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDgwcHg7XG4gICAgICAgIC8qIERpcmVrdCB1bnRlciBkZW0gSGVhZGVyICovXG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC8qIERlciBNaWxjaGdsYXMtRWZmZWt0IGbDvHIgZGFzIE1lbsO8ICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC45NSk7XG4gICAgICAgIC8qIEZhc3QgdW5kdXJjaHNpY2h0aWcsIGFiZXIgZWRlbCAqL1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgLyogU2VociB3ZWljaGUgQW5pbWF0aW9uICovXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICB9XG5cbiAgICAubW9iaWxlLW1lbnUub3BlbiB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwMHB4O1xuICAgICAgICAvKiBHZW51ZyBQbGF0eiB6dW0gQXVzZmFocmVuICovXG4gICAgfVxuXG4gICAgLm1vYmlsZS1tZW51IGEge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC8qIFNlaHIgZmVpbmUgVHJlbm5saW5pZW4gKi9cbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG4gICAgICAgIGNvbG9yOiAjY2JkNWUxO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCBjb2xvciAwLjJzO1xuICAgIH1cblxuICAgIC5tb2JpbGUtbWVudSBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgLyogRGVyIEJ1dHRvbiBpbSBtb2JpbGVuIE1lbsO8ICovXG4gICAgLm1vYmlsZS1jdGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMzBweCAyMHB4O1xuICAgICAgICAvKiBNZWhyIEFic3RhbmQgb2Jlbi91bnRlbiAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICAvKiBQaWxsLVNoYXBlIHdpZSBhdWYgRGVza3RvcCAqL1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMiwgMTMyLCAxOTksIDAuMyk7XG4gICAgfVxufVxuXG4vKiAtLS0gQ09PS0lFIEJBTk5FUiAoR2xhc3Ntb3JwaGlzbSkgLS0tICovXG4uY29va2llLWJhbm5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgLyogTmljaHQgenUgYnJlaXQgYXVmIERlc2t0b3AgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuOTUpO1xuICAgIC8qIER1bmtsZXMgQmxhdSwgZmFzdCBkZWNrZW5kICovXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDI1cHg7XG4gICAgei1pbmRleDogMTAwMDA7XG4gICAgLyogTXVzcyDDvGJlciBhbGxlbSBsaWVnZW4gKi9cbiAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cbiAgICAvKiBTdGFuZGFyZG3DpMOfaWcgdW5zaWNodGJhciwgd2lyZCBwZXIgSlMgZWluZ2VibGVuZGV0ICovXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC8qIEZsZXhib3ggZsO8ciBMYXlvdXQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMHB4O1xuICAgIGFuaW1hdGlvbjogc2xpZGVVcCAwLjVzIGVhc2Utb3V0O1xufVxuXG4vKiBBbmltYXRpb24gYmVpbSBFcnNjaGVpbmVuICovXG5Aa2V5ZnJhbWVzIHNsaWRlVXAge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLmNvb2tpZS1jb250ZW50IGgzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4uY29va2llLWNvbnRlbnQgcCB7XG4gICAgY29sb3I6ICNjYmQ1ZTE7XG4gICAgLyogSGVsbGVzIEdyYXUtQmxhdSAqL1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmNvb2tpZS1jb250ZW50IGEge1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jb29raWUtYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE1cHg7XG59XG5cbi5jb29raWUtYnRuIHtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cblxuLmNvb2tpZS1idG4ucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNvb2tpZS1idG4ucHJpbWFyeTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWhvdmVyKTtcbn1cblxuLmNvb2tpZS1idG4uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgY29sb3I6ICNjYmQ1ZTE7XG59XG5cbi5jb29raWUtYnRuLnNlY29uZGFyeTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4vKiBNb2JpbGUgQW5wYXNzdW5nICovXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAuY29va2llLWJhbm5lciB7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBib3R0b206IDEwcHg7XG4gICAgfVxufVxuXG4vKiBVdGlsaXR5IGZvciB6b29taW5nIGltYWdlcyB0byBoaWRlIHdhdGVybWFya3MgKi9cbi5pbWctem9vbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG59XG5cbi8qIERhcmsgQ1RBIEJveCBmb3Igc2VwYXJhdGluZyBjb250ZW50IGluIGRhcmsgc2VjdGlvbnMgKi9cbi5jdGEtYm94LWRhcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstYmctbGlnaHRlcik7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtY2FyZCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cblxuLyogTW9iaWxlIEJ1dHRvbiBDZW50ZXJpbmcgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5jdGEtYnV0dG9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxufVxuXG4vKiBVdGlsaXR5IGZvciB0ZXh0IGJsb2NrcyB0aGF0IG5lZWQgc3BhY2luZyBvbiBkZXNrdG9wIGJ1dCBub3Qgb24gbW9iaWxlICovXG4udGV4dC1ibG9jay1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC50ZXh0LWJsb2NrLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIC8qIEJyaW5nIHNvbWUgc3BhY2luZyBiZXR3ZWVuIGltYWdlIGFuZCB0ZXh0ICovXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLyogR2VuZXJhbGx5IGxvb2tzIGJldHRlciBvbiBtb2JpbGUgYmVsb3cgaW1hZ2UgKi9cbiAgICB9XG59XG5cbi8qIFV0aWxpdHkgZm9yIHRleHQgYmxvY2tzIHRoYXQgbmVlZCBzcGFjaW5nIG9uIHRoZSBSSUdIVCBvbiBkZXNrdG9wIGJ1dCBub3Qgb24gbW9iaWxlICovXG4udGV4dC1ibG9jay1wYWRkaW5nLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAudGV4dC1ibG9jay1wYWRkaW5nLXJpZ2h0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgLyogU3BhY2luZyBiZWxvdyB0ZXh0IGJlZm9yZSBuZXh0IGVsZW1lbnQgKi9cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuLyogLS0tIFBST0RVQ1QgSElHSExJR0hUIENBUkRTIChQcm9kdWt0ZS1TZWl0ZSkgLS0tICovXG4ucHJvZHVjdC1oaWdobGlnaHQtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1jYXJkKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5wcm9kdWN0LWhpZ2hsaWdodC1jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7XG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTtcbn1cblxuLnByb2R1Y3QtaGlnaGxpZ2h0LWNhcmQgLmNhcmQtaW1hZ2Uge1xuICAgIGhlaWdodDogMjYwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnByb2R1Y3QtaGlnaGxpZ2h0LWNhcmQgLmNhcmQtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuXG4ucHJvZHVjdC1oaWdobGlnaHQtY2FyZDpob3ZlciAuY2FyZC1pbWFnZSBpbWcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xMik7XG59XG5cbi5wcm9kdWN0LWhpZ2hsaWdodC1jYXJkIC5jYXJkLWJvZHkge1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5wcm9kdWN0LWhpZ2hsaWdodC1jYXJkIC5jYXJkLWJvZHkgaDMge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLnByb2R1Y3QtaGlnaGxpZ2h0LWNhcmQgLmNhcmQtYm9keSBwIHtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LXRleHQtYm9keSk7XG4gICAgZmxleDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ucHJvZHVjdC1oaWdobGlnaHQtY2FyZCAuY2FyZC1saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSk7XG4gICAgdHJhbnNpdGlvbjogZ2FwIDAuM3MgZWFzZTtcbn1cblxuLnByb2R1Y3QtaGlnaGxpZ2h0LWNhcmQ6aG92ZXIgLmNhcmQtbGluayB7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4ucHJvZHVjdC1oaWdobGlnaHQtY2FyZCAuY2FyZC1saW5rIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnByb2R1Y3QtaGlnaGxpZ2h0LWNhcmQ6aG92ZXIgLmNhcmQtbGluayBzdmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xufVxuXG4vKiAtLS0gUFJFTUlVTSBQUk9EVUNUIERFVEFJTCBSRURFU0lHTiAtLS0gKi9cblxuLnByZW1pdW0tcHJvZHVjdC1oZXJvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDYwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzMHB4IDAgNjBweCAwO1xufVxuXG4ucHJlbWl1bS1oZXJvLXRleHQgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tZGFyay10ZXh0KTtcbn1cblxuLnByZW1pdW0taGVyby1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ucHJlbWl1bS1oZXJvLWRlc2Mge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LXRleHQtYm9keSk7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLnByZW1pdW0taGVyby1pbWFnZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1jYXJkKTtcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIC8qIFNvZnQsIHNlcmlvdXMgc2hhZG93ICovXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnByZW1pdW0taGVyby1pbWFnZSBpbWc6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcbn1cblxuLnByZW1pdW0tc2VjdGlvbiB7XG4gICAgcGFkZGluZzogODBweCAwO1xufVxuXG4ucHJlbWl1bS1zcGxpdCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiA4MHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIFJldmVyc2UgbGF5b3V0IGZvciBhbHRlcm5hdGluZyBzZWN0aW9ucyAqL1xuLnByZW1pdW0tc3BsaXQucmV2ZXJzZSAucHJlbWl1bS1pbWFnZS1jb2wge1xuICAgIG9yZGVyOiAyO1xufVxuXG4ucHJlbWl1bS1pbWFnZS1jb2wgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWNhcmQpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wcmVtaXVtLWNvbnRlbnQtY29sIGgyIHtcbiAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgY29sb3I6IHZhcigtLWRhcmstdGV4dCk7XG59XG5cbi5wcmVtaXVtLWNvbnRlbnQtY29sIHAge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGNvbG9yOiB2YXIoLS1saWdodC10ZXh0LWJvZHkpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLyogRWxlZ2FudCBmZWF0dXJlIGxpc3QgKi9cbi5wcmVtaXVtLWZlYXR1cmVzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAzMHB4IDAgMCAwO1xufVxuXG4ucHJlbWl1bS1mZWF0dXJlcyBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnByZW1pdW0tZmVhdHVyZXMgLmljb24td3JhcHBlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4xKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5wcmVtaXVtLWZlYXR1cmVzIGg0IHtcbiAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBjb2xvcjogdmFyKC0tZGFyay10ZXh0KTtcbn1cblxuLnByZW1pdW0tZmVhdHVyZXMgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogdmFyKC0tbGlnaHQtdGV4dC1ib2R5KTtcbn1cblxuLyogRWxlZ2FudCBUYWJsZSAqL1xuLnByZW1pdW0tc3BlY3MtdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLnByZW1pdW0tc3BlY3MtdGFibGUgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xufVxuXG4ucHJlbWl1bS1zcGVjcy10YWJsZSB0cjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ucHJlbWl1bS1zcGVjcy10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ucHJlbWl1bS1zcGVjcy10YWJsZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tZGFyay10ZXh0KTtcbiAgICB3aWR0aDogNDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5wcmVtaXVtLXNwZWNzLXRhYmxlIHRkOmxhc3QtY2hpbGQge1xuICAgIGNvbG9yOiB2YXIoLS1saWdodC10ZXh0LWJvZHkpO1xufVxuXG4vKiBOYXZpZ2F0aW9uIGJyZWFkY3J1bWIgYWRqdXN0bWVudHMgKi9cbi5wcmVtaXVtLWJyZWFkY3J1bWIge1xuICAgIGNvbG9yOiB2YXIoLS1saWdodC10ZXh0LWJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnByZW1pdW0tYnJlYWRjcnVtYiBhIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnByZW1pdW0tYnJlYWRjcnVtYiBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnByZW1pdW0tYnJlYWRjcnVtYiBzcGFuIHtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgICBvcGFjaXR5OiAwLjU7XG59XG5cbi8qIE1vYmlsZSBhZGp1c3RtZW50cyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cbiAgICAucHJlbWl1bS1wcm9kdWN0LWhlcm8sXG4gICAgLnByZW1pdW0tc3BsaXQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgZ2FwOiA0MHB4O1xuICAgIH1cblxuICAgIC5wcmVtaXVtLXNwbGl0LnJldmVyc2UgLnByZW1pdW0taW1hZ2UtY29sIHtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgfVxuXG4gICAgLnByZW1pdW0taGVyby10ZXh0IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAucHJvZHVjdC1oaWdobGlnaHQtY2FyZCAuY2FyZC1pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgfVxufSJdfQ== */