/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/blockio.css ***!
  \******************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&display=swap);
/*!**********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/blockio.css (1) ***!
  \**********************************************************************************************************************/
/* ===========================================
   Blockio Design System - Bootstrap 5 Override
   Matching Flutter App Design
   =========================================== */

/* Google Fonts */

/* ===========================================
   CSS Variables
   =========================================== */
:root {
    /* Colors */
    --bs-primary: #000000;
    --bs-primary-rgb: 0, 0, 0;
    --bs-secondary: #737373;
    --bs-secondary-rgb: 115, 115, 115;
    --bs-body-color: #000000;
    --bs-body-bg: #FFFFFF;

    /* Blockio specific */
    --blockio-black: #000000;
    --blockio-white: #FFFFFF;
    --blockio-gray-100: #F5F5F5;
    --blockio-gray-200: #E5E5E5;
    --blockio-gray-300: #D4D4D4;
    --blockio-gray-400: #A3A3A3;
    --blockio-gray-500: #737373;
    --blockio-gray-600: #525252;

    /* Text colors matching Flutter */
    --blockio-text-primary: #000000;
    --blockio-text-secondary: rgba(0, 0, 0, 0.54);
    --blockio-text-tertiary: rgba(0, 0, 0, 0.45);
    --blockio-text-hint: rgba(0, 0, 0, 0.38);

    /* Border colors */
    --blockio-border-default: #E5E5E5;
    --blockio-border-focus: #000000;

    /* Fonts */
    --bs-body-font-family: 'DM Sans', sans-serif;
    --blockio-font-primary: 'DM Sans', sans-serif;
    --blockio-font-display: 'DM Sans', sans-serif;

    /* Border radius */
    --bs-border-radius: 10px;
    --bs-border-radius-sm: 8px;
    --bs-border-radius-lg: 12px;
    --bs-border-radius-xl: 20px;
    --bs-border-radius-2xl: 32px;
}

/* ===========================================
   Base Styles
   =========================================== */
body {
    font-family: var(--blockio-font-primary);
    color: var(--blockio-text-primary);
    background-color: var(--blockio-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ===========================================
   Typography
   =========================================== */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--blockio-font-primary);
    font-weight: 700;
    color: var(--blockio-text-primary);
}

.text-muted {
    color: var(--blockio-text-secondary) !important;
}

/* ===========================================
   Buttons - Bootstrap Override
   =========================================== */
.btn {
    font-family: var(--blockio-font-display);
    font-size: 1.125rem;
    font-weight: 400;
    padding: 0.875rem 1.5rem;
    border-radius: var(--bs-border-radius-lg);
    border: none;
    transition: all 0.2s ease;
    min-height: 54px;
}

.btn:focus {
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

/* Primary Button */
.btn-primary {
    background-color: var(--blockio-black);
    border-color: var(--blockio-black);
    color: var(--blockio-white);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #1a1a1a;
    border-color: #1a1a1a;
    color: var(--blockio-white);
}

.btn-primary:active,
.btn-primary:focus:active {
    background-color: #333333;
    border-color: #333333;
}

.btn-primary:disabled,
.btn-primary.disabled {
    background-color: rgba(0, 0, 0, 0.54);
    border-color: rgba(0, 0, 0, 0.54);
}

/* Outline Button */
.btn-outline-primary {
    color: var(--blockio-text-primary);
    border: 1px solid var(--blockio-border-default);
    background-color: transparent;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--blockio-gray-100);
    border-color: var(--blockio-border-default);
    color: var(--blockio-text-primary);
}

/* Light outline (for dark backgrounds) */
.btn-outline-light {
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: var(--blockio-white);
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
    min-height: auto;
    border-radius: var(--bs-border-radius-xl);
}

.btn-outline-light:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
    color: var(--blockio-white);
}

/* Link style button */
.btn-link {
    font-family: var(--blockio-font-primary);
    font-size: 0.875rem;
    color: var(--blockio-text-secondary);
    text-decoration: none;
    padding: 0;
    min-height: auto;
}

.btn-link:hover {
    color: var(--blockio-text-primary);
    text-decoration: none;
}

/* Large button */
.btn-lg {
    padding: 1rem 2rem;
    font-size: 1.25rem;
    min-height: 60px;
}

/* ===========================================
   Form Controls - Bootstrap Override
   =========================================== */
.form-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--blockio-text-primary);
    margin-bottom: 0.5rem;
}

.form-control,
.form-select {
    padding: 0.75rem 0.875rem;
    font-size: 0.9375rem;
    font-family: var(--blockio-font-primary);
    color: var(--blockio-text-primary);
    background-color: var(--blockio-white);
    border: 1px solid var(--blockio-border-default);
    border-radius: var(--bs-border-radius);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control::placeholder {
    color: var(--blockio-text-hint);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--blockio-border-focus);
    box-shadow: none;
}

.form-control:disabled,
.form-select:disabled {
    background-color: var(--blockio-gray-100);
}

/* Large form control */
.form-control-lg {
    padding: 1rem 1rem;
    font-size: 1rem;
    border-radius: var(--bs-border-radius-lg);
}

/* Validation states */
.form-control.is-invalid {
    border-color: #DC2626;
}

.invalid-feedback {
    font-size: 0.8125rem;
    color: #DC2626;
}

/* ===========================================
   Cards - Bootstrap Override
   =========================================== */
.card {
    border: 1px solid var(--blockio-border-default);
    border-radius: var(--bs-border-radius-lg);
    box-shadow: none;
}

.card-body {
    padding: 1.5rem;
}

.card-header {
    background-color: transparent;
    border-bottom: 1px solid var(--blockio-border-default);
    padding: 1rem 1.5rem;
}

/* ===========================================
   Alerts - Bootstrap Override
   =========================================== */
.alert {
    border-radius: var(--bs-border-radius);
    font-size: 0.875rem;
    border-width: 1px;
}

.alert-danger {
    background-color: #FEF2F2;
    border-color: #FECACA;
    color: #DC2626;
}

.alert-success {
    background-color: #F0FDF4;
    border-color: #BBF7D0;
    color: #16A34A;
}

.alert-info {
    background-color: var(--blockio-gray-100);
    border-color: var(--blockio-border-default);
    color: var(--blockio-text-primary);
}

/* ===========================================
   Auth Layout - Login/Register/Reset Page
   =========================================== */
.blockio-auth-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.blockio-auth-header {
    background-color: var(--blockio-black);
    padding: 1rem 1.25rem;
    min-height: 200px;
    display: flex;
    flex-direction: column;
}

.blockio-auth-header-top {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.blockio-auth-logo-container {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 2rem;
}

.blockio-auth-logo {
    height: 32px;
    width: auto;
}

.blockio-auth-content {
    flex: 1;
    background-color: var(--blockio-white);
    border-radius: var(--bs-border-radius-2xl) var(--bs-border-radius-2xl) 0 0;
    margin-top: -32px;
    padding: 2.5rem 2rem;
    position: relative;
    z-index: 1;
}

.blockio-auth-form {
    max-width: 400px;
    margin: 0 auto;
}

.blockio-auth-welcome {
    margin-bottom: 2rem;
}

.blockio-auth-welcome h1 {
    margin-bottom: 0.25rem;
}

/* ===========================================
   Centered Card Layout (for simple pages)
   =========================================== */
.blockio-centered-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--blockio-black);
    padding: 1rem;
}

.blockio-centered-card {
    background-color: var(--blockio-white);
    border-radius: var(--bs-border-radius-2xl);
    padding: 3rem 2rem;
    max-width: 420px;
    width: 100%;
    text-align: center;
}

.blockio-centered-card .logo {
    margin-bottom: 2rem;
}

.blockio-centered-card .logo img {
    height: 48px;
    width: auto;
}

/* Status icon circles */
.blockio-status-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
    font-size: 2rem;
}

.blockio-status-icon.success {
    background-color: #F0FDF4;
    color: #16A34A;
}

.blockio-status-icon.error {
    background-color: #FEF2F2;
    color: #DC2626;
}

.blockio-status-icon.neutral {
    background-color: var(--blockio-gray-100);
    color: var(--blockio-text-primary);
}

/* User info box */
.blockio-user-info {
    background-color: var(--blockio-gray-100);
    border-radius: var(--bs-border-radius-lg);
    padding: 1rem;
    margin-bottom: 1.5rem;
}

/* ===========================================
   Responsive
   =========================================== */
@media (min-width: 768px) {
    .blockio-auth-header {
        min-height: 250px;
    }

    .blockio-auth-content {
        padding: 3rem;
    }

    .blockio-auth-form {
        max-width: 420px;
    }

    .blockio-centered-card {
        padding: 3rem;
    }
}

@media (min-width: 992px) {
    .blockio-auth-container {
        flex-direction: row;
    }

    .blockio-auth-header {
        width: 40%;
        min-height: 100vh;
        border-radius: 0;
    }

    .blockio-auth-content {
        width: 60%;
        border-radius: 0;
        margin-top: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .blockio-auth-logo {
        height: 40px;
    }
}

/* ===========================================
   Landing Page
   =========================================== */
.blockio-landing {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Navigation */
.blockio-landing-nav {
    padding: 1rem 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--blockio-border-default);
}

.blockio-landing-nav .btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    min-height: auto;
}

/* Hero Section */
.blockio-hero {
    padding-top: 120px;
    padding-bottom: 4rem;
    background: linear-gradient(180deg, var(--blockio-gray-100) 0%, var(--blockio-white) 100%);
    overflow: hidden;
}

.blockio-hero-content {
    max-width: 540px;
}

.blockio-hero-badge {
    display: inline-block;
    background: var(--blockio-black);
    color: var(--blockio-white);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.5rem 1rem;
    border-radius: 50px;
    margin-bottom: 1.5rem;
}

.blockio-badge-soon {
    background: rgba(255, 255, 255, 0.2);
    padding: 0.2rem 0.5rem;
    border-radius: 20px;
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-left: 0.5rem;
}

.blockio-hero-title {
    font-size: 3.25rem;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    letter-spacing: -0.02em;
}

.text-gradient {
    background: linear-gradient(135deg, #000000 0%, #525252 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.blockio-hero-subtitle {
    font-size: 1.25rem;
    color: var(--blockio-text-secondary);
    margin-bottom: 2rem;
    line-height: 1.6;
}

/* Hero Phone Mockup */
.blockio-hero-phone {
    position: relative;
    display: flex;
    justify-content: center;
}

.blockio-phone-mockup {
    background: var(--blockio-black);
    border-radius: 40px;
    padding: 12px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    max-width: 280px;
}

.blockio-phone-screen {
    border-radius: 32px;
    overflow: hidden;
    background: var(--blockio-white);
}

.blockio-phone-screen img {
    width: 100%;
    height: auto;
    display: block;
}

/* Floating badges */
.blockio-hero-float {
    position: absolute;
    background: var(--blockio-white);
    border-radius: 50px;
    padding: 0.625rem 1rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    animation: float 4s ease-in-out infinite;
}

.blockio-hero-float i {
    font-size: 1rem;
}

.blockio-hero-float-1 {
    top: 15%;
    right: 0;
    color: #16A34A;
    animation-delay: 0s;
}

.blockio-hero-float-1 i {
    color: #16A34A;
}

.blockio-hero-float-2 {
    bottom: 20%;
    left: 0;
    color: var(--blockio-text-primary);
    animation-delay: -2s;
}

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

/* Steps Section */
.blockio-steps {
    padding: 5rem 0;
    background: var(--blockio-white);
}

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

.blockio-step-number {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 28px;
    background: var(--blockio-black);
    color: var(--blockio-white);
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.blockio-step-icon {
    width: 80px;
    height: 80px;
    background: var(--blockio-gray-100);
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--blockio-text-primary);
    margin: 1rem auto 1.5rem;
}

.blockio-step-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.blockio-step-text {
    font-size: 0.9375rem;
    color: var(--blockio-text-secondary);
    margin-bottom: 0;
    line-height: 1.5;
}

/* App Preview Section */
.blockio-preview {
    padding: 5rem 0;
    background: var(--blockio-gray-100);
}

.blockio-preview-phones {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.blockio-preview-phone {
    text-align: center;
    opacity: 0.7;
    transform: scale(0.9);
    transition: all 0.3s ease;
}

.blockio-preview-phone:hover {
    opacity: 1;
    transform: scale(0.95);
}

.blockio-preview-phone-main {
    opacity: 1;
    transform: scale(1);
}

.blockio-preview-phone-main:hover {
    transform: scale(1.02);
}

.blockio-phone-mockup-sm {
    max-width: 220px;
}

.blockio-preview-label {
    margin-top: 1rem;
    font-size: 0.875rem;
    color: var(--blockio-text-secondary);
    font-weight: 500;
}

/* Features Section */
.blockio-features {
    padding: 5rem 0;
    background: var(--blockio-white);
}

.blockio-section-title {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.blockio-section-subtitle {
    font-size: 1.125rem;
    color: var(--blockio-text-secondary);
}

.blockio-feature-card {
    padding: 2rem;
    border-radius: var(--bs-border-radius-lg);
    background: var(--blockio-gray-100);
    height: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
}

.blockio-feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

.blockio-feature-card-coming {
    opacity: 0.7;
}

.blockio-coming-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--blockio-black);
    color: var(--blockio-white);
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.25rem 0.625rem;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.blockio-feature-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: var(--blockio-black);
    color: var(--blockio-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1.25rem;
}

.blockio-feature-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.blockio-feature-text {
    font-size: 0.9375rem;
    color: var(--blockio-text-secondary);
    margin-bottom: 0;
    line-height: 1.6;
}

/* Stats Section */
.blockio-stats {
    padding: 4rem 0;
    background: var(--blockio-black);
}

.blockio-stat {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.blockio-stat-value {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--blockio-white);
}

.blockio-stat-label {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.6);
}

/* CTA Section */
.blockio-cta {
    padding: 5rem 0;
    background: var(--blockio-gray-100);
}

.blockio-cta-card {
    background: var(--blockio-white);
    border-radius: var(--bs-border-radius-2xl);
    padding: 4rem 2rem;
    text-align: center;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
}

.blockio-cta-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.blockio-cta-text {
    font-size: 1.125rem;
    color: var(--blockio-text-secondary);
    margin-bottom: 2rem;
}

.blockio-cta-note {
    margin-top: 1.5rem;
    margin-bottom: 0;
    font-size: 0.875rem;
    color: var(--blockio-text-secondary);
}

.blockio-cta-note a {
    color: var(--blockio-text-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.blockio-cta-note a:hover {
    color: var(--blockio-text-primary);
    text-decoration: none;
}

/* Footer */
.blockio-footer {
    background: var(--blockio-black);
    padding: 2.5rem 0 1.5rem;
    margin-top: auto;
}

.blockio-footer-company {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
}

.blockio-footer-separator {
    margin: 0 0.5rem;
    opacity: 0.4;
}

.blockio-footer-contact a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 0.875rem;
    transition: color 0.2s ease;
}

.blockio-footer-contact a:hover {
    color: var(--blockio-white);
}

.blockio-footer-bottom {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.8125rem;
}

/* Responsive - Landing Page */
@media (max-width: 991.98px) {
    .blockio-hero-title {
        font-size: 2.5rem;
    }

    .blockio-hero-subtitle {
        font-size: 1.125rem;
    }

    .blockio-hero-phone {
        margin-bottom: 2rem;
    }

    .blockio-hero-float {
        display: none;
    }

    .blockio-phone-mockup {
        max-width: 240px;
    }

    .blockio-section-title {
        font-size: 1.75rem;
    }

    .blockio-stat-value {
        font-size: 1.75rem;
    }

    .blockio-stat-label {
        font-size: 0.75rem;
    }

    .blockio-cta-card {
        padding: 3rem 1.5rem;
    }

    .blockio-cta-title {
        font-size: 1.5rem;
    }

    .blockio-preview-phones {
        gap: 1rem;
    }

    .blockio-preview-phone {
        transform: scale(0.85);
    }

    .blockio-preview-phone-main {
        transform: scale(0.95);
    }

    .blockio-phone-mockup-sm {
        max-width: 180px;
    }
}

@media (max-width: 767.98px) {
    .blockio-preview-phone:not(.blockio-preview-phone-main) {
        display: none;
    }

    .blockio-preview-phone-main {
        transform: scale(1);
    }

    .blockio-step {
        padding: 1.5rem 0.5rem;
    }

    .blockio-step-icon {
        width: 64px;
        height: 64px;
        font-size: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .blockio-hero {
        padding-top: 100px;
        text-align: center;
    }

    .blockio-hero-content {
        margin: 0 auto;
    }

    .blockio-hero-title {
        font-size: 2rem;
    }

    .blockio-hero .d-flex {
        justify-content: center;
    }

    .blockio-feature-card {
        padding: 1.5rem;
    }

    .blockio-stats {
        padding: 3rem 0;
    }

    .blockio-steps {
        padding: 3rem 0;
    }

    .blockio-preview {
        padding: 3rem 0;
    }

    .blockio-features {
        padding: 3rem 0;
    }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q25CLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsOENBQThDO0lBQzlDLGtCQUFrQjtJQUNsQiwrQkFBK0I7SUFDL0Isb0JBQW9CO0FBQ3hCOztBQUVBLDhCQUE4QjtBQUM5QjtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCOztJQUVBO1FBQ0ksbUJBQW1CO0lBQ3ZCOztJQUVBO1FBQ0ksbUJBQW1CO0lBQ3ZCOztJQUVBO1FBQ0ksYUFBYTtJQUNqQjs7SUFFQTtRQUNJLGdCQUFnQjtJQUNwQjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLG9CQUFvQjtJQUN4Qjs7SUFFQTtRQUNJLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLFNBQVM7SUFDYjs7SUFFQTtRQUNJLHNCQUFzQjtJQUMxQjs7SUFFQTtRQUNJLHNCQUFzQjtJQUMxQjs7SUFFQTtRQUNJLGdCQUFnQjtJQUNwQjtBQUNKOztBQUVBO0lBQ0k7UUFDSSxhQUFhO0lBQ2pCOztJQUVBO1FBQ0ksbUJBQW1CO0lBQ3ZCOztJQUVBO1FBQ0ksc0JBQXNCO0lBQzFCOztJQUVBO1FBQ0ksV0FBVztRQUNYLFlBQVk7UUFDWixpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksa0JBQWtCO1FBQ2xCLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGNBQWM7SUFDbEI7O0lBRUE7UUFDSSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksdUJBQXVCO0lBQzNCOztJQUVBO1FBQ0ksZUFBZTtJQUNuQjs7SUFFQTtRQUNJLGVBQWU7SUFDbkI7O0lBRUE7UUFDSSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksZUFBZTtJQUNuQjs7SUFFQTtRQUNJLGVBQWU7SUFDbkI7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYmxvY2tpby5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmxvY2tpbyBEZXNpZ24gU3lzdGVtIC0gQm9vdHN0cmFwIDUgT3ZlcnJpZGVcbiAgIE1hdGNoaW5nIEZsdXR0ZXIgQXBwIERlc2lnblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBHb29nbGUgRm9udHMgKi9cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PURNK1NhbnM6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCcpO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDU1MgVmFyaWFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG46cm9vdCB7XG4gICAgLyogQ29sb3JzICovXG4gICAgLS1icy1wcmltYXJ5OiAjMDAwMDAwO1xuICAgIC0tYnMtcHJpbWFyeS1yZ2I6IDAsIDAsIDA7XG4gICAgLS1icy1zZWNvbmRhcnk6ICM3MzczNzM7XG4gICAgLS1icy1zZWNvbmRhcnktcmdiOiAxMTUsIDExNSwgMTE1O1xuICAgIC0tYnMtYm9keS1jb2xvcjogIzAwMDAwMDtcbiAgICAtLWJzLWJvZHktYmc6ICNGRkZGRkY7XG5cbiAgICAvKiBCbG9ja2lvIHNwZWNpZmljICovXG4gICAgLS1ibG9ja2lvLWJsYWNrOiAjMDAwMDAwO1xuICAgIC0tYmxvY2tpby13aGl0ZTogI0ZGRkZGRjtcbiAgICAtLWJsb2NraW8tZ3JheS0xMDA6ICNGNUY1RjU7XG4gICAgLS1ibG9ja2lvLWdyYXktMjAwOiAjRTVFNUU1O1xuICAgIC0tYmxvY2tpby1ncmF5LTMwMDogI0Q0RDRENDtcbiAgICAtLWJsb2NraW8tZ3JheS00MDA6ICNBM0EzQTM7XG4gICAgLS1ibG9ja2lvLWdyYXktNTAwOiAjNzM3MzczO1xuICAgIC0tYmxvY2tpby1ncmF5LTYwMDogIzUyNTI1MjtcblxuICAgIC8qIFRleHQgY29sb3JzIG1hdGNoaW5nIEZsdXR0ZXIgKi9cbiAgICAtLWJsb2NraW8tdGV4dC1wcmltYXJ5OiAjMDAwMDAwO1xuICAgIC0tYmxvY2tpby10ZXh0LXNlY29uZGFyeTogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICAtLWJsb2NraW8tdGV4dC10ZXJ0aWFyeTogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgICAtLWJsb2NraW8tdGV4dC1oaW50OiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuXG4gICAgLyogQm9yZGVyIGNvbG9ycyAqL1xuICAgIC0tYmxvY2tpby1ib3JkZXItZGVmYXVsdDogI0U1RTVFNTtcbiAgICAtLWJsb2NraW8tYm9yZGVyLWZvY3VzOiAjMDAwMDAwO1xuXG4gICAgLyogRm9udHMgKi9cbiAgICAtLWJzLWJvZHktZm9udC1mYW1pbHk6ICdETSBTYW5zJywgc2Fucy1zZXJpZjtcbiAgICAtLWJsb2NraW8tZm9udC1wcmltYXJ5OiAnRE0gU2FucycsIHNhbnMtc2VyaWY7XG4gICAgLS1ibG9ja2lvLWZvbnQtZGlzcGxheTogJ0RNIFNhbnMnLCBzYW5zLXNlcmlmO1xuXG4gICAgLyogQm9yZGVyIHJhZGl1cyAqL1xuICAgIC0tYnMtYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAtLWJzLWJvcmRlci1yYWRpdXMtc206IDhweDtcbiAgICAtLWJzLWJvcmRlci1yYWRpdXMtbGc6IDEycHg7XG4gICAgLS1icy1ib3JkZXItcmFkaXVzLXhsOiAyMHB4O1xuICAgIC0tYnMtYm9yZGVyLXJhZGl1cy0yeGw6IDMycHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2UgU3R5bGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tYmxvY2tpby1mb250LXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1ibG9ja2lvLWZvbnQtcHJpbWFyeSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby10ZXh0LXByaW1hcnkpO1xufVxuXG4udGV4dC1tdXRlZCB7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8tdGV4dC1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJ1dHRvbnMgLSBCb290c3RyYXAgT3ZlcnJpZGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5idG4ge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1ibG9ja2lvLWZvbnQtZGlzcGxheSk7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBhZGRpbmc6IDAuODc1cmVtIDEuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBtaW4taGVpZ2h0OiA1NHB4O1xufVxuXG4uYnRuOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBQcmltYXJ5IEJ1dHRvbiAqL1xuLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja2lvLWJsYWNrKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJsb2NraW8tYmxhY2spO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbn1cblxuLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmJ0bi1wcmltYXJ5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhO1xuICAgIGJvcmRlci1jb2xvcjogIzFhMWExYTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG59XG5cbi5idG4tcHJpbWFyeTphY3RpdmUsXG4uYnRuLXByaW1hcnk6Zm9jdXM6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xuICAgIGJvcmRlci1jb2xvcjogIzMzMzMzMztcbn1cblxuLmJ0bi1wcmltYXJ5OmRpc2FibGVkLFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLyogT3V0bGluZSBCdXR0b24gKi9cbi5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby10ZXh0LXByaW1hcnkpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJsb2NraW8tYm9yZGVyLWRlZmF1bHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3Zlcixcbi5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja2lvLWdyYXktMTAwKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJsb2NraW8tYm9yZGVyLWRlZmF1bHQpO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtcHJpbWFyeSk7XG59XG5cbi8qIExpZ2h0IG91dGxpbmUgKGZvciBkYXJrIGJhY2tncm91bmRzKSAqL1xuLmJ0bi1vdXRsaW5lLWxpZ2h0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8td2hpdGUpO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKTtcbn1cblxuLmJ0bi1vdXRsaW5lLWxpZ2h0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8td2hpdGUpO1xufVxuXG4vKiBMaW5rIHN0eWxlIGJ1dHRvbiAqL1xuLmJ0bi1saW5rIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tYmxvY2tpby1mb250LXByaW1hcnkpO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8tdGV4dC1zZWNvbmRhcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG59XG5cbi5idG4tbGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8tdGV4dC1wcmltYXJ5KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIExhcmdlIGJ1dHRvbiAqL1xuLmJ0bi1sZyB7XG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGb3JtIENvbnRyb2xzIC0gQm9vdHN0cmFwIE92ZXJyaWRlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZm9ybS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtcHJpbWFyeSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZm9ybS1jb250cm9sLFxuLmZvcm0tc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDAuODc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1ibG9ja2lvLWZvbnQtcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8tdGV4dC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ibG9ja2lvLWJvcmRlci1kZWZhdWx0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbn1cblxuLmZvcm0tY29udHJvbDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtaGludCk7XG59XG5cbi5mb3JtLWNvbnRyb2w6Zm9jdXMsXG4uZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYmxvY2tpby1ib3JkZXItZm9jdXMpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5mb3JtLWNvbnRyb2w6ZGlzYWJsZWQsXG4uZm9ybS1zZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsb2NraW8tZ3JheS0xMDApO1xufVxuXG4vKiBMYXJnZSBmb3JtIGNvbnRyb2wgKi9cbi5mb3JtLWNvbnRyb2wtbGcge1xuICAgIHBhZGRpbmc6IDFyZW0gMXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZyk7XG59XG5cbi8qIFZhbGlkYXRpb24gc3RhdGVzICovXG4uZm9ybS1jb250cm9sLmlzLWludmFsaWQge1xuICAgIGJvcmRlci1jb2xvcjogI0RDMjYyNjtcbn1cblxuLmludmFsaWQtZmVlZGJhY2sge1xuICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgIGNvbG9yOiAjREMyNjI2O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDYXJkcyAtIEJvb3RzdHJhcCBPdmVycmlkZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJsb2NraW8tYm9yZGVyLWRlZmF1bHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5jYXJkLWJvZHkge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbn1cblxuLmNhcmQtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYmxvY2tpby1ib3JkZXItZGVmYXVsdCk7XG4gICAgcGFkZGluZzogMXJlbSAxLjVyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFsZXJ0cyAtIEJvb3RzdHJhcCBPdmVycmlkZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmFsZXJ0IHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xufVxuXG4uYWxlcnQtZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVGMkYyO1xuICAgIGJvcmRlci1jb2xvcjogI0ZFQ0FDQTtcbiAgICBjb2xvcjogI0RDMjYyNjtcbn1cblxuLmFsZXJ0LXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMEZERjQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjQkJGN0QwO1xuICAgIGNvbG9yOiAjMTZBMzRBO1xufVxuXG4uYWxlcnQtaW5mbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmxvY2tpby1ncmF5LTEwMCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ibG9ja2lvLWJvcmRlci1kZWZhdWx0KTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby10ZXh0LXByaW1hcnkpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBdXRoIExheW91dCAtIExvZ2luL1JlZ2lzdGVyL1Jlc2V0IFBhZ2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ibG9ja2lvLWF1dGgtY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5ibG9ja2lvLWF1dGgtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja2lvLWJsYWNrKTtcbiAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uYmxvY2tpby1hdXRoLWhlYWRlci10b3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYmxvY2tpby1hdXRoLWxvZ28tY29udGFpbmVyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbn1cblxuLmJsb2NraW8tYXV0aC1sb2dvIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5ibG9ja2lvLWF1dGgtY29udGVudCB7XG4gICAgZmxleDogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLTJ4bCkgdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy0yeGwpIDAgMDtcbiAgICBtYXJnaW4tdG9wOiAtMzJweDtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmJsb2NraW8tYXV0aC1mb3JtIHtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uYmxvY2tpby1hdXRoLXdlbGNvbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5ibG9ja2lvLWF1dGgtd2VsY29tZSBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ2VudGVyZWQgQ2FyZCBMYXlvdXQgKGZvciBzaW1wbGUgcGFnZXMpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYmxvY2tpby1jZW50ZXJlZC1wYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmxvY2tpby1ibGFjayk7XG4gICAgcGFkZGluZzogMXJlbTtcbn1cblxuLmJsb2NraW8tY2VudGVyZWQtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy0yeGwpO1xuICAgIHBhZGRpbmc6IDNyZW0gMnJlbTtcbiAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJsb2NraW8tY2VudGVyZWQtY2FyZCAubG9nbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmJsb2NraW8tY2VudGVyZWQtY2FyZCAubG9nbyBpbWcge1xuICAgIGhlaWdodDogNDhweDtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLyogU3RhdHVzIGljb24gY2lyY2xlcyAqL1xuLmJsb2NraW8tc3RhdHVzLWljb24ge1xuICAgIHdpZHRoOiA3MnB4O1xuICAgIGhlaWdodDogNzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgZm9udC1zaXplOiAycmVtO1xufVxuXG4uYmxvY2tpby1zdGF0dXMtaWNvbi5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGREY0O1xuICAgIGNvbG9yOiAjMTZBMzRBO1xufVxuXG4uYmxvY2tpby1zdGF0dXMtaWNvbi5lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZFRjJGMjtcbiAgICBjb2xvcjogI0RDMjYyNjtcbn1cblxuLmJsb2NraW8tc3RhdHVzLWljb24ubmV1dHJhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmxvY2tpby1ncmF5LTEwMCk7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8tdGV4dC1wcmltYXJ5KTtcbn1cblxuLyogVXNlciBpbmZvIGJveCAqL1xuLmJsb2NraW8tdXNlci1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja2lvLWdyYXktMTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVzcG9uc2l2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmJsb2NraW8tYXV0aC1oZWFkZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1hdXRoLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAzcmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLWF1dGgtZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgfVxuXG4gICAgLmJsb2NraW8tY2VudGVyZWQtY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuYmxvY2tpby1hdXRoLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLmJsb2NraW8tYXV0aC1oZWFkZXIge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1hdXRoLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1hdXRoLWxvZ28ge1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMYW5kaW5nIFBhZ2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ibG9ja2lvLWxhbmRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogTmF2aWdhdGlvbiAqL1xuLmJsb2NraW8tbGFuZGluZy1uYXYge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYmxvY2tpby1ib3JkZXItZGVmYXVsdCk7XG59XG5cbi5ibG9ja2lvLWxhbmRpbmctbmF2IC5idG4tc20ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbWluLWhlaWdodDogYXV0bztcbn1cblxuLyogSGVybyBTZWN0aW9uICovXG4uYmxvY2tpby1oZXJvIHtcbiAgICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tYmxvY2tpby1ncmF5LTEwMCkgMCUsIHZhcigtLWJsb2NraW8td2hpdGUpIDEwMCUpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5ibG9ja2lvLWhlcm8tY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiA1NDBweDtcbn1cblxuLmJsb2NraW8taGVyby1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJsb2NraW8tYmxhY2spO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuLmJsb2NraW8tYmFkZ2Utc29vbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIHBhZGRpbmc6IDAuMnJlbSAwLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDAuNjI1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4uYmxvY2tpby1oZXJvLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDMuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cblxuLnRleHQtZ3JhZGllbnQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDAwMDAgMCUsICM1MjUyNTIgMTAwJSk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbn1cblxuLmJsb2NraW8taGVyby1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtc2Vjb25kYXJ5KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi8qIEhlcm8gUGhvbmUgTW9ja3VwICovXG4uYmxvY2tpby1oZXJvLXBob25lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmJsb2NraW8tcGhvbmUtbW9ja3VwIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLWJsYWNrKTtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAyNXB4IDUwcHggLTEycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xufVxuXG4uYmxvY2tpby1waG9uZS1zY3JlZW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbn1cblxuLmJsb2NraW8tcGhvbmUtc2NyZWVuIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBGbG9hdGluZyBiYWRnZXMgKi9cbi5ibG9ja2lvLWhlcm8tZmxvYXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDAuNjI1cmVtIDFyZW07XG4gICAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBhbmltYXRpb246IGZsb2F0IDRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4uYmxvY2tpby1oZXJvLWZsb2F0IGkge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmJsb2NraW8taGVyby1mbG9hdC0xIHtcbiAgICB0b3A6IDE1JTtcbiAgICByaWdodDogMDtcbiAgICBjb2xvcjogIzE2QTM0QTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xufVxuXG4uYmxvY2tpby1oZXJvLWZsb2F0LTEgaSB7XG4gICAgY29sb3I6ICMxNkEzNEE7XG59XG5cbi5ibG9ja2lvLWhlcm8tZmxvYXQtMiB7XG4gICAgYm90dG9tOiAyMCU7XG4gICAgbGVmdDogMDtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby10ZXh0LXByaW1hcnkpO1xuICAgIGFuaW1hdGlvbi1kZWxheTogLTJzO1xufVxuXG5Aa2V5ZnJhbWVzIGZsb2F0IHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9XG4gICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG59XG5cbi8qIFN0ZXBzIFNlY3Rpb24gKi9cbi5ibG9ja2lvLXN0ZXBzIHtcbiAgICBwYWRkaW5nOiA1cmVtIDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG59XG5cbi5ibG9ja2lvLXN0ZXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmxvY2tpby1zdGVwLW51bWJlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLWJsYWNrKTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmJsb2NraW8tc3RlcC1pY29uIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tpby1ncmF5LTEwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtcHJpbWFyeSk7XG4gICAgbWFyZ2luOiAxcmVtIGF1dG8gMS41cmVtO1xufVxuXG4uYmxvY2tpby1zdGVwLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uYmxvY2tpby1zdGVwLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtc2Vjb25kYXJ5KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIEFwcCBQcmV2aWV3IFNlY3Rpb24gKi9cbi5ibG9ja2lvLXByZXZpZXcge1xuICAgIHBhZGRpbmc6IDVyZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLWdyYXktMTAwKTtcbn1cblxuLmJsb2NraW8tcHJldmlldy1waG9uZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMS41cmVtO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmJsb2NraW8tcHJldmlldy1waG9uZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmJsb2NraW8tcHJldmlldy1waG9uZTpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uYmxvY2tpby1wcmV2aWV3LXBob25lLW1haW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cblxuLmJsb2NraW8tcHJldmlldy1waG9uZS1tYWluOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xufVxuXG4uYmxvY2tpby1waG9uZS1tb2NrdXAtc20ge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG59XG5cbi5ibG9ja2lvLXByZXZpZXctbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby10ZXh0LXNlY29uZGFyeSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLyogRmVhdHVyZXMgU2VjdGlvbiAqL1xuLmJsb2NraW8tZmVhdHVyZXMge1xuICAgIHBhZGRpbmc6IDVyZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLXdoaXRlKTtcbn1cblxuLmJsb2NraW8tc2VjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uYmxvY2tpby1zZWN0aW9uLXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtc2Vjb25kYXJ5KTtcbn1cblxuLmJsb2NraW8tZmVhdHVyZS1jYXJkIHtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJsb2NraW8tZ3JheS0xMDApO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ibG9ja2lvLWZlYXR1cmUtY2FyZDpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cblxuLmJsb2NraW8tZmVhdHVyZS1jYXJkLWNvbWluZyB7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4uYmxvY2tpby1jb21pbmctYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFyZW07XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tpby1ibGFjayk7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8td2hpdGUpO1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLmJsb2NraW8tZmVhdHVyZS1pY29uIHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLWJsYWNrKTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi5ibG9ja2lvLWZlYXR1cmUtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5ibG9ja2lvLWZlYXR1cmUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8tdGV4dC1zZWNvbmRhcnkpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLyogU3RhdHMgU2VjdGlvbiAqL1xuLmJsb2NraW8tc3RhdHMge1xuICAgIHBhZGRpbmc6IDRyZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja2lvLWJsYWNrKTtcbn1cblxuLmJsb2NraW8tc3RhdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMC4yNXJlbTtcbn1cblxuLmJsb2NraW8tc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG59XG5cbi5ibG9ja2lvLXN0YXQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cblxuLyogQ1RBIFNlY3Rpb24gKi9cbi5ibG9ja2lvLWN0YSB7XG4gICAgcGFkZGluZzogNXJlbSAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJsb2NraW8tZ3JheS0xMDApO1xufVxuXG4uYmxvY2tpby1jdGEtY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tpby13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy0yeGwpO1xuICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4uYmxvY2tpby1jdGEtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5ibG9ja2lvLWN0YS10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtc2Vjb25kYXJ5KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uYmxvY2tpby1jdGEtbm90ZSB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2tpby10ZXh0LXNlY29uZGFyeSk7XG59XG5cbi5ibG9ja2lvLWN0YS1ub3RlIGEge1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtcHJpbWFyeSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5ibG9ja2lvLWN0YS1ub3RlIGE6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1ibG9ja2lvLXRleHQtcHJpbWFyeSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKiBGb290ZXIgKi9cbi5ibG9ja2lvLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tpby1ibGFjayk7XG4gICAgcGFkZGluZzogMi41cmVtIDAgMS41cmVtO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5ibG9ja2lvLWZvb3Rlci1jb21wYW55IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5ibG9ja2lvLWZvb3Rlci1zZXBhcmF0b3Ige1xuICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgb3BhY2l0eTogMC40O1xufVxuXG4uYmxvY2tpby1mb290ZXItY29udGFjdCBhIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLmJsb2NraW8tZm9vdGVyLWNvbnRhY3QgYTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWJsb2NraW8td2hpdGUpO1xufVxuXG4uYmxvY2tpby1mb290ZXItYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbn1cblxuLyogUmVzcG9uc2l2ZSAtIExhbmRpbmcgUGFnZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLmJsb2NraW8taGVyby10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLWhlcm8tc3VidGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLWhlcm8tcGhvbmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLWhlcm8tZmxvYXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXBob25lLW1vY2t1cCB7XG4gICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgfVxuXG4gICAgLmJsb2NraW8tc2VjdGlvbi10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1zdGF0LXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXN0YXQtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgfVxuXG4gICAgLmJsb2NraW8tY3RhLWNhcmQge1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDEuNXJlbTtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1jdGEtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1wcmV2aWV3LXBob25lcyB7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1wcmV2aWV3LXBob25lIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1wcmV2aWV3LXBob25lLW1haW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXBob25lLW1vY2t1cC1zbSB7XG4gICAgICAgIG1heC13aWR0aDogMTgwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICAuYmxvY2tpby1wcmV2aWV3LXBob25lOm5vdCguYmxvY2tpby1wcmV2aWV3LXBob25lLW1haW4pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuYmxvY2tpby1wcmV2aWV3LXBob25lLW1haW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXN0ZXAge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMC41cmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXN0ZXAtaWNvbiB7XG4gICAgICAgIHdpZHRoOiA2NHB4O1xuICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmJsb2NraW8taGVybyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLWhlcm8tY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLWhlcm8tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuXG4gICAgLmJsb2NraW8taGVybyAuZC1mbGV4IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmJsb2NraW8tZmVhdHVyZS1jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXN0YXRzIHtcbiAgICAgICAgcGFkZGluZzogM3JlbSAwO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXN0ZXBzIHtcbiAgICAgICAgcGFkZGluZzogM3JlbSAwO1xuICAgIH1cblxuICAgIC5ibG9ja2lvLXByZXZpZXcge1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDA7XG4gICAgfVxuXG4gICAgLmJsb2NraW8tZmVhdHVyZXMge1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDA7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==*/