/*!****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/style.css ***!
  \****************************************************************************************************************/
/**
* Template Name: NiceAdmin - v2.5.0
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
#ui-id-1 {
    position: absolute;
}


:root {
    scroll-behavior: smooth;
}

body {
    font-family: "Open Sans", sans-serif;
    background: #f6f9ff;
    color: #444444;
}

a {
    color: #4154f1;
    text-decoration: none;
}

a:hover {
    color: #717ff5;
    text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Nunito", sans-serif;
}

/*--------------------------------------------------------------
# Main
--------------------------------------------------------------*/
#main {
    background-color: #ffffff;
    margin-top: 60px;
    padding: 20px 30px;
    transition: all 0.3s;
}

@media (max-width: 1199px) {
    #main {
        padding: 20px;
    }
}

/*--------------------------------------------------------------
# Page Title
--------------------------------------------------------------*/
.pagetitle {
    margin-bottom: 10px;
}

.pagetitle h1 {
    font-size: 24px;
    margin-bottom: 0;
    font-weight: 600;
    color: #012970;
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
    position: fixed;
    visibility: hidden;
    opacity: 0;
    right: 15px;
    bottom: 15px;
    z-index: 99999;
    background: #4154f1;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    transition: all 0.4s;
}

.back-to-top i {
    font-size: 24px;
    color: #fff;
    line-height: 0;
}

.back-to-top:hover {
    background: #6776f4;
    color: #fff;
}

.back-to-top.active {
    visibility: visible;
    opacity: 1;
}

/*--------------------------------------------------------------
# Override some default Bootstrap stylings
--------------------------------------------------------------*/
/* Dropdown menus */
.dropdown-menu {
    border-radius: 4px;
    padding: 10px 0;
    -webkit-animation-name: dropdown-animate;
    animation-name: dropdown-animate;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    border: 0;
    box-shadow: 0 5px 30px 0 rgba(82, 63, 105, 0.2);
}

.dropdown-menu .dropdown-header,
.dropdown-menu .dropdown-footer {
    text-align: center;
    font-size: 15px;
    padding: 10px 25px;
}

.dropdown-menu .dropdown-footer a {
    color: #444444;
    text-decoration: underline;
}

.dropdown-menu .dropdown-footer a:hover {
    text-decoration: none;
}

.dropdown-menu .dropdown-divider {
    color: #a5c5fe;
    margin: 0;
}

.dropdown-menu .dropdown-item {
    font-size: 14px;
    padding: 10px 15px;
    transition: 0.3s;
}

.dropdown-menu .dropdown-item i {
    margin-right: 10px;
    font-size: 18px;
    line-height: 0;
}

.dropdown-menu .dropdown-item:hover {
    background-color: #f6f9ff;
}

@media (min-width: 768px) {
    .dropdown-menu-arrow::before {
        content: "";
        width: 13px;
        height: 13px;
        background: #fff;
        position: absolute;
        top: -7px;
        right: 20px;
        transform: rotate(45deg);
        border-top: 1px solid #eaedf1;
        border-left: 1px solid #eaedf1;
    }
}

@-webkit-keyframes dropdown-animate {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

    0% {
        opacity: 0;
    }
}

@keyframes dropdown-animate {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

    0% {
        opacity: 0;
    }
}

/* Light Backgrounds */
.bg-primary-light {
    background-color: #cfe2ff;
    border-color: #cfe2ff;
}

.bg-secondary-light {
    background-color: #e2e3e5;
    border-color: #e2e3e5;
}

.bg-success-light {
    background-color: #d1e7dd;
    border-color: #d1e7dd;
}

.bg-danger-light {
    background-color: #f8d7da;
    border-color: #f8d7da;
}

.bg-warning-light {
    background-color: #fff3cd;
    border-color: #fff3cd;
}

.bg-info-light {
    background-color: #cff4fc;
    border-color: #cff4fc;
}

.bg-dark-light {
    background-color: #d3d3d4;
    border-color: #d3d3d4;
}

/* Card */
.card {
    margin-bottom: 30px;
    /*border: none;*/
    /*border-radius: 5px;*/
    /*box-shadow: 0px 0 30px rgba(1, 41, 112, 0.1);*/
}

/*.card-header,*/
.card-footer {
    border-color: #ebeef4;
    background-color: #fff;
    color: #798eb3;
    padding: 15px;
}

.card-title {
    padding: 20px 0 15px 0;
    font-size: 18px;
    font-weight: 500;
    /*color: #012970;*/
    font-family: "Poppins", sans-serif;
}

.card-title span {
    color: #899bbd;
    font-size: 14px;
    font-weight: 400;
}

.card-body {
    padding: 0 20px 20px 20px;
}

.card-img-overlay {
    background-color: rgba(255, 255, 255, 0.6);
}

/* Alerts */
.alert-heading {
    font-weight: 500;
    font-family: "Poppins", sans-serif;
    font-size: 20px;
}

/* Close Button */
.btn-close {
    background-size: 25%;
}

.btn-close:focus {
    outline: 0;
    box-shadow: none;
}

/* Accordion */
.accordion-item {
    border: 1px solid #ebeef4;
}

.accordion-button:focus {
    outline: 0;
    box-shadow: none;
}

.accordion-button:not(.collapsed) {
    color: #012970;
    background-color: #f6f9ff;
}

.accordion-flush .accordion-button {
    padding: 15px 0;
    background: none;
    border: 0;
}

.accordion-flush .accordion-button:not(.collapsed) {
    box-shadow: none;
    color: #4154f1;
}

.accordion-flush .accordion-body {
    padding: 0 0 15px 0;
    color: #3e4f6f;
    font-size: 15px;
}

/* Breadcrumbs */
.breadcrumb {
    font-size: 14px;
    font-family: "Nunito", sans-serif;
    color: #899bbd;
    font-weight: 600;
}

.breadcrumb a {
    color: #899bbd;
    transition: 0.3s;
}

.breadcrumb a:hover {
    color: #51678f;
}

.breadcrumb .breadcrumb-item::before {
    color: #899bbd;
}

.breadcrumb .active {
    color: #51678f;
    font-weight: 600;
}

/* Bordered Tabs */
.nav-tabs-bordered {
    border-bottom: 2px solid #ebeef4;
}

.nav-tabs-bordered .nav-link {
    margin-bottom: -2px;
    border: none;
    color: #2c384e;
}

.nav-tabs-bordered .nav-link:hover,
.nav-tabs-bordered .nav-link:focus {
    color: #4154f1;
}

.nav-tabs-bordered .nav-link.active {
    background-color: #fff;
    color: #4154f1;
    border-bottom: 2px solid #4154f1;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.logo {
    line-height: 1;
}

@media (min-width: 1200px) {
    .logo {
        width: 280px;
    }
}

.logo img {
    max-height: 50px;
    margin-right: 6px;
}

.logo span {
    font-size: 26px;
    font-weight: 700;
    color: #000; /* Texto negro para el logo */
    font-family: "Nunito", sans-serif;
}

.header {
    transition: all 0.5s;
    z-index: 997;
    height: 60px;
    box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.1);
    background-color: #4e8e37; /* Verde oscuro profesional */
    padding-left: 20px;
}

.header .toggle-sidebar-btn {
    font-size: 32px;
    padding-left: 10px;
    cursor: pointer;
    color: #000; /* Icono negro */
}

.header .search-bar {
    min-width: 360px;
    padding: 0 20px;
    background: #4e8e37; /* Verde muy claro para la barra de búsqueda */
}

@media (max-width: 1199px) {
    .header .search-bar {
        position: fixed;
        top: 50px;
        left: 0;
        right: 0;
        padding: 20px;
        box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
        background: #fff; /* Fondo blanco cuando está visible */
        z-index: 9999;
        transition: 0.3s;
        visibility: hidden;
        opacity: 0;
    }

    .header .search-bar-show {
        top: 60px;
        visibility: visible;
        opacity: 1;
    }
}

.header .search-form {
    width: 100%;
}

.header .search-form input {
    border: 1px solid rgba(0, 0, 0, 0.2); /* Borde negro claro */
    font-size: 14px;
    color: #040404; /* Texto gris oscuro en el input */
    padding: 7px 38px 7px 8px;
    border-radius: 3px;
    transition: 0.3s;
    width: 100%;
}

.header .search-form input:focus,
.header .search-form input:hover {
    outline: none;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); /* Sombra negra clara */
    border: 1px solid rgba(0, 0, 0, 0.3); /* Borde negro claro */
}

.header .search-form button {
    border: 0;
    padding: 0;
    margin-left: -30px;
    background: none;
}

.header .search-form button i {
    color: #333; /* Icono gris oscuro */
}


/*--------------------------------------------------------------
# Header Nav
--------------------------------------------------------------*/
.header-nav ul {
    list-style: none;
}

.header-nav > ul {
    margin: 0;
    padding: 0;
}

.header-nav .nav-icon {
    font-size: 22px;
    color: #333; /* Gris oscuro */
    margin-right: 25px;
    position: relative;
}

.header-nav .nav-profile {
    color: #040404; /* Gris oscuro */
}

.header-nav .nav-profile img {
    max-height: 36px;
}

.header-nav .nav-profile span {
    font-size: 14px;
    font-weight: 600;
}

.header-nav .badge-number {
    position: absolute;
    inset: -2px -5px auto auto;
    font-weight: normal;
    font-size: 12px;
    padding: 3px 6px;
}

.header-nav .notifications {
    inset: 8px -15px auto auto !important;
}

.header-nav .notifications .notification-item {
    display: flex;
    align-items: center;
    padding: 15px 10px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .notifications .notification-item i {
    margin: 0 20px 0 10px;
    font-size: 24px;
    color: #333; /* Gris oscuro */
}

.header-nav .notifications .notification-item h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #333; /* Gris oscuro */
}

.header-nav .notifications .notification-item p {
    font-size: 13px;
    margin-bottom: 3px;
    color: #666; /* Gris medio */
}

.header-nav .notifications .notification-item:hover {
    background-color: #eaeaea; /* Gris claro */
}

.header-nav .messages {
    inset: 8px -15px auto auto !important;
}

.header-nav .messages .message-item {
    padding: 15px 10px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .messages .message-item a {
    display: flex;
}

.header-nav .messages .message-item img {
    margin: 0 20px 0 10px;
    max-height: 40px;
}

.header-nav .messages .message-item h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #333; /* Gris oscuro */
}

.header-nav .messages .message-item p {
    font-size: 13px;
    margin-bottom: 3px;
    color: #666; /* Gris medio */
}

.header-nav .messages .message-item:hover {
    background-color: #eaeaea; /* Gris claro */
}

.header-nav .profile {
    min-width: 240px;
    padding-bottom: 0;
    top: 8px !important;
}

.header-nav .profile .dropdown-header h6 {
    font-size: 18px;
    margin-bottom: 0;
    font-weight: 600;
    color: #333; /* Gris oscuro */
}

.header-nav .profile .dropdown-header span {
    font-size: 14px;
}

.header-nav .profile .dropdown-item {
    font-size: 14px;
    padding: 10px 15px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .profile .dropdown-item i {
    margin-right: 10px;
    font-size: 18px;
    line-height: 0;
    color: #333; /* Gris oscuro */
}

.header-nav .profile .dropdown-item:hover {
    background-color: #eaeaea; /* Gris claro */
}


/*--------------------------------------------------------------
# Sidebar
--------------------------------------------------------------*/
.sidebar {
    position: fixed;
    top: 60px;
    left: 0;
    bottom: 0;
    width: 300px;
    z-index: 996;
    transition: all 0.3s;
    padding: 20px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #4b8a2e transparent; /* Verde oscuro para el scrollbar */
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.4); /* Sombra negra más pronunciada */
    background-color: #e5f2e5; /* Verde muy claro */
}

@media (max-width: 1199px) {
    .sidebar {
        left: -300px; /* Oculta la barra lateral en pantallas pequeñas */
    }
}

.sidebar::-webkit-scrollbar {
    width: 5px;
    height: 8px;
    background-color: #e5f2e5; /* Verde muy claro para el fondo del scrollbar */
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #4b8a2e; /* Verde oscuro para el pulgar del scrollbar */
}

@media (min-width: 1200px) {
    #main,
    #footer {
        margin-left: 300px; /* Ajusta el margen del contenido principal para hacer espacio para la barra lateral */
    }
}

@media (max-width: 1199px) {
    .toggle-sidebar .sidebar {
        left: 0; /* Muestra la barra lateral en pantallas pequeñas cuando se activa el toggle */
    }
}

@media (min-width: 1200px) {
    .toggle-sidebar #main,
    .toggle-sidebar #footer {
        margin-left: 0; /* Restablece el margen cuando se oculta la barra lateral */
    }

    .toggle-sidebar .sidebar {
        left: -300px; /* Oculta la barra lateral cuando se activa el toggle en pantallas grandes */
    }
}

/* Sidebar Navigation */
.sidebar-nav {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar-nav li {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar-nav .nav-item {
    margin-bottom: 5px; /* Espacio entre los ítems de navegación */
}

.sidebar-nav .nav-heading {
    font-size: 12px;
    text-transform: uppercase;
    color: #333; /* Gris oscuro */
    padding: 10px;
    font-weight: 600;
}

.sidebar-nav .nav-link {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    color: #2c6b2f; /* Verde oscuro para texto de enlaces */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces */
    border-radius: 3px;
    transition: 0.3s;
    font-size: 16px;
    font-weight: bold;
}

.sidebar-nav .nav-link i {
    font-size: 18px;
    margin-right: 10px;
    color: #4b8a2e; /* Verde oscuro para los íconos */
}

.sidebar-nav .nav-link:hover {
    color: #1a1a1a; /* Gris oscuro para el texto de enlaces al pasar el mouse */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces al pasar el mouse */
}

.sidebar-nav .nav-content a {
    display: block;
    padding: 10px 20px;
    color: #2c6b2f; /* Verde oscuro para texto de enlaces en contenido de navegación */
    background: #e5f2e5; /* Verde muy claro para el fondo de enlaces en contenido de navegación */
    border-radius: 3px;
    font-size: 14px;
    font-weight: bold;
}

.sidebar-nav .nav-content a i {
    font-size: 6px;
    margin-right: 8px;
    line-height: 0;
    border-radius: 50%;
}


.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #1a1a1a; /* Gris oscuro para texto de enlaces activos y al pasar el mouse */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces activos y al pasar el mouse */
}

.sidebar-nav .nav-content a.active i {
    background-color: #d6f0d6; /* Verde muy claro para el fondo de íconos activos */

}


/*--------------------------------------------------------------
# Dashboard
--------------------------------------------------------------*/

.dashboard .filter {
    position: absolute;
    right: 0px;
    top: 15px;
}

.dashboard .filter .icon {
    color: #000;
    padding-right: 20px;
    padding-bottom: 5px;
    transition: 0.3s;
    font-size: 16px;
}

.dashboard .filter .icon:hover,
.dashboard .filter .icon:focus {
    color: #4154f1;
}

.dashboard .filter .dropdown-header {
    padding: 8px 15px;
}

.dashboard .filter .dropdown-header h6 {
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #aab7cf;
    margin-bottom: 0;
    padding: 0;
}

.dashboard .filter .dropdown-item {
    padding: 8px 15px;
}

/* Info Cards */
.dashboard .info-card {
    padding-bottom: 10px;
}

.dashboard .info-card h6 {
    font-size: 28px;
    color: #012970;
    font-weight: 700;
    margin: 0;
    padding: 0;
}

.dashboard .card-icon {
    font-size: 32px;
    line-height: 0;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    flex-grow: 0;
}

.dashboard .sales-card .card-icon {
    color: #4154f1;
    background: #f6f6fe;
}

.dashboard .revenue-card .card-icon {
    color: #2eca6a;
    background: #e0f8e9;
}

.dashboard .customers-card .card-icon {
    color: #ff771d;
    background: #ffecdf;
}

/* Activity */
.dashboard .activity {
    font-size: 14px;
}

.dashboard .activity .activity-item .activite-label {
    color: #888;
    position: relative;
    flex-shrink: 0;
    flex-grow: 0;
    min-width: 64px;
}

.dashboard .activity .activity-item .activite-label::before {
    content: "";
    position: absolute;
    right: -11px;
    width: 4px;
    top: 0;
    bottom: 0;
    background-color: #eceefe;
}

.dashboard .activity .activity-item .activity-badge {
    margin-top: 3px;
    z-index: 1;
    font-size: 11px;
    line-height: 0;
    border-radius: 50%;
    flex-shrink: 0;
    border: 3px solid #fff;
    flex-grow: 0;
}

.dashboard .activity .activity-item .activity-content {
    padding-left: 10px;
    padding-bottom: 20px;
}

.dashboard .activity .activity-item:first-child .activite-label::before {
    top: 5px;
}

.dashboard .activity .activity-item:last-child .activity-content {
    padding-bottom: 0;
}

/* News & Updates */
.dashboard .news .post-item + .post-item {
    margin-top: 15px;
}

.dashboard .news img {
    width: 80px;
    float: left;
    border-radius: 5px;
}

.dashboard .news h4 {
    font-size: 15px;
    margin-left: 95px;
    font-weight: bold;
    margin-bottom: 5px;
}

.dashboard .news h4 a {
    color: #012970;
    transition: 0.3s;
}

.dashboard .news h4 a:hover {
    color: #4154f1;
}

.dashboard .news p {
    font-size: 14px;
    color: #777777;
    margin-left: 95px;
}

/* Recent Sales */
.dashboard .recent-sales {
    font-size: 14px;
}

.dashboard .recent-sales .table thead {
    background: #f6f6fe;
}

.dashboard .recent-sales .table thead th {
    border: 0;
}

.dashboard .recent-sales .dataTable-top {
    padding: 0 0 10px 0;
}

.dashboard .recent-sales .dataTable-bottom {
    padding: 10px 0 0 0;
}

/* Top Selling */
.dashboard .top-selling {
    font-size: 14px;
}

.dashboard .top-selling .table thead {
    background: #f6f6fe;
}

.dashboard .top-selling .table thead th {
    border: 0;
}

.dashboard .top-selling .table tbody td {
    vertical-align: middle;
}

.dashboard .top-selling img {
    border-radius: 5px;
    max-width: 60px;
}

/*--------------------------------------------------------------
# Icons list page
--------------------------------------------------------------*/
.iconslist {
    display: grid;
    max-width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1.25rem;
    padding-top: 15px;
}

.iconslist .icon {
    background-color: #fff;
    border-radius: 0.25rem;
    text-align: center;
    color: #012970;
    padding: 15px 0;
}

.iconslist i {
    margin: 0.25rem;
    font-size: 2.5rem;
}

.iconslist .label {
    font-family: var(--bs-font-monospace);
    display: inline-block;
    width: 100%;
    overflow: hidden;
    padding: 0.25rem;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #666;
}

/*--------------------------------------------------------------
# Profie Page
--------------------------------------------------------------*/
.profile .profile-card img {
    max-width: 120px;
}

.profile .profile-card h2 {
    font-size: 24px;
    font-weight: 700;
    color: #2c384e;
    margin: 10px 0 0 0;
}

.profile .profile-card h3 {
    font-size: 18px;
}

.profile .profile-card .social-links a {
    font-size: 20px;
    display: inline-block;
    color: rgba(1, 41, 112, 0.5);
    line-height: 0;
    margin-right: 10px;
    transition: 0.3s;
}

.profile .profile-card .social-links a:hover {
    color: #012970;
}

.profile .profile-overview .row {
    margin-bottom: 20px;
    font-size: 15px;
}

.profile .profile-overview .card-title {
    color: #012970;
}

.profile .profile-overview .label {
    font-weight: 600;
    color: rgba(1, 41, 112, 0.6);
}

.profile .profile-edit label {
    font-weight: 600;
    color: rgba(1, 41, 112, 0.6);
}

.profile .profile-edit img {
    max-width: 120px;
}

/*--------------------------------------------------------------
# F.A.Q Page
--------------------------------------------------------------*/
.faq .basic h6 {
    font-size: 18px;
    font-weight: 600;
    color: #4154f1;
}

.faq .basic p {
    color: #6980aa;
}

/*--------------------------------------------------------------
# Contact
--------------------------------------------------------------*/
.contact .info-box {
    padding: 28px 30px;
}

.contact .info-box i {
    font-size: 38px;
    line-height: 0;
    color: #4154f1;
}

.contact .info-box h3 {
    font-size: 20px;
    color: #012970;
    font-weight: 700;
    margin: 20px 0 10px 0;
}

.contact .info-box p {
    padding: 0;
    line-height: 24px;
    font-size: 14px;
    margin-bottom: 0;
}

.contact .php-email-form .error-message {
    display: none;
    color: #fff;
    background: #ed3c0d;
    text-align: left;
    padding: 15px;
    margin-bottom: 24px;
    font-weight: 600;
}

.contact .php-email-form .sent-message {
    display: none;
    color: #fff;
    background: #18d26e;
    text-align: center;
    padding: 15px;
    margin-bottom: 24px;
    font-weight: 600;
}

.contact .php-email-form .loading {
    display: none;
    background: #fff;
    text-align: center;
    padding: 15px;
    margin-bottom: 24px;
}

.contact .php-email-form .loading:before {
    content: "";
    display: inline-block;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    margin: 0 10px -6px 0;
    border: 3px solid #18d26e;
    border-top-color: #eee;
    -webkit-animation: animate-loading 1s linear infinite;
    animation: animate-loading 1s linear infinite;
}

.contact .php-email-form input,
.contact .php-email-form textarea {
    border-radius: 0;
    box-shadow: none;
    font-size: 14px;
    border-radius: 0;
}

.contact .php-email-form input:focus,
.contact .php-email-form textarea:focus {
    border-color: #4154f1;
}

.contact .php-email-form input {
    padding: 10px 15px;
}

.contact .php-email-form textarea {
    padding: 12px 15px;
}

.contact .php-email-form button[type=submit] {
    background: #4154f1;
    border: 0;
    padding: 10px 30px;
    color: #fff;
    transition: 0.4s;
    border-radius: 4px;
}

.contact .php-email-form button[type=submit]:hover {
    background: #5969f3;
}

@-webkit-keyframes animate-loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes animate-loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/*--------------------------------------------------------------
# Error 404
--------------------------------------------------------------*/
.error-404 {
    padding: 30px;
}

.error-404 h1 {
    font-size: 180px;
    font-weight: 700;
    color: #4154f1;
    margin-bottom: 0;
    line-height: 150px;
}

.error-404 h2 {
    font-size: 24px;
    font-weight: 700;
    color: #012970;
    margin-bottom: 30px;
}

.error-404 .btn {
    background: #51678f;
    color: #fff;
    padding: 8px 30px;
}

.error-404 .btn:hover {
    background: #3e4f6f;
}

@media (min-width: 992px) {
    .error-404 img {
        max-width: 50%;
    }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
    padding: 20px 0;
    font-size: 14px;
    transition: all 0.3s;
    border-top: 1px solid #cddfff;
}

.footer .copyright {
    text-align: center;
    color: #012970;
}

.footer .credits {
    padding-top: 5px;
    text-align: center;
    font-size: 13px;
    color: #012970;
}

/* --------------------------------------------------------------
# Navbar + Sidebar Refresh
-------------------------------------------------------------- */
:root {
    --header-height: 64px;
    --sidebar-width: 300px;
    --brand-900: #0f2f4a;
    --brand-800: #174264;
    --brand-700: #2f6b96;
    --brand-100: #ecf4fb;
    --surface-0: #ffffff;
    --surface-1: #f4f7fb;
    --text-900: #1f2d3d;
    --text-700: #4d5f73;
    --text-on-brand: #f4f9ff;
}

body {
    background: linear-gradient(180deg, #f6f9ff 0%, #f1f5fa 100%);
}

#main {
    margin-top: var(--header-height);
}

.header {
    height: var(--header-height);
    padding-left: 16px;
    padding-right: 16px;
    background: linear-gradient(120deg, var(--brand-900) 0%, var(--brand-700) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 10px 26px rgba(10, 31, 52, 0.28);
}

.logo img {
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.24);
}

.logo span {
    color: var(--text-on-brand);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.header .toggle-sidebar-btn {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    font-size: 26px;
    margin-left: 8px;
    border-radius: 10px;
    color: var(--text-on-brand);
    background: rgba(255, 255, 255, 0.14);
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.header .toggle-sidebar-btn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.22);
    box-shadow: 0 8px 14px rgba(0, 0, 0, 0.16);
}

.header .search-bar {
    min-width: 340px;
    max-width: 460px;
    background: transparent;
}

.header .search-form input {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 10px;
    color: #1b334a;
}

.header .search-form input::placeholder {
    color: #667a8f;
}

.header .search-form input:focus,
.header .search-form input:hover {
    background: #fff;
    border-color: rgba(56, 106, 148, 0.68);
    box-shadow: 0 0 0 3px rgba(109, 151, 186, 0.3);
}

.header .search-form button i {
    color: #274866;
}

.header-nav .nav-icon {
    width: 38px;
    height: 38px;
    margin-right: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    color: var(--text-on-brand);
    background: rgba(255, 255, 255, 0.12);
    transition: all 0.2s ease;
}

.header-nav .nav-link:hover .nav-icon,
.header-nav .nav-link:focus .nav-icon {
    background: rgba(255, 255, 255, 0.22);
    transform: translateY(-1px);
}

.header-nav .nav-profile {
    color: var(--text-on-brand);
    padding: 6px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    transition: all 0.2s ease;
}

.header-nav .nav-profile:hover {
    background: rgba(255, 255, 255, 0.2);
}

.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.76);
}

.header-nav .profile {
    border-radius: 14px;
    border: 1px solid #d9e4f0;
    box-shadow: 0 14px 28px rgba(19, 39, 61, 0.16);
}

.header-nav .profile .dropdown-item {
    border-radius: 8px;
    margin: 2px 8px;
}

.header-nav .profile .dropdown-item i {
    color: #2d4f6f;
}

.header-nav .profile .dropdown-item:hover {
    background-color: #ebf3fb;
}

.sidebar {
    top: var(--header-height);
    width: var(--sidebar-width);
    padding: 16px 14px 24px;
    background: linear-gradient(180deg, #f2f6fb 0%, #e9f0f8 52%, #e1eaf5 100%);
    border-right: 1px solid #c8d6e6;
    box-shadow: 8px 0 24px rgba(21, 43, 67, 0.16);
    scrollbar-color: #7390ad transparent;
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #7390ad;
    border-radius: 999px;
}

@media (max-width: 1199px) {
    .sidebar {
        left: calc(var(--sidebar-width) * -1);
    }
}

@media (min-width: 1200px) {
    #main,
    #footer {
        margin-left: var(--sidebar-width);
    }
}

@media (min-width: 1200px) {
    .toggle-sidebar #main,
    .toggle-sidebar #footer {
        margin-left: 0;
    }

    .toggle-sidebar .sidebar {
        left: calc(var(--sidebar-width) * -1);
    }
}

.sidebar-nav .nav-item {
    margin-bottom: 8px;
}

.sidebar-nav .nav-heading {
    color: #4c6076;
    letter-spacing: 0.08em;
}

.sidebar-nav .nav-link {
    gap: 8px;
    padding: 11px 14px;
    border-radius: 12px;
    border: 1px solid rgba(128, 148, 172, 0.34);
    background: rgba(255, 255, 255, 0.56);
    color: var(--text-900);
    font-size: 15px;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(21, 43, 68, 0.08);
    transition: all 0.2s ease;
}

.sidebar-nav .nav-link i {
    color: var(--brand-700);
}

.sidebar-nav .nav-link:hover {
    color: #10273d;
    background: #f8fbff;
    border-color: rgba(86, 123, 159, 0.44);
    transform: translateX(2px);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-800), var(--brand-700));
    border-color: rgba(33, 79, 118, 0.92);
    box-shadow: 0 8px 16px rgba(18, 50, 77, 0.22);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #fff;
}

.sidebar-nav .nav-link .bi-chevron-down {
    margin-left: auto;
    transition: transform 0.2s ease;
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) .bi-chevron-down {
    transform: rotate(180deg);
}

.sidebar-nav .nav-content {
    padding-top: 6px;
}

.sidebar-nav .nav-content a {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 2px 0;
    padding: 9px 12px 9px 16px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-700);
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.sidebar-nav .nav-content a i {
    margin-right: 0;
    font-size: 7px;
    color: var(--brand-700);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #10273d;
    background: #f2f7fd;
    border-color: rgba(94, 128, 160, 0.32);
    transform: translateX(2px);
}

.sidebar-nav .nav-content a.active {
    color: #fff;
    background: linear-gradient(135deg, #25537b, #3f739f);
    border-color: rgba(32, 73, 110, 0.9);
    box-shadow: 0 8px 14px rgba(22, 56, 86, 0.2);
}

.sidebar-nav .nav-content a.active i {
    color: #fff;
}

/* --------------------------------------------------------------
# Professional UI Polish (Navbar, Sidebar, Buttons)
-------------------------------------------------------------- */
:root {
    --ui-brand-950: #2f1e16;
    --ui-brand-900: #4a2f22;
    --ui-brand-800: #6b412d;
    --ui-brand-700: #865338;
    --ui-accent-600: #b06d3b;
    --ui-accent-500: #c8844f;
    --ui-bg-app: #f6efe7;
    --ui-bg-surface: #ffffff;
    --ui-border-soft: #e3d4c5;
    --ui-text-900: #3b2b21;
    --ui-text-700: #6b5748;
    --ui-text-on-dark: #fff5eb;
}

body {
    background: linear-gradient(180deg, #fbf6ef 0%, var(--ui-bg-app) 100%);
    color: var(--ui-text-900);
}

#main {
    border-radius: 16px 0 0 0;
}

.header {
    background: linear-gradient(110deg, var(--ui-brand-950) 0%, var(--ui-brand-800) 100%);
    box-shadow: 0 10px 26px rgba(34, 20, 13, 0.36);
}

.logo span {
    color: var(--ui-text-on-dark);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.header .toggle-sidebar-btn {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
}

.header .toggle-sidebar-btn:hover {
    background: rgba(255, 250, 241, 0.24);
}

.header .search-form input {
    border-radius: 12px;
    background: #fffaf3;
    border-color: rgba(177, 132, 88, 0.52);
    color: #4b3628;
}

.header .search-form input::placeholder {
    color: #8e735d;
}

.header-nav .nav-icon {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
}

.header-nav .nav-profile {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
    border-color: rgba(255, 250, 241, 0.28);
}

.sidebar {
    background: linear-gradient(180deg, #3a251a 0%, #503223 58%, #65412d 100%);
    border-right: 1px solid rgba(255, 245, 232, 0.16);
    box-shadow: 10px 0 26px rgba(36, 22, 15, 0.34);
}

.sidebar-nav .nav-heading {
    color: rgba(255, 241, 224, 0.86);
}

.sidebar-nav .nav-link {
    border: 1px solid rgba(255, 245, 232, 0.22);
    background: rgba(255, 245, 232, 0.1);
    color: var(--ui-text-on-dark);
    box-shadow: none;
}

.sidebar-nav .nav-link i {
    color: rgba(255, 220, 182, 0.96);
}

.sidebar-nav .nav-link:hover {
    color: #ffffff;
    background: rgba(255, 245, 232, 0.2);
    border-color: rgba(255, 245, 232, 0.38);
    transform: translateX(2px);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--ui-accent-600), var(--ui-accent-500));
    border-color: rgba(145, 88, 47, 0.95);
    box-shadow: 0 10px 18px rgba(72, 43, 23, 0.3);
}

.sidebar-nav .nav-content a {
    color: rgba(255, 241, 224, 0.94);
    border: 1px solid transparent;
    background: transparent;
}

.sidebar-nav .nav-content a i {
    color: rgba(255, 216, 167, 0.96);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #ffffff;
    background: rgba(255, 245, 232, 0.2);
    border-color: rgba(255, 245, 232, 0.38);
}

.sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--ui-accent-600), var(--ui-accent-500));
    border-color: rgba(145, 88, 47, 0.95);
    box-shadow: 0 10px 18px rgba(72, 43, 23, 0.3);
}


/* --------------------------------------------------------------
   ENTERPRISE MINIMAL - FINAL (Professional, sober, low color)
-------------------------------------------------------------- */
body #header.header,
body .header {
    background: #edf5fb !important;
    border-bottom: 1px solid #cfe0ec !important;
    box-shadow: 0 2px 8px rgba(20, 49, 72, 0.1) !important;
}

body #header .logo span,
body .header .logo span,
body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .header-nav .nav-icon {
    color: #000000 !important;
}

body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn,
body .header-nav .nav-icon {
    border-radius: 2px !important;
    border: 1px solid #c7d8e5 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile {
    border-radius: 2px !important;
    background: #ffffff !important;
    border: 1px solid #c7d8e5 !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 2px !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 2px !important;
    background: #ffffff !important;
    border: 1px solid #cdddea !important;
    box-shadow: 0 8px 18px rgba(20, 49, 72, 0.14) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 2px !important;
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eef5fb !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #cdddea !important;
    border-left: 1px solid #cdddea !important;
}

body #sidebar.sidebar,
body .sidebar {
    background: #2c4d63 !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 4px 0 14px rgba(16, 40, 60, 0.2) !important;
}

body .sidebar-nav .nav-heading {
    color: rgba(226, 239, 248, 0.72) !important;
}

body .sidebar-nav .nav-link {
    border-radius: 2px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-link i {
    color: #ffffff !important;
}

body .sidebar-nav .nav-link:hover {
    background: #365f7b !important;
    border-color: rgba(255, 255, 255, 0.16) !important;
    transform: none !important;
}

body .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar-nav .nav-link.active {
    background: #4f87ad !important;
    border-color: #4f87ad !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: #ffffff !important;
}

body .sidebar-nav .nav-content a:hover {
    background: #3a6784 !important;
    border-color: transparent !important;
}

body .sidebar-nav .nav-content a.active {
    background: rgba(96, 154, 193, 0.28) !important;
    border-color: rgba(96, 154, 193, 0.5) !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   UI LOCK - Professional Final Layer (EOF)
-------------------------------------------------------------- */
#header.header,
body .header {
    background: linear-gradient(180deg, #f7f5f2 0%, #f1ece5 100%) !important;
    border-bottom: 1px solid #d7ccbf !important;
    box-shadow: 0 6px 16px rgba(60, 46, 32, 0.14) !important;
}

#header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn {
    border-radius: 3px !important;
    background: #f8f4ee !important;
    border: 1px solid #cfc2b3 !important;
    color: #2f2a25 !important;
    box-shadow: none !important;
}

#header .toggle-sidebar-btn:hover,
body .header .toggle-sidebar-btn:hover,
body .bi.bi-list.toggle-sidebar-btn:hover {
    background: #efe7dd !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

body .header-nav .nav-icon {
    border-radius: 3px !important;
    background: #f8f4ee !important;
    border: 1px solid #d5c9bc !important;
    color: #2f2a25 !important;
}

body .header-nav .nav-profile {
    border-radius: 3px !important;
    background: #f8f3ec !important;
    border: 1px solid #d8ccbf !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 3px !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 3px !important;
    background: #fffdfb !important;
    border: 1px solid #d9ccbe !important;
    box-shadow: 0 12px 24px rgba(52, 39, 27, 0.16) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 2px !important;
    color: #3a3129 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #7a5a3d !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #ede4d9 !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffdfb !important;
    border-top: 1px solid #d9ccbe !important;
    border-left: 1px solid #d9ccbe !important;
}

#sidebar.sidebar,
body .sidebar {
    background: linear-gradient(180deg, #52473d 0%, #43392f 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 8px 0 20px rgba(28, 21, 15, 0.22) !important;
}

body .sidebar-nav .nav-heading {
    color: rgba(244, 239, 233, 0.72) !important;
}

body .sidebar-nav .nav-link {
    border-radius: 3px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    color: #f4efe9 !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-link i {
    color: rgba(244, 239, 233, 0.9) !important;
}

body .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    transform: none !important;
}

body .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar-nav .nav-link.active {
    background: linear-gradient(135deg, #8c6642, #7a5a3d) !important;
    border-color: rgba(170, 129, 93, 0.95) !important;
    color: #fff !important;
    box-shadow: 0 8px 14px rgba(44, 32, 22, 0.22) !important;
}

body .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: rgba(247, 242, 236, 0.94) !important;
}

body .sidebar-nav .nav-content a:hover {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
}

body .sidebar-nav .nav-content a.active {
    background: rgba(206, 173, 140, 0.2) !important;
    border-color: rgba(206, 173, 140, 0.36) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   FINAL PROFESSIONAL THEME - NAVBAR + SIDEBAR
   (suave, corporativo, sin redondeos excesivos)
-------------------------------------------------------------- */
:root {
    --ui-nav-bg-1: #f7f5f2;
    --ui-nav-bg-2: #f1ece5;
    --ui-nav-border: #d7ccbf;
    --ui-nav-text: #2f2a25;
    --ui-nav-muted: #6b6259;
    --ui-nav-accent: #7a5a3d;
    --ui-nav-accent-soft: #ede4d9;

    --ui-side-bg-1: #52473d;
    --ui-side-bg-2: #43392f;
    --ui-side-border: rgba(255, 255, 255, 0.12);
    --ui-side-text: #f4efe9;
    --ui-side-muted: rgba(244, 239, 233, 0.72);
    --ui-side-item: rgba(255, 255, 255, 0.06);
    --ui-side-item-hover: rgba(255, 255, 255, 0.12);
    --ui-side-active-1: #8c6642;
    --ui-side-active-2: #7a5a3d;
}

#header.header,
.header {
    background: linear-gradient(180deg, var(--ui-nav-bg-1) 0%, var(--ui-nav-bg-2) 100%) !important;
    border-bottom: 1px solid var(--ui-nav-border) !important;
    box-shadow: 0 6px 16px rgba(60, 46, 32, 0.14) !important;
}

#header .logo span,
.header .logo span {
    color: var(--ui-nav-text) !important;
    letter-spacing: 0.2px;
}

#header .toggle-sidebar-btn,
.header .toggle-sidebar-btn {
    color: var(--ui-nav-text) !important;
    border: 1px solid #cfc2b3 !important;
    background: #f8f4ee !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

#header .toggle-sidebar-btn:hover,
.header .toggle-sidebar-btn:hover {
    background: #efe7dd !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

#header .search-form input,
.header .search-form input {
    background: #fbfaf8 !important;
    border: 1px solid #d8cec2 !important;
    color: var(--ui-nav-text) !important;
    border-radius: 3px !important;
}

#header .search-form button,
.header .search-form button {
    color: var(--ui-nav-muted) !important;
}

.header-nav .nav-icon {
    color: var(--ui-nav-text) !important;
    border: 1px solid #d5c9bc !important;
    background: #f8f4ee !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

.header-nav .nav-icon:hover,
.header-nav .nav-icon.show {
    background: #eee5da !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

.header-nav .nav-profile {
    background: #f8f3ec !important;
    border: 1px solid #d8ccbf !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

.header-nav .nav-profile span {
    color: var(--ui-nav-text) !important;
}

.header-nav .nav-profile img {
    border-radius: 3px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show,
.header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile {
    background: #fffdfb !important;
    border: 1px solid #d9ccbe !important;
    border-radius: 3px !important;
    box-shadow: 0 12px 24px rgba(52, 39, 27, 0.16) !important;
    padding-top: 0.3rem !important;
    padding-bottom: 0.3rem !important;
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2f2a25 !important;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f675f !important;
}

.header-nav .dropdown-menu.profile .dropdown-divider {
    border-top-color: #e8ddd2 !important;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    color: #3a3129 !important;
    border-radius: 2px !important;
    margin: 1px 4px !important;
    padding-top: 0.48rem !important;
    padding-bottom: 0.48rem !important;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #7a5a3d !important;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: var(--ui-nav-accent-soft) !important;
    color: #2c241e !important;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffdfb !important;
    border-top: 1px solid #d9ccbe !important;
    border-left: 1px solid #d9ccbe !important;
}

#sidebar.sidebar,
.sidebar {
    background: linear-gradient(180deg, var(--ui-side-bg-1) 0%, var(--ui-side-bg-2) 100%) !important;
    border-right: 1px solid var(--ui-side-border) !important;
    box-shadow: 8px 0 20px rgba(28, 21, 15, 0.22) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: var(--ui-side-muted) !important;
    letter-spacing: 0.35px;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    color: var(--ui-side-text) !important;
    background: var(--ui-side-item) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link i {
    color: rgba(244, 239, 233, 0.9) !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: var(--ui-side-item-hover) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
    transform: none !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
#sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link.active {
    background: linear-gradient(135deg, var(--ui-side-active-1), var(--ui-side-active-2)) !important;
    border-color: rgba(170, 129, 93, 0.95) !important;
    color: #fff !important;
    box-shadow: 0 8px 14px rgba(44, 32, 22, 0.22) !important;
}

#sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a {
    color: rgba(247, 242, 236, 0.94) !important;
    border-radius: 2px !important;
    border: 1px solid transparent !important;
}

#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a i {
    color: #d7bfa5 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a:hover {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
    color: #fff !important;
}

#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(206, 173, 140, 0.2) !important;
    border-color: rgba(206, 173, 140, 0.36) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   Ultimate Soft Professional Theme
   (highest-priority visual override)
-------------------------------------------------------------- */
body #header.header {
    background: linear-gradient(125deg, #4b5865 0%, #5d6d7d 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 8px 18px rgba(34, 45, 56, 0.22) !important;
}

body #header .logo span,
body #header .header-nav .nav-profile,
body #header .header-nav .nav-icon,
body #header .toggle-sidebar-btn {
    color: #eef3f8 !important;
}

body #header .toggle-sidebar-btn {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.26) !important;
    border-radius: 4px !important;
}

body #header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
}

body #header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
}

body #header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 4px !important;
}

body #header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

body #header .search-form input {
    background: #f9fbfd !important;
    border: 1px solid #b5c1cd !important;
    color: #2c3e50 !important;
    border-radius: 4px !important;
}

body #header .search-form input::placeholder {
    color: #728395 !important;
}

body #header .header-nav .dropdown-menu.profile,
body #header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d6dee7 !important;
    border-radius: 4px !important;
    box-shadow: 0 14px 30px rgba(30, 41, 53, 0.18) !important;
    padding: 8px !important;
    min-width: 275px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2d4258 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f8296 !important;
    font-size: 12px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #304860 !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #687f98 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f2f6fa !important;
}

body #header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d6dee7 !important;
    border-left: 1px solid #d6dee7 !important;
}

body #sidebar.sidebar {
    background: linear-gradient(180deg, #566476 0%, #64758a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.16) !important;
    box-shadow: 8px 0 16px rgba(36, 49, 63, 0.18) !important;
}

body #sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.85) !important;
}

body #sidebar .sidebar-nav .nav-link {
    color: #eef3f8 !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 4px !important;
}

body #sidebar .sidebar-nav .nav-link i {
    color: #d8e3ee !important;
}

body #sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.32) !important;
}

body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #7b8fa6, #8ea3ba) !important;
    border-color: rgba(152, 201, 232, 0.92) !important;
    box-shadow: 0 8px 14px rgba(52, 68, 85, 0.18) !important;
}

body #sidebar .sidebar-nav .nav-content a {
    color: rgba(235, 241, 248, 0.95) !important;
    border-radius: 3px !important;
}

body #sidebar .sidebar-nav .nav-content a i {
    color: #d2ddea !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body #sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #7b8fa6, #8ea3ba) !important;
    border-color: rgba(152, 201, 232, 0.92) !important;
}

/* --------------------------------------------------------------
   Final Override - Soft Professional Navbar + Sidebar
   (No cambia estructura, solo apariencia)
-------------------------------------------------------------- */
:root {
    --final-nav-1: #3f4955;
    --final-nav-2: #4d5a68;
    --final-side-1: #465463;
    --final-side-2: #556577;
    --final-side-active-1: #6b7f95;
    --final-side-active-2: #7e92a8;
    --final-text-light: #eef3f8;
}

#header.header {
    background: linear-gradient(120deg, var(--final-nav-1) 0%, var(--final-nav-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 8px 20px rgba(33, 43, 54, 0.22) !important;
}

#header .logo span {
    color: var(--final-text-light) !important;
}

#header .toggle-sidebar-btn {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 4px !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
}

#header .search-form input {
    border-radius: 4px !important;
    background: #f9fbfd !important;
    border: 1px solid #b8c4d0 !important;
    color: #2b3b4b !important;
}

#header .search-form input::placeholder {
    color: #708293 !important;
}

#header .header-nav .nav-icon {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d6dee7 !important;
    border-radius: 4px !important;
    box-shadow: 0 14px 30px rgba(30, 41, 53, 0.18) !important;
    min-width: 270px !important;
    padding: 8px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2b3d4f !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f8296 !important;
    font-size: 12px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #30465d !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #688099 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f1f5f9 !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d6dee7 !important;
    border-left: 1px solid #d6dee7 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--final-side-1) 0%, var(--final-side-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 8px 0 18px rgba(33, 43, 54, 0.2) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.82) !important;
}

#sidebar .sidebar-nav .nav-link {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 4px !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: #d9e3ed !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--final-side-active-1), var(--final-side-active-2)) !important;
    border-color: rgba(132, 151, 172, 0.9) !important;
    box-shadow: 0 8px 14px rgba(46, 60, 75, 0.18) !important;
}

#sidebar .sidebar-nav .nav-content a {
    color: rgba(234, 240, 247, 0.94) !important;
    border-radius: 3px !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #cdd9e6 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.26) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--final-side-active-1), var(--final-side-active-2)) !important;
    border-color: rgba(132, 151, 172, 0.9) !important;
}

/* --------------------------------------------------------------
   Final Soft Professional Theme (Navbar + Sidebar only)
   Nota: override final, no toca tablas ni logica.
-------------------------------------------------------------- */
:root {
    --soft-nav-1: #2f3a46;
    --soft-nav-2: #3f4c5b;
    --soft-side-1: #364251;
    --soft-side-2: #425162;
    --soft-accent: #7a8fa6;
    --soft-accent-2: #8ea3ba;
    --soft-text: #eef3f8;
    --soft-border: rgba(238, 243, 248, 0.24);
}

#header.header {
    background: linear-gradient(120deg, var(--soft-nav-1) 0%, var(--soft-nav-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 8px 18px rgba(21, 29, 39, 0.24) !important;
}

#header .logo span {
    color: var(--soft-text) !important;
}

#header .toggle-sidebar-btn {
    color: var(--soft-text) !important;
    border: 1px solid var(--soft-border) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-radius: 3px !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
}

#header .search-form input {
    border-radius: 4px !important;
    background: #f8fafc !important;
    border: 1px solid #b6c1cd !important;
    color: #263443 !important;
}

#header .search-form input::placeholder {
    color: #708191 !important;
}

#header .header-nav .nav-icon {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d8e0e8 !important;
    border-radius: 4px !important;
    box-shadow: 0 12px 28px rgba(25, 35, 48, 0.18) !important;
    padding: 8px !important;
    min-width: 270px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #253343 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #687b8f !important;
    font-size: 12px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #2d3f52 !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #607488 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f1f5f9 !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d8e0e8 !important;
    border-left: 1px solid #d8e0e8 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--soft-side-1) 0%, var(--soft-side-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 8px 0 18px rgba(25, 35, 48, 0.2) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.8) !important;
}

#sidebar .sidebar-nav .nav-link {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 4px !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: #d6e0ea !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.13) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--soft-accent), var(--soft-accent-2)) !important;
    border-color: rgba(128, 147, 168, 0.9) !important;
    box-shadow: 0 8px 16px rgba(44, 58, 75, 0.2) !important;
}

#sidebar .sidebar-nav .nav-content a {
    color: rgba(232, 239, 247, 0.94) !important;
    border-radius: 3px !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #c9d7e5 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--soft-accent), var(--soft-accent-2)) !important;
    border-color: rgba(128, 147, 168, 0.9) !important;
}

/* --------------------------------------------------------------
# Hard Override - Navbar/Sidebar Professional
-------------------------------------------------------------- */
:root {
    --hard-nav-bg-1: #12161c;
    --hard-nav-bg-2: #232b35;
    --hard-side-bg-1: #161b22;
    --hard-side-bg-2: #262f3a;
    --hard-accent: #c18a4a;
    --hard-text: #edf2f7;
    --hard-border: rgba(237, 242, 247, 0.2);
}

#header.header {
    background: linear-gradient(115deg, var(--hard-nav-bg-1) 0%, var(--hard-nav-bg-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 10px 24px rgba(9, 13, 19, 0.28) !important;
}

#header .logo span {
    color: var(--hard-text) !important;
}

#header .toggle-sidebar-btn {
    border-radius: 0 !important;
    width: 36px !important;
    height: 36px !important;
    border: 1px solid var(--hard-border) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: var(--hard-text) !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
}

#header .search-form input {
    border-radius: 3px !important;
    background: #f8fafc !important;
    border: 1px solid #adb8c4 !important;
    color: #1f2937 !important;
}

#header .search-form input::placeholder {
    color: #6b7280 !important;
}

#header .header-nav .nav-icon {
    border-radius: 3px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--hard-text) !important;
}

#header .header-nav .nav-profile {
    border-radius: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--hard-text) !important;
}

#header .header-nav .nav-profile img {
    border-radius: 2px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    border-radius: 3px !important;
    border: 1px solid #d4dce5 !important;
    background: #ffffff !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.22) !important;
    min-width: 270px !important;
    padding: 8px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
    margin-bottom: 2px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    font-size: 12px !important;
    color: #6b7280 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-divider {
    border-top: 1px solid #e6edf4 !important;
    margin: 6px 0 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    margin: 2px 0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #243446 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #4b5563 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f3f6fa !important;
    color: #1d2a3a !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d4dce5 !important;
    border-left: 1px solid #d4dce5 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--hard-side-bg-1) 0%, var(--hard-side-bg-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 8px 0 20px rgba(15, 23, 42, 0.24) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(237, 242, 247, 0.76) !important;
}

#sidebar .sidebar-nav .nav-link {
    border-radius: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: rgba(255, 255, 255, 0.05) !important;
    color: var(--hard-text) !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: rgba(223, 232, 242, 0.94) !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #8f653d, var(--hard-accent)) !important;
    border-color: rgba(150, 108, 67, 0.95) !important;
}

#sidebar .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: rgba(231, 239, 247, 0.92) !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #d9ad79 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #8f653d, var(--hard-accent)) !important;
    border-color: rgba(150, 108, 67, 0.95) !important;
}

/* --------------------------------------------------------------
# Navbar Final Tuning (No Rounded Toggle + Styled Profile Dropdown)
-------------------------------------------------------------- */
.header .toggle-sidebar-btn {
    border-radius: 0;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 245, 232, 0.28);
    background: rgba(255, 245, 232, 0.1);
}

.header .toggle-sidebar-btn:hover {
    background: rgba(255, 245, 232, 0.18);
    border-color: rgba(255, 245, 232, 0.4);
}

.header .toggle-sidebar-btn:focus-visible {
    outline: 2px solid rgba(255, 210, 155, 0.72);
    outline-offset: 1px;
}

.header-nav .nav-profile {
    border-radius: 4px;
}

.header-nav .nav-profile img {
    border-radius: 4px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show {
    border-radius: 4px;
    border: 1px solid #d8c4ad;
    background: #fffaf3;
    box-shadow: 0 12px 26px rgba(50, 32, 20, 0.2);
    padding: 8px;
    min-width: 260px;
}

.header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left;
    padding: 8px 10px 10px;
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #4a2f22;
    font-weight: 700;
    font-size: 15px;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #7a634f;
    font-size: 12px;
}

.header-nav .dropdown-menu.profile .dropdown-divider {
    border-top-color: #eadccc;
    margin: 6px 0;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 4px;
    margin: 2px 0;
    padding: 9px 10px;
    font-weight: 600;
    color: #4a2f22;
    background: transparent;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #9a5c35;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f4e7d8;
    color: #3d261b;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffaf3;
    border-top: 1px solid #d8c4ad;
    border-left: 1px solid #d8c4ad;
}

/* --------------------------------------------------------------
# Theme Final (Professional - Navbar/Sidebar)
-------------------------------------------------------------- */
:root {
    --pro-nav-950: #14171c;
    --pro-nav-900: #1d232b;
    --pro-nav-800: #2b343f;
    --pro-side-950: #171c22;
    --pro-side-900: #202730;
    --pro-side-800: #2a333d;
    --pro-accent: #be8549;
    --pro-accent-soft: #d3a16d;
    --pro-text-on-dark: #eef2f6;
    --pro-border-soft: rgba(238, 242, 246, 0.2);
}

body {
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
}

#main {
    border-radius: 10px 0 0 0;
}

.header {
    background: linear-gradient(110deg, var(--pro-nav-950) 0%, var(--pro-nav-800) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 24px rgba(13, 17, 23, 0.28);
}

.logo img {
    border-radius: 4px;
}

.logo span {
    color: var(--pro-text-on-dark);
    font-weight: 700;
}

.header .toggle-sidebar-btn {
    color: var(--pro-text-on-dark);
    border-radius: 2px;
    border: 1px solid var(--pro-border-soft);
    background: rgba(255, 255, 255, 0.06);
}

.header .toggle-sidebar-btn:hover {
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.12);
}

.header .search-form input {
    border-radius: 4px;
    background: #f8fafc;
    border-color: #aab4c0;
    color: #1f2937;
}

.header .search-form input::placeholder {
    color: #6b7280;
}

.header-nav .nav-icon {
    color: var(--pro-text-on-dark);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
}

.header-nav .nav-profile {
    color: var(--pro-text-on-dark);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.18);
}

.header-nav .nav-profile img {
    border-radius: 4px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show {
    border-radius: 4px;
    border: 1px solid #cfd7e0;
    background: #ffffff;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.18);
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #1f2937;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6b7280;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 3px;
    color: #243242;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #4b5563;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f3f6fa;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff;
    border-top: 1px solid #cfd7e0;
    border-left: 1px solid #cfd7e0;
}

.sidebar {
    background: linear-gradient(180deg, var(--pro-side-950) 0%, var(--pro-side-800) 100%);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 8px 0 22px rgba(15, 23, 42, 0.22);
}

.sidebar-nav .nav-heading {
    color: rgba(238, 242, 246, 0.76);
}

.sidebar-nav .nav-link {
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.05);
    color: var(--pro-text-on-dark);
}

.sidebar-nav .nav-link i {
    color: rgba(218, 227, 240, 0.95);
}

.sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.24);
    transform: none;
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #8a6238, var(--pro-accent));
    border-color: rgba(146, 106, 64, 0.96);
    box-shadow: 0 8px 16px rgba(58, 36, 21, 0.26);
}

.sidebar-nav .nav-content a {
    border-radius: 3px;
    color: rgba(232, 238, 246, 0.92);
}

.sidebar-nav .nav-content a i {
    color: var(--pro-accent-soft);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.26);
    color: #ffffff;
    transform: none;
}

.sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #8a6238, var(--pro-accent));
    border-color: rgba(146, 106, 64, 0.96);
    box-shadow: 0 8px 16px rgba(58, 36, 21, 0.26);
}


/* --------------------------------------------------------------
   ENTERPRISE SKY FINAL END LAYER
-------------------------------------------------------------- */
body #header.header,
body .header {
    background: #0f82cd !important;
    border-bottom: 1px solid #0b6faa !important;
    box-shadow: 0 2px 10px rgba(9, 46, 78, 0.28) !important;
}

body #header .logo span,
body .header .logo span,
body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .header-nav .nav-icon {
    color: #ffffff !important;
}

body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn,
body .header-nav .nav-icon {
    border-radius: 0 !important;
    border: 1px solid #58a8dd !important;
    background: rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
}

body #header .toggle-sidebar-btn:hover,
body .header .toggle-sidebar-btn:hover,
body .bi.bi-list.toggle-sidebar-btn:hover,
body .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.24) !important;
    border-color: #84c0e7 !important;
    color: #ffffff !important;
}

body .header-nav .nav-profile {
    border-radius: 0 !important;
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid #63afe0 !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 0 !important;
}

body .header-nav .nav-profile span,
body .header-nav .nav-profile i {
    color: #ffffff !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 0 !important;
    background: #ffffff !important;
    border: 1px solid #b8d7ec !important;
    box-shadow: 0 8px 18px rgba(24, 54, 79, 0.14) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 0 !important;
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eaf4fc !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #b8d7ec !important;
    border-left: 1px solid #b8d7ec !important;
}

body #sidebar.sidebar,
body .sidebar {
    background: #1b6f9f !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 4px 0 14px rgba(10, 44, 71, 0.22) !important;
}

body #sidebar .sidebar-nav .nav-heading,
body .sidebar .sidebar-nav .nav-heading {
    color: rgba(255, 255, 255, 0.72) !important;
}

body #sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link {
    border-radius: 0 !important;
    background: #257aae !important;
    border: 1px solid #4d97c4 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #sidebar .sidebar-nav .nav-link i,
body .sidebar .sidebar-nav .nav-link i {
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-link:hover,
body .sidebar .sidebar-nav .nav-link:hover {
    background: #2f89c1 !important;
    border-color: #78b5d8 !important;
    transform: none !important;
}

body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body #sidebar .sidebar-nav .nav-link.active,
body .sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar .sidebar-nav .nav-link.active {
    background: #3c9fdc !important;
    border-color: #98c9e8 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #sidebar .sidebar-nav .nav-content a,
body .sidebar .sidebar-nav .nav-content a {
    border-radius: 0 !important;
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body .sidebar .sidebar-nav .nav-content a:hover {
    background: #2f89c1 !important;
    border-color: transparent !important;
}

body #sidebar .sidebar-nav .nav-content a.active,
body .sidebar .sidebar-nav .nav-content a.active {
    background: #3c9fdc !important;
    border-color: #98c9e8 !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   CRUD FORM BUTTONS - FINAL (por ID, sin afectar todo el sistema)
-------------------------------------------------------------- */
body #btn_guardar_form.btn,
body #btn_guardar_form.btn-outline-success,
body #btn_guardar_form.btn-success {
    border-radius: 2px !important;
    font-weight: 600 !important;
    background: #0a9772 !important;
    border-color: #0a9772 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #btn_guardar_form.btn:hover,
body #btn_guardar_form.btn-outline-success:hover,
body #btn_guardar_form.btn-success:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
    color: #ffffff !important;
}

body #btn_reset_form.btn,
body #btn_reset_form.btn-outline-secondary,
body #btn_reset_form.btn-secondary {
    border-radius: 2px !important;
    font-weight: 600 !important;
    background: #1f7fb8 !important;
    border-color: #1f7fb8 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #btn_reset_form.btn:hover,
body #btn_reset_form.btn-outline-secondary:hover,
body #btn_reset_form.btn-secondary:hover {
    background: #1a6e9e !important;
    border-color: #1a6e9e !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   Navbar - Alerta Stock Minimo
-------------------------------------------------------------- */
body #header .header-nav .stock-alerts {
    min-width: 320px !important;
    max-width: 360px !important;
    max-height: 420px !important;
    overflow-y: auto !important;
}

body #header .header-nav .stock-alerts .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .header-nav .stock-alerts .stock-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px 12px !important;
}

body #header .header-nav .stock-alerts .stock-item i {
    margin-top: 2px !important;
    margin-right: 0 !important;
    font-size: 12px !important;
}

body #header .header-nav .stock-alerts .stock-item h4 {
    margin: 0 0 2px 0 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #111827 !important;
}

body #header .header-nav .stock-alerts .stock-item p {
    margin: 0 !important;
    font-size: 12px !important;
    color: #4b5563 !important;
    line-height: 1.3 !important;
}

body #header .header-nav .stock-alerts .stock-critico i {
    color: #dc2626 !important;
}

body #header .header-nav .stock-alerts .stock-bajo i {
    color: #d97706 !important;
}

body #header .header-nav .stock-alerts .stock-minimo i {
    color: #0284c7 !important;
}

body #header .header-nav .stock-alerts .stock-ok i {
    color: #16a34a !important;
}

/* --------------------------------------------------------------
   Navbar - Dropdown Notificaciones
-------------------------------------------------------------- */
body #header .search-bar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

body #header .search-bar .search-form {
    flex: 1 1 auto !important;
    width: auto !important;
}

body #header .search-notify-trigger {
    margin-right: 0 !important;
    position: relative !important;
}

body #header .search-notify-dropdown .notify-summary {
    min-width: 360px !important;
    max-width: 380px !important;
    padding: 8px !important;
}

body #header .search-notify-dropdown .notify-summary .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line {
    padding: 8px 10px !important;
    background: #f8fbff !important;
    border: 1px solid #e2e8f0 !important;
    margin: 4px 0 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line .notify-line-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    color: inherit !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line .notify-line-link:hover {
    text-decoration: none !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line span {
    font-size: 12px !important;
    color: #334155 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line strong {
    font-size: 13px !important;
    font-weight: 700 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-optimo strong {
    color: #16a34a !important;
}

body #header .search-notify-dropdown .notify-summary .notify-medio strong {
    color: #d97706 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-minimo strong {
    color: #dc2626 !important;
}

body #header .mobile-notify-dropdown .notify-summary {
    min-width: 360px !important;
    max-width: 380px !important;
    padding: 8px !important;
}

body #header .mobile-notify-dropdown .notify-summary .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line {
    padding: 8px 10px !important;
    background: #f8fbff !important;
    border: 1px solid #e2e8f0 !important;
    margin: 4px 0 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line .notify-line-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    color: inherit !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line .notify-line-link:hover {
    text-decoration: none !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line span {
    font-size: 12px !important;
    color: #334155 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line strong {
    font-size: 13px !important;
    font-weight: 700 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-optimo strong {
    color: #16a34a !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-medio strong {
    color: #d97706 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-minimo strong {
    color: #dc2626 !important;
}

@media (max-width: 1199px) {
    body #header .search-notify-dropdown {
        display: none !important;
    }

    body #header .mobile-notify-dropdown {
        display: block !important;
    }
}

/* ===== Inventory Theme Override (moved from inventory-theme.css) ===== */
/* Inventory Theme: visual refresh focused on clarity + hierarchy */
:root {
    --inv-bg: #f3efe7;
    --inv-surface: #fffdf9;
    --inv-surface-soft: #f8f4ec;
    --inv-border: #d8d0c2;
    --inv-text: #1f2a33;
    --inv-text-soft: #5c6d79;
    --inv-primary: #17475b;
    --inv-primary-strong: #103544;
    --inv-accent: #d97732;
    --inv-success: #2f8f6a;
    --inv-danger: #c4453c;
    --inv-shadow: 0 14px 30px rgba(16, 31, 41, 0.12);
}

body {
    font-family: "Ubuntu", "Segoe UI", sans-serif !important;
    color: var(--inv-text) !important;
    background:
        radial-gradient(1100px 420px at 8% -8%, rgba(217, 119, 50, 0.12), transparent 64%),
        radial-gradient(900px 400px at 96% -16%, rgba(23, 71, 91, 0.15), transparent 60%),
        var(--inv-bg) !important;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.navbar-brand,
.sidebar-nav .nav-link {
    font-family: "Montserrat", "Segoe UI", sans-serif !important;
}

#main {
    margin-top: 74px !important;
    padding: 22px 26px !important;
    border-radius: 22px 22px 0 0;
    background: rgba(255, 253, 249, 0.96) !important;
}

#header.header,
.header {
    height: 64px !important;
    background: rgba(255, 252, 247, 0.93) !important;
    border-bottom: 1px solid var(--inv-border) !important;
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 24px rgba(23, 71, 91, 0.1) !important;
}

.header .toggle-sidebar-btn,
.bi.bi-list.toggle-sidebar-btn,
.header-nav .nav-icon {
    color: var(--inv-primary) !important;
}

.header .toggle-sidebar-btn:hover,
.bi.bi-list.toggle-sidebar-btn:hover,
.header-nav .nav-icon:hover {
    color: var(--inv-accent) !important;
}

#sidebar.sidebar,
.sidebar {
    top: 64px !important;
    background:
        linear-gradient(175deg, #173f51 0%, #123646 62%, #102e3c 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 10px 0 28px rgba(8, 25, 34, 0.24) !important;
}

.sidebar .sidebar-nav .nav-heading {
    color: #c7d7df !important;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.sidebar .sidebar-nav .nav-link {
    color: #ebf3f7 !important;
    background: transparent !important;
    border-radius: 12px;
    margin: 4px 10px;
    transition: all 0.2s ease;
}

.sidebar .sidebar-nav .nav-link i {
    color: #d7e8ef !important;
}

.sidebar .sidebar-nav .nav-link:hover {
    color: #ffffff !important;
    background: rgba(217, 119, 50, 0.2) !important;
}

.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #fff !important;
    background: linear-gradient(90deg, rgba(217, 119, 50, 0.96), rgba(194, 95, 36, 0.96)) !important;
    box-shadow: 0 8px 16px rgba(176, 88, 31, 0.34);
}

.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #fff !important;
}

.sidebar .sidebar-nav .nav-content a {
    color: #cde0e8 !important;
    border-radius: 10px;
}

.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1) !important;
}

.card,
.modal-content {
    border: 1px solid var(--inv-border) !important;
    border-radius: 16px !important;
    background: var(--inv-surface) !important;
    box-shadow: var(--inv-shadow) !important;
}

.modal-header,
.modal-footer {
    border-color: #e2dbcf !important;
    background: #fcf8f1 !important;
}

.form-control,
.form-select {
    border: 1px solid #cfc6b8 !important;
    border-radius: 10px !important;
    background: #fffcf7 !important;
    color: var(--inv-text) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--inv-accent) !important;
    box-shadow: 0 0 0 0.2rem rgba(217, 119, 50, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--inv-primary) !important;
    --bs-btn-border-color: var(--inv-primary) !important;
    --bs-btn-hover-bg: var(--inv-primary-strong) !important;
    --bs-btn-hover-border-color: var(--inv-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--inv-success) !important;
    --bs-btn-border-color: var(--inv-success) !important;
    --bs-btn-hover-bg: #257254 !important;
    --bs-btn-hover-border-color: #257254 !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--inv-danger) !important;
    --bs-btn-border-color: var(--inv-danger) !important;
}

.btn-warning,
.btn-outline-warning {
    --bs-btn-bg: var(--inv-accent) !important;
    --bs-btn-border-color: var(--inv-accent) !important;
    --bs-btn-color: #fff !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid #d7cfbf !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 22px rgba(16, 31, 41, 0.12) !important;
    background: #fffdf9 !important;
}

.bootstrap-table .table thead th {
    background: linear-gradient(180deg, #f0e8db 0%, #e9dece 100%) !important;
    color: #193443 !important;
    border-bottom: 1px solid #d4c7b2 !important;
}

.bootstrap-table .table tbody td {
    color: #243745 !important;
    border-bottom: 1px solid #ede5d7 !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td {
    background: #fdf9f1 !important;
}

.bootstrap-table .table tbody tr:hover td {
    background: #f4ede0 !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f8f2e7 !important;
    border-top: 1px solid #e0d5c3 !important;
}

.pagination .page-link {
    color: var(--inv-primary) !important;
    border-color: #d8cfbf !important;
    background: #fffdf8 !important;
}

.pagination .page-item.active .page-link {
    background: var(--inv-primary) !important;
    border-color: var(--inv-primary) !important;
    color: #fff !important;
}

#footer.footer,
.footer {
    background: #f7f1e6 !important;
    border-top: 1px solid #ddcfba !important;
    color: #4a5a66 !important;
}

@media (max-width: 1199px) {
    #main {
        padding: 18px 14px !important;
        border-radius: 14px 14px 0 0;
    }

    #header.header,
    .header {
        height: 60px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 60px !important;
    }
}

/* ===== Inventory Pro Navbar + Sidebar Refresh ===== */
:root {
    --inv-nav-bg: linear-gradient(120deg, #0f3443 0%, #14495d 55%, #19566f 100%);
    --inv-nav-surface: rgba(255, 255, 255, 0.08);
    --inv-nav-border: rgba(255, 255, 255, 0.14);
    --inv-nav-text: #e9f4fa;
    --inv-nav-text-soft: #c4dbe6;
    --inv-nav-accent: #e4883c;
    --inv-nav-accent-soft: rgba(228, 136, 60, 0.22);
    --inv-nav-shadow: 0 14px 30px rgba(7, 28, 38, 0.35);
}

#header.header,
.header {
    height: 66px !important;
    background: var(--inv-nav-bg) !important;
    border-bottom: 1px solid var(--inv-nav-border) !important;
    box-shadow: var(--inv-nav-shadow) !important;
    backdrop-filter: blur(6px);
}

.header .logo span,
.header-nav .nav-profile span,
.header-nav .nav-icon,
#header .toggle-sidebar-btn,
.header .toggle-sidebar-btn {
    color: var(--inv-nav-text) !important;
}

.header-nav .nav-profile {
    padding: 6px 10px !important;
    border: 1px solid var(--inv-nav-border) !important;
    background: var(--inv-nav-surface) !important;
    border-radius: 12px !important;
}

.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.35) !important;
}

.header-nav .nav-icon:hover,
.header .toggle-sidebar-btn:hover,
#header .toggle-sidebar-btn:hover {
    color: #ffffff !important;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.35);
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show,
.header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile {
    border: 1px solid #d4e3eb !important;
    border-radius: 14px !important;
    box-shadow: 0 16px 36px rgba(13, 37, 50, 0.2) !important;
    padding: 8px !important;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 8px !important;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eef6fb !important;
    color: #123d50 !important;
}

#sidebar.sidebar,
.sidebar {
    top: 66px !important;
    background:
        radial-gradient(700px 320px at -10% 0%, rgba(228, 136, 60, 0.16), transparent 60%),
        linear-gradient(185deg, #102f3d 0%, #123a4b 62%, #143f52 100%) !important;
    border-right: 1px solid var(--inv-nav-border) !important;
    box-shadow: 10px 0 24px rgba(8, 25, 34, 0.34) !important;
}

.sidebar .sidebar-nav .nav-heading {
    color: var(--inv-nav-text-soft) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    margin: 14px 12px 8px !important;
}

.sidebar .sidebar-nav .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    color: var(--inv-nav-text) !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    transition: all 0.2s ease !important;
}

.sidebar .sidebar-nav .nav-link i {
    color: #d8eaf2 !important;
}

.sidebar .sidebar-nav .nav-link:hover {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    transform: translateX(2px);
}

.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    background:
        linear-gradient(90deg, rgba(228, 136, 60, 0.96), rgba(198, 104, 38, 0.96)) !important;
    box-shadow: 0 10px 18px rgba(176, 88, 31, 0.35) !important;
}

.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #ffffff !important;
}

.sidebar .sidebar-nav .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.14) !important;
}

.sidebar .sidebar-nav .nav-content a {
    color: #cae2ec !important;
    border-radius: 8px !important;
}

.sidebar .sidebar-nav .nav-content a:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
}

.sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: var(--inv-nav-accent-soft) !important;
    border-left: 2px solid var(--inv-nav-accent) !important;
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        height: 60px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 60px !important;
    }
}


/* ==============================================================
   INVENTORY THEME 2026 - DIGITAL PROFESSIONAL FINAL
============================================================== */
:root {
    --inv-font-body: "Inter", "Work Sans", "Segoe UI", sans-serif;
    --inv-font-title: "Montserrat", "Inter", sans-serif;

    --inv-bg: #eef3f9;
    --inv-bg-soft: #f7fafe;
    --inv-surface: #ffffff;
    --inv-border: #d9e3ee;
    --inv-text: #1a2f3f;
    --inv-text-soft: #61778b;

    --inv-primary: #1b84c6;
    --inv-primary-strong: #116294;
    --inv-accent: #27a2e6;

    --inv-shell-dark: #0d2738;
    --inv-shell-mid: #11415d;
    --inv-shell-light: #1a6d99;

    --inv-success: #10835f;
    --inv-danger: #c84a4a;
    --inv-warning: #cc8a1f;

    --inv-shadow-sm: 0 6px 14px rgba(12, 36, 52, 0.1);
    --inv-shadow-md: 0 14px 30px rgba(12, 36, 52, 0.14);
    --inv-radius: 14px;
}

html,
body {
    font-family: var(--inv-font-body) !important;
    color: var(--inv-text) !important;
    background:
        radial-gradient(900px 380px at -5% -10%, rgba(39, 162, 230, 0.16), transparent 62%),
        radial-gradient(850px 360px at 105% -10%, rgba(27, 132, 198, 0.14), transparent 62%),
        var(--inv-bg) !important;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.pagetitle h1 {
    font-family: var(--inv-font-title) !important;
    color: #12364b !important;
}

/* Header */
.inventory-header {
    min-height: 68px !important;
    background: linear-gradient(115deg, var(--inv-shell-dark) 0%, var(--inv-shell-mid) 56%, var(--inv-shell-light) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(8, 27, 39, 0.3) !important;
    backdrop-filter: blur(8px);
}

.inventory-header .logo,
.inventory-header .logo span,
.inventory-header .toggle-sidebar-btn,
.inventory-header .header-nav .nav-icon,
.inventory-header .header-nav .nav-profile span,
.inventory-header .header-nav .nav-profile i,
.inventory-header .header-nav .nav-link,
.inventory-header .header-nav .bi {
    color: #f2f9ff !important;
}

.inventory-header .toggle-sidebar-btn,
.inventory-header .header-nav .nav-icon {
    width: 39px !important;
    height: 39px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

.inventory-header .toggle-sidebar-btn:hover,
.inventory-header .header-nav .nav-icon:hover {
    transform: translateY(-1px) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

.inventory-header .inventory-search-bar .search-form input {
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

.inventory-header .inventory-search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

.inventory-header .inventory-search-bar .search-form button i {
    color: #ffffff !important;
}

.inventory-header .inventory-header-nav .nav-profile {
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    padding: 6px 12px !important;
}

.inventory-header .inventory-header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.38) !important;
}

.inventory-header .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--inv-border) !important;
    box-shadow: var(--inv-shadow-md) !important;
}

.inventory-header .dropdown-item {
    border-radius: 8px !important;
}

.inventory-header .dropdown-item:hover {
    background: #edf5fc !important;
}

/* Sidebar */
.inventory-sidebar {
    top: 68px !important;
    background:
        radial-gradient(560px 260px at -8% 0%, rgba(39, 162, 230, 0.18), transparent 66%),
        linear-gradient(185deg, #102d3f 0%, #12465f 62%, #155f82 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 10px 0 24px rgba(7, 23, 34, 0.34) !important;
}

.inventory-sidebar .nav-heading {
    color: rgba(219, 241, 255, 0.82) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 700 !important;
}

.inventory-sidebar .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #f2f9ff !important;
    font-weight: 600 !important;
}

.inventory-sidebar .nav-link i {
    color: #d8ecf9 !important;
}

.inventory-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    transform: translateX(2px) !important;
}

.inventory-sidebar .nav-link.active,
.inventory-sidebar .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--inv-primary) 0%, var(--inv-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(21, 110, 163, 0.34) !important;
}

.inventory-sidebar .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.15) !important;
}

.inventory-sidebar .nav-content a {
    color: #d8edf8 !important;
    border-radius: 8px !important;
}

.inventory-sidebar .nav-content a:hover,
.inventory-sidebar .nav-content a.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

/* Main area */
#main.main {
    margin-top: 74px !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border-radius: 16px 16px 0 0 !important;
}

#footer.footer,
.footer {
    background: #f0f5fa !important;
    border-top: 1px solid var(--inv-border) !important;
    color: #5c7488 !important;
}

.card,
.modal-content {
    border: 1px solid var(--inv-border) !important;
    border-radius: var(--inv-radius) !important;
    background: var(--inv-surface) !important;
    box-shadow: var(--inv-shadow-sm) !important;
}

.card-title {
    font-weight: 700 !important;
}

.form-control,
.form-select {
    border: 1px solid #c9d8e6 !important;
    border-radius: 10px !important;
    color: #15384e !important;
    background: #ffffff !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--inv-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(27, 132, 198, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--inv-primary) !important;
    --bs-btn-border-color: var(--inv-primary) !important;
    --bs-btn-hover-bg: var(--inv-primary-strong) !important;
    --bs-btn-hover-border-color: var(--inv-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--inv-success) !important;
    --bs-btn-border-color: var(--inv-success) !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--inv-danger) !important;
    --bs-btn-border-color: var(--inv-danger) !important;
}

/* Login */
.inventory-auth {
    min-height: 100vh !important;
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(39, 162, 230, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(27, 132, 198, 0.16), transparent 66%),
        linear-gradient(180deg, #edf4fc 0%, #e4edf8 100%) !important;
}

.inventory-auth .logo span {
    color: #114463 !important;
    font-weight: 800 !important;
}

.inventory-auth-card {
    border-radius: 16px !important;
    border: 1px solid #d1e1ee !important;
    box-shadow: 0 16px 30px rgba(12, 37, 53, 0.18) !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.inventory-auth .card-title {
    color: #114665 !important;
}

.inventory-auth a {
    color: var(--inv-primary) !important;
    font-weight: 600 !important;
}

.inventory-auth a:hover {
    color: var(--inv-primary-strong) !important;
}

/* Mobile */
@media (min-width: 1200px) {
    .inventory-header {
        min-height: 70px !important;
    }

    .inventory-sidebar {
        top: 70px !important;
        width: 292px !important;
    }

    #main.main,
    #footer.footer,
    .footer {
        margin-left: 292px !important;
    }

    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer.footer,
    body.toggle-sidebar .footer {
        margin-left: 0 !important;
    }

    body.toggle-sidebar .inventory-sidebar {
        left: -292px !important;
    }
}

@media (max-width: 1199px) {
    .inventory-header {
        min-height: 64px !important;
        padding: 0 12px !important;
    }

    .inventory-sidebar {
        top: 64px !important;
        left: -292px !important;
        width: 292px !important;
        max-width: calc(100vw - 24px) !important;
        border-radius: 0 14px 14px 0 !important;
        z-index: 1055 !important;
    }

    body.toggle-sidebar .inventory-sidebar {
        left: 0 !important;
    }

    body.toggle-sidebar {
        overflow: hidden !important;
    }

    body.toggle-sidebar::before {
        content: "" !important;
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(9, 29, 43, 0.52) !important;
        z-index: 1050 !important;
    }

    #main.main {
        margin-top: 70px !important;
        margin-left: 0 !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 14px !important;
    }

    #footer.footer,
    .footer {
        margin-left: 0 !important;
    }

    .inventory-header .inventory-search-bar {
        position: fixed !important;
        top: 66px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        background: rgba(11, 43, 62, 0.96) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        border-radius: 12px !important;
        padding: 10px !important;
        z-index: 1060 !important;
    }
}

@media (max-width: 991px) {
    .inventory-header .logo span,
    .inventory-header .inventory-header-nav .nav-profile span {
        display: none !important;
    }

    .inventory-header .inventory-header-nav .nav-profile {
        padding: 5px 8px !important;
    }

    .inventory-auth {
        padding: 20px 12px !important;
    }

    .inventory-auth-card {
        margin-bottom: 12px !important;
    }

    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

@media (max-width: 575px) {
    #main.main {
        padding: 12px 10px !important;
    }

    .pagetitle h1 {
        font-size: 20px !important;
    }

    .inventory-auth {
        min-height: 100dvh !important;
        padding: 14px 8px !important;
    }

    .inventory-auth-card .card-body {
        padding: 16px !important;
    }

    .modal-dialog {
        margin: 0.5rem !important;
    }

    .bootstrap-table .fixed-table-container,
    .bootstrap-table .fixed-table-body {
        overflow-x: auto !important;
    }
}

/* ==============================================================
   INVENTORY THEME - DIGITAL PROFESSIONAL (CSS ONLY FINAL LAYER)
============================================================== */
:root {
    --invx-bg: #eef3f9;
    --invx-bg-soft: #f7fafe;
    --invx-surface: #ffffff;
    --invx-border: #d7e2ee;
    --invx-text: #1c3040;
    --invx-text-soft: #657b8f;

    --invx-primary: #1c86c8;
    --invx-primary-strong: #146493;
    --invx-accent: #2da8ea;

    --invx-shell-1: #0d2838;
    --invx-shell-2: #11425d;
    --invx-shell-3: #1a6d98;

    --invx-success: #128261;
    --invx-danger: #c84a4a;

    --invx-shadow-sm: 0 8px 18px rgba(12, 36, 52, 0.1);
    --invx-shadow-md: 0 14px 30px rgba(12, 36, 52, 0.15);
}

html,
body {
    font-family: "Inter", "Work Sans", "Poppins", "Segoe UI", sans-serif !important;
    color: var(--invx-text) !important;
    background:
        radial-gradient(920px 360px at -5% -10%, rgba(45, 168, 234, 0.16), transparent 62%),
        radial-gradient(820px 340px at 105% -10%, rgba(28, 134, 200, 0.14), transparent 62%),
        var(--invx-bg) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.card-title,
.pagetitle h1 {
    font-family: "Montserrat", "Inter", sans-serif !important;
    color: #12394f !important;
}

#header.header,
.header {
    min-height: 68px !important;
    background: linear-gradient(115deg, var(--invx-shell-1) 0%, var(--invx-shell-2) 58%, var(--invx-shell-3) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(8, 27, 39, 0.3) !important;
}

#header .logo,
#header .logo span,
#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
#header .header-nav .nav-profile span,
#header .header-nav .nav-link,
#header .bi {
    color: #f0f8ff !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
.header .toggle-sidebar-btn,
.header-nav .nav-icon {
    width: 39px !important;
    height: 39px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover,
.header .toggle-sidebar-btn:hover,
.header-nav .nav-icon:hover {
    transform: translateY(-1px) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

#header .search-bar .search-form input,
.header .search-bar .search-form input {
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

#header .search-bar .search-form input::placeholder,
.header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .search-bar .search-form button i,
.header .search-bar .search-form button i {
    color: #ffffff !important;
}

#header .header-nav .nav-profile,
.header-nav .nav-profile {
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    padding: 6px 12px !important;
}

#header .header-nav .nav-profile img,
.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.38) !important;
}

#header .header-nav .dropdown-menu,
.header-nav .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--invx-border) !important;
    box-shadow: var(--invx-shadow-md) !important;
}

#header .header-nav .dropdown-menu .dropdown-item,
.header-nav .dropdown-menu .dropdown-item {
    border-radius: 8px !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
.header-nav .dropdown-menu .dropdown-item:hover {
    background: #edf5fc !important;
}

#sidebar.sidebar,
.sidebar {
    top: 68px !important;
    background:
        radial-gradient(560px 270px at -8% 0%, rgba(45, 168, 234, 0.18), transparent 66%),
        linear-gradient(185deg, #102d3f 0%, #12455f 62%, #155f82 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 10px 0 24px rgba(8, 23, 34, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(219, 241, 255, 0.84) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 700 !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #f2f9ff !important;
    font-weight: 600 !important;
}

#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link i {
    color: #d8ecf9 !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    transform: translateX(2px) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--invx-primary) 0%, var(--invx-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(21, 111, 164, 0.34) !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.15) !important;
}

#sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a {
    color: #d8edf8 !important;
    border-radius: 8px !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

#main.main,
#main {
    margin-top: 74px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-radius: 16px 16px 0 0 !important;
}

#footer.footer,
.footer {
    background: #f0f5fa !important;
    border-top: 1px solid var(--invx-border) !important;
    color: #5d7488 !important;
}

.card,
.modal-content {
    border: 1px solid var(--invx-border) !important;
    border-radius: 14px !important;
    background: var(--invx-surface) !important;
    box-shadow: var(--invx-shadow-sm) !important;
}

.form-control,
.form-select {
    border: 1px solid #c8d8e7 !important;
    border-radius: 10px !important;
    color: #15384e !important;
    background: #ffffff !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--invx-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(28, 134, 200, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--invx-primary) !important;
    --bs-btn-border-color: var(--invx-primary) !important;
    --bs-btn-hover-bg: var(--invx-primary-strong) !important;
    --bs-btn-hover-border-color: var(--invx-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--invx-success) !important;
    --bs-btn-border-color: var(--invx-success) !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--invx-danger) !important;
    --bs-btn-border-color: var(--invx-danger) !important;
}

.section.register {
    min-height: 100vh !important;
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(45, 168, 234, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(28, 134, 200, 0.16), transparent 66%),
        linear-gradient(180deg, #edf4fc 0%, #e4edf8 100%) !important;
}

.section.register .card {
    border: 1px solid #d1e1ee !important;
    border-radius: 16px !important;
    box-shadow: 0 16px 30px rgba(12, 37, 53, 0.18) !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.section.register .card-title {
    color: #114665 !important;
}

.section.register a {
    color: var(--invx-primary) !important;
    font-weight: 600 !important;
}

.section.register a:hover {
    color: var(--invx-primary-strong) !important;
}

@media (min-width: 1200px) {
    #header.header,
    .header {
        min-height: 70px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 70px !important;
        width: 292px !important;
    }

    #main,
    #main.main,
    #footer,
    #footer.footer,
    .footer {
        margin-left: 292px !important;
    }

    body.toggle-sidebar #main,
    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer,
    body.toggle-sidebar #footer.footer,
    body.toggle-sidebar .footer {
        margin-left: 0 !important;
    }

    body.toggle-sidebar #sidebar.sidebar,
    body.toggle-sidebar .sidebar {
        left: -292px !important;
    }
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        min-height: 64px !important;
        padding: 0 12px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 64px !important;
        left: -292px !important;
        width: 292px !important;
        max-width: calc(100vw - 24px) !important;
        border-radius: 0 14px 14px 0 !important;
        z-index: 1055 !important;
    }

    body.toggle-sidebar #sidebar.sidebar,
    body.toggle-sidebar .sidebar {
        left: 0 !important;
    }

    body.toggle-sidebar {
        overflow: hidden !important;
    }

    body.toggle-sidebar::before {
        content: "" !important;
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(9, 29, 43, 0.52) !important;
        z-index: 1050 !important;
    }

    #main,
    #main.main {
        margin-top: 70px !important;
        margin-left: 0 !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 14px !important;
    }

    #footer,
    #footer.footer,
    .footer {
        margin-left: 0 !important;
    }

    #header .search-bar,
    .header .search-bar {
        position: fixed !important;
        top: 66px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        background: rgba(11, 43, 62, 0.96) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        border-radius: 12px !important;
        padding: 10px !important;
        z-index: 1060 !important;
    }
}

@media (max-width: 991px) {
    #header .logo span,
    .header-nav .nav-profile span {
        display: none !important;
    }

    .header-nav .nav-profile {
        padding: 5px 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

@media (max-width: 575px) {
    #main,
    #main.main {
        padding: 12px 10px !important;
    }

    .pagetitle h1 {
        font-size: 20px !important;
    }

    .section.register {
        min-height: 100dvh !important;
        padding: 14px 8px !important;
    }

    .section.register .card-body {
        padding: 16px !important;
    }

    .modal-dialog {
        margin: 0.5rem !important;
    }
}

/* ==============================================================
   INVENTORY THEME - PALETTE 1 "DEEP TECH"
============================================================== */
:root {
    --invx-bg: #e2e8f0 !important;
    --invx-bg-soft: #f1f5f9 !important;
    --invx-surface: #ffffff !important;
    --invx-border: #cbd5e1 !important;
    --invx-text: #0b1220 !important;
    --invx-text-soft: #334155 !important;

    --invx-primary: #2563eb !important;
    --invx-primary-strong: #1e3a8a !important;
    --invx-accent: #38bdf8 !important;

    --invx-shell-1: #0b1220 !important;
    --invx-shell-2: #1e3a8a !important;
    --invx-shell-3: #2563eb !important;
}

body {
    background:
        radial-gradient(920px 360px at -5% -10%, rgba(56, 189, 248, 0.16), transparent 62%),
        radial-gradient(820px 340px at 105% -10%, rgba(37, 99, 235, 0.14), transparent 62%),
        var(--invx-bg) !important;
}

#header.header,
.header {
    background: linear-gradient(115deg, var(--invx-shell-1) 0%, var(--invx-shell-2) 58%, var(--invx-shell-3) 100%) !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 270px at -8% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        linear-gradient(185deg, #0b1220 0%, #1e3a8a 62%, #2563eb 100%) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--invx-primary) 0%, var(--invx-accent) 100%) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--invx-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.18) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--invx-primary) !important;
    --bs-btn-border-color: var(--invx-primary) !important;
    --bs-btn-hover-bg: var(--invx-primary-strong) !important;
    --bs-btn-hover-border-color: var(--invx-primary-strong) !important;
}

.section.register {
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(37, 99, 235, 0.16), transparent 66%),
        linear-gradient(180deg, #e2e8f0 0%, #f1f5f9 100%) !important;
}

/* ==============================================================
   DEEP TECH - HARD LOCK NAVBAR + SIDEBAR (VISIBILIDAD TOTAL)
============================================================== */
#header.header,
.header {
    background: linear-gradient(110deg, #0b1220 0%, #1e3a8a 58%, #2563eb 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 28px rgba(7, 17, 38, 0.34) !important;
}

#header .logo span,
#header .logo i,
#header .toggle-sidebar-btn,
#header .toggle-sidebar-btn i,
#header .header-nav .nav-link,
#header .header-nav .nav-icon,
#header .header-nav .nav-icon i,
#header .header-nav .nav-profile span,
#header .header-nav .nav-profile i,
#header .header-nav .nav-profile .dropdown-toggle {
    color: #f8fbff !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 12px !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .search-bar .search-form button,
#header .search-bar .search-form button i {
    color: #ffffff !important;
}

#header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 14px !important;
}

#header .header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.42) !important;
}

#header .header-nav .dropdown-menu,
#header .search-notify-dropdown .dropdown-menu {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.2) !important;
}

#header .header-nav .dropdown-menu .dropdown-header,
#header .header-nav .dropdown-menu .dropdown-item,
#header .header-nav .dropdown-menu .dropdown-item i,
#header .search-notify-dropdown .dropdown-menu .dropdown-header,
#header .search-notify-dropdown .dropdown-menu .notification-item,
#header .search-notify-dropdown .dropdown-menu .notification-item a,
#header .search-notify-dropdown .dropdown-menu .notification-item span,
#header .search-notify-dropdown .dropdown-menu .notification-item strong {
    color: #0f172a !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
#header .search-notify-dropdown .dropdown-menu .notification-item:hover {
    background: #e0f2fe !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        linear-gradient(185deg, #0b1220 0%, #1e3a8a 62%, #2563eb 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 10px 0 24px rgba(5, 14, 32, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(233, 245, 255, 0.88) !important;
}

#sidebar .sidebar-nav .nav-link,
#sidebar .sidebar-nav .nav-link span,
#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link span,
.sidebar .sidebar-nav .nav-link i {
    color: #eff8ff !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, #2563eb 0%, #38bdf8 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-link.active span,
#sidebar .sidebar-nav .nav-link.active i,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) span,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i,
.sidebar .sidebar-nav .nav-link.active span,
.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) span,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: 10px !important;
}

#sidebar .sidebar-nav .nav-content a,
#sidebar .sidebar-nav .nav-content a span,
#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a span,
.sidebar .sidebar-nav .nav-content a i {
    color: #def0ff !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        min-height: 64px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 64px !important;
    }
}

/* ==============================================================
   INVENTORY ELEGANT THEME - FINAL LAYER
============================================================== */
:root {
    --eleg-bg: #edf2f7 !important;
    --eleg-surface: #ffffff !important;
    --eleg-border: #d2dde8 !important;
    --eleg-text: #1f2f3f !important;
    --eleg-text-soft: #5f7387 !important;

    --eleg-primary: #2f5d8a !important;
    --eleg-primary-dark: #254a6d !important;
    --eleg-accent: #2fa58d !important;
    --eleg-accent-soft: #d8f1ea !important;

    --eleg-shell-1: #1a2433 !important;
    --eleg-shell-2: #24364b !important;
    --eleg-shell-3: #2f5d8a !important;
}

body {
    font-family: "Inter", "Work Sans", "Segoe UI", sans-serif !important;
    color: var(--eleg-text) !important;
    background:
        radial-gradient(900px 360px at -6% -14%, rgba(47, 165, 141, 0.13), transparent 62%),
        radial-gradient(860px 340px at 106% -14%, rgba(47, 93, 138, 0.15), transparent 62%),
        var(--eleg-bg) !important;
}

h1, h2, h3, h4, h5, h6, .card-title, .pagetitle h1 {
    color: #1a334a !important;
}

#header.header,
.header {
    background: linear-gradient(108deg, var(--eleg-shell-1) 0%, var(--eleg-shell-2) 56%, var(--eleg-shell-3) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(18, 30, 46, 0.34) !important;
}

#header .logo span,
#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
#header .header-nav .nav-profile span,
#header .header-nav .nav-profile i,
#header .header-nav .nav-link,
#header .bi {
    color: #f5f9fd !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 12px !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.2) !important;
}

#header .search-bar .search-form input {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.33) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 14px !important;
}

#header .header-nav .dropdown-menu,
#header .search-notify-dropdown .dropdown-menu {
    background: #ffffff !important;
    border: 1px solid var(--eleg-border) !important;
    box-shadow: 0 14px 30px rgba(16, 30, 46, 0.2) !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
#header .search-notify-dropdown .dropdown-menu .notification-item:hover {
    background: #edf5fa !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(47, 165, 141, 0.18), transparent 66%),
        linear-gradient(184deg, #1a2433 0%, #24364b 60%, #2f5d8a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 10px 0 24px rgba(11, 24, 38, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(233, 244, 252, 0.86) !important;
}

#sidebar .sidebar-nav .nav-link,
#sidebar .sidebar-nav .nav-link span,
#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link span,
.sidebar .sidebar-nav .nav-link i {
    color: #edf6fd !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
    border-radius: 12px !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--eleg-primary) 0%, var(--eleg-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: 10px !important;
}

#sidebar .sidebar-nav .nav-content a,
#sidebar .sidebar-nav .nav-content a span,
#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a span,
.sidebar .sidebar-nav .nav-content a i {
    color: #dff0fb !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
}

#main.main,
#main {
    background: rgba(255, 255, 255, 0.96) !important;
}

.card,
.modal-content {
    border: 1px solid var(--eleg-border) !important;
    border-radius: 14px !important;
    background: var(--eleg-surface) !important;
    box-shadow: 0 10px 22px rgba(18, 36, 54, 0.1) !important;
}

.form-control,
.form-select {
    border: 1px solid #c7d6e4 !important;
    border-radius: 10px !important;
    color: #1f3448 !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--eleg-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(47, 93, 138, 0.18) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--eleg-primary) !important;
    --bs-btn-border-color: var(--eleg-primary) !important;
    --bs-btn-hover-bg: var(--eleg-primary-dark) !important;
    --bs-btn-hover-border-color: var(--eleg-primary-dark) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--eleg-accent) !important;
    --bs-btn-border-color: var(--eleg-accent) !important;
}

.section.register {
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(47, 165, 141, 0.15), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(47, 93, 138, 0.16), transparent 66%),
        linear-gradient(180deg, #eef3f8 0%, #e6edf5 100%) !important;
}

/* ==============================================================
   INVENTORY ELEGANT IMPACT - HARD LOCK FINAL
============================================================== */
:root {
    --elegx-shell-1: #141e2c !important;
    --elegx-shell-2: #23354b !important;
    --elegx-shell-3: #2f5d8a !important;
    --elegx-accent: #2fa58d !important;
    --elegx-accent-2: #38b2a0 !important;
    --elegx-border: #d2dde8 !important;
    --elegx-text: #1f3042 !important;
}

#header.header,
.header {
    background: linear-gradient(110deg, var(--elegx-shell-1) 0%, var(--elegx-shell-2) 55%, var(--elegx-shell-3) 100%) !important;
    box-shadow: 0 16px 32px rgba(11, 22, 35, 0.34) !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(56, 178, 160, 0.22), transparent 66%),
        linear-gradient(184deg, #172130 0%, #23354b 60%, #2f5d8a 100%) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, #2f5d8a 0%, #2fa58d 100%) !important;
    box-shadow: 0 10px 20px rgba(35, 84, 122, 0.35) !important;
}

#main.main,
#main {
    background: rgba(255, 255, 255, 0.97) !important;
}

.card,
.modal-content,
.dropdown-menu {
    border: 1px solid var(--elegx-border) !important;
    box-shadow: 0 12px 24px rgba(18, 36, 54, 0.12) !important;
}

.bg-primary {
    background: linear-gradient(110deg, #2f5d8a, #3b78ad) !important;
}

.bg-success {
    background: linear-gradient(110deg, #2fa58d, #3ab69f) !important;
}

.bg-danger {
    background: linear-gradient(110deg, #b85c6a, #d37684) !important;
}

.bg-warning {
    background: linear-gradient(110deg, #b28749, #caa05e) !important;
}

.card-footer.bg-primary,
.card-footer.bg-success,
.card-footer.bg-danger,
.card-footer.bg-warning {
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: #2f5d8a !important;
    --bs-btn-border-color: #2f5d8a !important;
    --bs-btn-hover-bg: #254a6d !important;
    --bs-btn-hover-border-color: #254a6d !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: #2fa58d !important;
    --bs-btn-border-color: #2fa58d !important;
    --bs-btn-hover-bg: #268875 !important;
    --bs-btn-hover-border-color: #268875 !important;
}

a,
.text-primary {
    color: #2f5d8a !important;
}

a:hover {
    color: #254a6d !important;
}

.badge.bg-danger {
    background: #b85c6a !important;
}

.badge.bg-success {
    background: #2fa58d !important;
}

/* ============================================================== 
   INVENTORY NEO - INNOVADOR HARD LOCK V2 (GLOBAL FINAL)
============================================================== */
:root {
    --neo-bg: #0f1722 !important;
    --neo-surface: #f8fbff !important;
    --neo-border: #c8d8e8 !important;
    --neo-text: #112235 !important;
    --neo-cyan: #00b8d9 !important;
    --neo-blue: #2563eb !important;
    --neo-indigo: #4f46e5 !important;
    --neo-lime: #14b8a6 !important;
}

body {
    background:
        radial-gradient(900px 360px at -8% -10%, rgba(0, 184, 217, 0.2), transparent 64%),
        radial-gradient(820px 340px at 108% -10%, rgba(79, 70, 229, 0.18), transparent 64%),
        #edf3fb !important;
    color: var(--neo-text) !important;
}

body #header.header,
body .header {
    min-height: 70px !important;
    background:
        radial-gradient(520px 220px at 0% 0%, rgba(0, 184, 217, 0.28), transparent 66%),
        linear-gradient(108deg, #0c1420 0%, #142136 42%, #1d2f4f 70%, #2b3f68 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.26) !important;
    box-shadow: 0 16px 34px rgba(6, 14, 28, 0.46) !important;
}

body #header .logo span,
body #header .toggle-sidebar-btn,
body #header .header-nav .nav-link,
body #header .header-nav .nav-icon,
body #header .header-nav .nav-profile span,
body #header .header-nav .nav-profile i,
body #header .bi {
    color: #f4fbff !important;
}

body #header .toggle-sidebar-btn,
body #header .header-nav .nav-icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.38) !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

body #header .toggle-sidebar-btn:hover,
body #header .header-nav .nav-icon:hover {
    background: rgba(0, 184, 217, 0.32) !important;
    border-color: rgba(0, 184, 217, 0.75) !important;
}

body #sidebar.sidebar,
body .sidebar {
    background:
        radial-gradient(540px 260px at -10% 0%, rgba(0, 184, 217, 0.24), transparent 66%),
        linear-gradient(186deg, #0d1624 0%, #15253b 58%, #22385a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 12px 0 28px rgba(6, 14, 26, 0.42) !important;
}

body #sidebar .sidebar-nav .nav-heading,
body .sidebar .sidebar-nav .nav-heading {
    color: rgba(221, 242, 253, 0.92) !important;
    letter-spacing: 0.08em !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

body #sidebar .sidebar-nav .nav-link,
body #sidebar .sidebar-nav .nav-link span,
body #sidebar .sidebar-nav .nav-link i,
body .sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link span,
body .sidebar .sidebar-nav .nav-link i {
    color: #eff9ff !important;
}

body #sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link {
    margin: 6px 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.06)) !important;
}

body #sidebar .sidebar-nav .nav-link:hover,
body .sidebar .sidebar-nav .nav-link:hover {
    border-color: rgba(0, 184, 217, 0.55) !important;
    background: linear-gradient(90deg, rgba(0, 184, 217, 0.24), rgba(79, 70, 229, 0.2)) !important;
}

body #sidebar .sidebar-nav .nav-link.active,
body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar .sidebar-nav .nav-link.active,
body .sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #ffffff !important;
    border-color: rgba(0, 184, 217, 0.7) !important;
    background: linear-gradient(90deg, #00b8d9 0%, #2563eb 52%, #4f46e5 100%) !important;
    box-shadow: 0 10px 20px rgba(14, 63, 116, 0.42) !important;
}

body #sidebar .sidebar-nav .nav-content,
body .sidebar .sidebar-nav .nav-content {
    margin: 0 10px 10px !important;
    border-radius: 12px !important;
    background: rgba(0, 0, 0, 0.2) !important;
}

body #sidebar .sidebar-nav .nav-content a,
body #sidebar .sidebar-nav .nav-content a i,
body .sidebar .sidebar-nav .nav-content a,
body .sidebar .sidebar-nav .nav-content a i {
    color: #d9f0ff !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body #sidebar .sidebar-nav .nav-content a.active,
body .sidebar .sidebar-nav .nav-content a:hover,
body .sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: rgba(0, 184, 217, 0.24) !important;
}

body #main.main,
body #main {
    margin-top: 76px !important;
    background: rgba(255, 255, 255, 0.97) !important;
    border-radius: 18px 18px 0 0 !important;
}

body .card,
body .modal-content,
body .dropdown-menu {
    border: 1px solid #d1dfec !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 24px rgba(16, 35, 52, 0.12) !important;
}

body .bg-primary {
    background: linear-gradient(112deg, #2563eb, #4f46e5) !important;
}

body .bg-success {
    background: linear-gradient(112deg, #14b8a6, #2fa58d) !important;
}

body .bg-danger {
    background: linear-gradient(112deg, #e35d7b, #c33d64) !important;
}

body .bg-warning {
    background: linear-gradient(112deg, #f5b642, #d89a2e) !important;
}

/* ==============================================================
   HEADER/SIDEBAR MOBILE - HARD FIX
============================================================== */
@media (max-width: 1199px) {
    body #header.header,
    body .header {
        min-height: 64px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    body #header .logo img,
    body .header .logo img {
        max-height: 38px !important;
    }

    body #header .toggle-sidebar-btn,
    body #header .header-nav .nav-icon,
    body .header .toggle-sidebar-btn,
    body .header-nav .nav-icon {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 10px !important;
        font-size: 20px !important;
        margin-right: 8px !important;
    }

    body #header .header-nav .nav-profile img,
    body .header-nav .nav-profile img {
        width: 34px !important;
        height: 34px !important;
        max-height: 34px !important;
    }

    body #header .search-bar,
    body .header .search-bar {
        top: 64px !important;
        padding: 10px 12px !important;
        background:
            radial-gradient(520px 220px at 0% 0%, rgba(0, 184, 217, 0.28), transparent 66%),
            linear-gradient(108deg, #0c1420 0%, #142136 42%, #1d2f4f 70%, #2b3f68 100%) !important;
        border-top: 1px solid rgba(255, 255, 255, 0.16) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important;
    }

    body #header .search-bar .search-form input,
    body .header .search-bar .search-form input {
        height: 40px !important;
        font-size: 13px !important;
        color: #f5fbff !important;
        background: rgba(255, 255, 255, 0.12) !important;
        border-color: rgba(255, 255, 255, 0.3) !important;
    }

    body #header .search-bar .search-form input::placeholder,
    body .header .search-bar .search-form input::placeholder {
        color: rgba(235, 246, 255, 0.85) !important;
    }

    body #header .search-notify-dropdown .dropdown-menu,
    body #header .header-nav .dropdown-menu,
    body .header .search-notify-dropdown .dropdown-menu,
    body .header-nav .dropdown-menu {
        min-width: min(360px, calc(100vw - 14px)) !important;
        max-width: calc(100vw - 14px) !important;
    }
}

@media (max-width: 767px) {
    body #header .header-nav .nav-icon,
    body #header .toggle-sidebar-btn,
    body .header .header-nav .nav-icon,
    body .header .toggle-sidebar-btn {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        margin-right: 6px !important;
        font-size: 18px !important;
    }

    body #header .header-nav .badge-number,
    body .header .header-nav .badge-number {
        top: -4px !important;
        right: -4px !important;
        font-size: 10px !important;
        padding: 2px 5px !important;
    }

    body #header .search-notify-dropdown .dropdown-menu,
    body #header .header-nav .dropdown-menu,
    body .header .search-notify-dropdown .dropdown-menu,
    body .header-nav .dropdown-menu {
        min-width: calc(100vw - 10px) !important;
        max-width: calc(100vw - 10px) !important;
        right: -6px !important;
    }
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/tables.css ***!
  \*****************************************************************************************************************/
/* Estilos generales para la tabla */
.estilos_generales {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    display: block;
    margin: auto;
    border-collapse: collapse;
    font-family: 'Roboto', Arial, sans-serif;
    background: #f9fbfc;
    color: #003E51;
    border: 1px solid #c9e7f0;
    border-radius: 8px;
}

.estilos_generales th {
    font-size: 15px;
    font-weight: bold;
    padding: 12px 13px;
    background: #e2f4f9;
    color: #004b60;
    border-bottom: 1px solid #c0e0ea;
    text-align: left;
    white-space: nowrap;
}

.estilos_generales td {
    padding: 8px;
    font-size: 13px;
    background: #ffffff;
    color: #003E51;
    border-bottom: 1px solid #f0f0f0;
    white-space: nowrap;
}

.estilos_generales tbody tr:hover {
    background-color: #f0fbff;
}


/* Scroll para el toolbar */
[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    padding: 6px 0;
    max-width: 100%;
    scrollbar-width: thin;
    scrollbar-color: #ccc transparent;
    white-space: nowrap;
}

[id^="toolbar_"] > * {
    flex: 0 0 auto; /* evita que se expandan */
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 6px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}


/* Para pantallas pequeÃ±as */
@media (max-width: 767px) {
    [id^="toolbar_"] {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        width: 100%;
    }

    [id^="toolbar_"] button {
        flex: 0 0 auto;
        font-size: 14px;
    }

    .estilos_generales {
        overflow-x: auto;
        display: block;
        width: 100%;
    }

    .estilos_generales th,
    .estilos_generales td {
        white-space: nowrap;
    }
}


/* Botones generales personalizados */

/* Estilo comÃºn para todos los botones */

/* Hover de botones */

/* Botones deshabilitados */

/* BotÃ³n peligro */

/* BotÃ³n Ã©xito */

/* BotÃ³n advertencia */

/* BotÃ³n secundario */

/* --------------------------------------------------------------
   Ajuste visual profesional (sin cambiar clases)
-------------------------------------------------------------- */
.estilos_generales {
    background: #f8fafc;
    color: #2b3f55;
    border-color: #d4dee9;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.estilos_generales th {
    background: #edf3f9;
    color: #31495f;
    border-bottom-color: #d4dee9;
}

.estilos_generales td {
    color: #2b3f55;
    border-bottom-color: #e8eef5;
}

.estilos_generales tbody tr:nth-child(even) td {
    background: #f9fcff;
}

.estilos_generales tbody tr:hover td {
    background-color: #edf4fb;
}

[id^="toolbar_"] {
    scrollbar-color: #b9c7d6 transparent;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #b9c7d6;
}


/* --------------------------------------------------------------
   Final Override - Full Width + Pleasant Table Layout
   (Mantiene clases existentes)
-------------------------------------------------------------- */
table.estilos_generales {
    width: 100% !important;
    max-width: 100% !important;
    display: table !important;
    margin: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    border-radius: 6px !important;
    border-color: #d4deea !important;
    box-shadow: 0 8px 18px rgba(30, 41, 59, 0.08) !important;
}

.bootstrap-table .table thead th {
    background: #edf3f9 !important;
    color: #334c64 !important;
    border-bottom: 1px solid #d4deea !important;
    text-align: center !important;
}

.bootstrap-table .table tbody td {
    color: #2f455d !important;
    text-align: center !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td {
    background: #f8fbff !important;
}

.bootstrap-table .table tbody tr:hover td {
    background: #edf4fb !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f6f9fd !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: #3f5f80 !important;
    border-color: #3f5f80 !important;
}

/* --------------------------------------------------------------
   Final Professional Tables (sin cambiar clases existentes)
-------------------------------------------------------------- */
:root {
    --tbl-surface: #f6fafd;
    --tbl-head-bg: #e5eef6;
    --tbl-head-text: #000000;
    --tbl-cell-text: #000000;
    --tbl-line: #cfe0ec;
    --tbl-row-alt: #fafdff;
    --tbl-row-hover: #edf5fb;
    --tbl-page-active: #4f87ad;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    background: #ffffff !important;
    border: 1px solid var(--tbl-line) !important;
    border-radius: 3px !important;
    box-shadow: 0 8px 16px rgba(29, 63, 90, 0.1) !important;
}

.estilos_generales {
    background: var(--tbl-surface) !important;
    border-color: var(--tbl-line) !important;
    border-radius: 3px !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tbl-head-bg) !important;
    color: var(--tbl-head-text) !important;
    border-bottom: 1px solid var(--tbl-line) !important;
    font-weight: 700 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tbl-cell-text) !important;
    border-bottom: 1px solid #e5ebf3 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tbl-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tbl-row-hover) !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f2f8fd !important;
    border-top: 1px solid #d5e5f1 !important;
}

.bootstrap-table .fixed-table-pagination .page-link {
    color: #000000 !important;
    border-color: #ccdeeb !important;
    border-radius: 2px !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tbl-page-active) !important;
    border-color: var(--tbl-page-active) !important;
    color: #fff !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    background: #e7f1f9 !important;
    color: #000000 !important;
}

/* --------------------------------------------------------------
   ENTERPRISE SKY TABLES FINAL END LAYER
-------------------------------------------------------------- */
:root {
    --tbl-surface: #f5fafe;
    --tbl-head-bg: #dcecf8;
    --tbl-head-text: #000000;
    --tbl-cell-text: #000000;
    --tbl-line: #c8dced;
    --tbl-row-alt: #fbfdff;
    --tbl-row-hover: #eaf4fc;
    --tbl-page-active: #3380b6;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    background: #ffffff !important;
    border: 1px solid var(--tbl-line) !important;
    border-radius: 3px !important;
    box-shadow: 0 6px 14px rgba(21, 59, 89, 0.1) !important;
}

.estilos_generales {
    background: var(--tbl-surface) !important;
    border-color: var(--tbl-line) !important;
    border-radius: 3px !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tbl-head-bg) !important;
    color: var(--tbl-head-text) !important;
    border-bottom: 1px solid var(--tbl-line) !important;
    font-weight: 700 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tbl-cell-text) !important;
    border-bottom: 1px solid #deebf5 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tbl-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tbl-row-hover) !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f1f8fe !important;
    border-top: 1px solid #d2e4f2 !important;
}

.bootstrap-table .fixed-table-pagination .page-link {
    color: #000000 !important;
    border-color: #c8dced !important;
    border-radius: 2px !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    background: #e6f2fb !important;
    color: #000000 !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tbl-page-active) !important;
    border-color: var(--tbl-page-active) !important;
    color: #ffffff !important;
}

/* Botones de tablas y toolbar en línea profesional */
[id^="toolbar_"] .btn,
[id^="toolbar_"] .btn-custom,
[id^="toolbar_"] .btn-custom-text,
.bootstrap-table .fixed-table-toolbar .btn,
table.estilos_generales .btn {
    border-radius: 3px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-width: 1px !important;
}

[id^="toolbar_"] .btn.btn-primary,
[id^="toolbar_"] .btn-custom,
[id^="toolbar_"] .btn-custom-text,
.bootstrap-table .fixed-table-toolbar .btn.btn-primary,
table.estilos_generales .btn.btn-primary {
    background: #0f82cd !important;
    border-color: #0f82cd !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-primary:hover,
[id^="toolbar_"] .btn-custom:hover,
[id^="toolbar_"] .btn-custom-text:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-primary:hover,
table.estilos_generales .btn.btn-primary:hover {
    background: #0d70b0 !important;
    border-color: #0d70b0 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-secondary,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary,
table.estilos_generales .btn.btn-secondary {
    background: #2f78ab !important;
    border-color: #2f78ab !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-secondary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary:hover,
table.estilos_generales .btn.btn-secondary:hover {
    background: #286a97 !important;
    border-color: #286a97 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-success,
.bootstrap-table .fixed-table-toolbar .btn.btn-success,
table.estilos_generales .btn.btn-success {
    background: #0a9772 !important;
    border-color: #0a9772 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-success:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-success:hover,
table.estilos_generales .btn.btn-success:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-warning,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning,
table.estilos_generales .btn.btn-warning {
    background: #ab7624 !important;
    border-color: #ab7624 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-warning:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning:hover,
table.estilos_generales .btn.btn-warning:hover {
    background: #92651f !important;
    border-color: #92651f !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-danger,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger,
table.estilos_generales .btn.btn-danger {
    background: #b54545 !important;
    border-color: #b54545 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-danger:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger:hover,
table.estilos_generales .btn.btn-danger:hover {
    background: #9b3b3b !important;
    border-color: #9b3b3b !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   TOOLBAR BUTTONS (utilMax) - FINAL por ID
-------------------------------------------------------------- */
#btn_nuevo,
#btn_remove_all,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel {
    border-radius: 2px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-width: 1px !important;
    color: #ffffff !important;
}

#btn_nuevo {
    background: #0f82cd !important;
    border-color: #0f82cd !important;
}

#btn_nuevo:hover {
    background: #0d70b0 !important;
    border-color: #0d70b0 !important;
}

#btn_remove_all {
    background: #c54545 !important;
    border-color: #c54545 !important;
}

#btn_remove_all:hover {
    background: #a93a3a !important;
    border-color: #a93a3a !important;
}

#btn_estado_all {
    background: #1e9ad8 !important;
    border-color: #1e9ad8 !important;
}

#btn_estado_all:hover {
    background: #1a86bc !important;
    border-color: #1a86bc !important;
}

#btn_carga_masiva {
    background: #0a9772 !important;
    border-color: #0a9772 !important;
}

#btn_carga_masiva:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
}

#btn_descargar_excel {
    background: #148a53 !important;
    border-color: #148a53 !important;
}

#btn_descargar_excel:hover {
    background: #117647 !important;
    border-color: #117647 !important;
}

/* --------------------------------------------------------------
   TABLE TOOLBAR PRO CONTROLS (refresh / columns / search)
   Capa final enfocada en controles de Bootstrap Table
-------------------------------------------------------------- */
.bootstrap-table .fixed-table-toolbar {
    padding: 10px 0 8px !important;
}

.bootstrap-table .fixed-table-toolbar .btn-group,
.bootstrap-table .fixed-table-toolbar .columns,
.bootstrap-table .fixed-table-toolbar .search {
    margin-bottom: 6px !important;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn {
    border-radius: 8px !important;
    border: 1px solid #c7d8e7 !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%) !important;
    color: #1d425c !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 6px 12px !important;
    box-shadow: 0 2px 6px rgba(18, 47, 68, 0.1) !important;
}

.bootstrap-table .fixed-table-toolbar .btn.btn-primary,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary,
.bootstrap-table .fixed-table-toolbar .btn.btn-success,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger {
    border: 1px solid #c7d8e7 !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%) !important;
    color: #1d425c !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover {
    background: linear-gradient(180deg, #f8fcff 0%, #e3eef8 100%) !important;
    border-color: #9fc1dc !important;
    color: #16364c !important;
}

.bootstrap-table .fixed-table-toolbar .btn.btn-primary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-success:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger:hover {
    background: linear-gradient(180deg, #f8fcff 0%, #e3eef8 100%) !important;
    border-color: #9fc1dc !important;
    color: #16364c !important;
}

.bootstrap-table .fixed-table-toolbar .btn:focus,
.bootstrap-table .fixed-table-toolbar .columns .btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(22, 111, 168, 0.2) !important;
}

.bootstrap-table .fixed-table-toolbar .search input.form-control,
.bootstrap-table .fixed-table-toolbar .search input[type="search"] {
    height: 36px !important;
    border-radius: 8px !important;
    border: 1px solid #c7d8e7 !important;
    background: #ffffff !important;
    color: #1d425c !important;
    font-size: 13px !important;
    padding: 6px 10px !important;
}

.bootstrap-table .fixed-table-toolbar .search input::placeholder {
    color: #6f8799 !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu {
    border-radius: 10px !important;
    border: 1px solid #c8dced !important;
    box-shadow: 0 12px 22px rgba(14, 44, 64, 0.14) !important;
    padding: 8px !important;
    min-width: 240px !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu label,
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu .dropdown-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #1f3f57 !important;
    border-radius: 6px !important;
    padding: 6px 8px !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu label:hover,
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu .dropdown-item:hover {
    background: #edf5fb !important;
}

.bootstrap-table .fixed-table-toolbar .columns input[type="checkbox"] {
    width: 15px !important;
    height: 15px !important;
    accent-color: #1f87c7 !important;
}

.bootstrap-table .fixed-table-pagination .pagination-info,
.bootstrap-table .fixed-table-pagination .page-list {
    font-size: 13px !important;
    color: #2a4a63 !important;
    font-weight: 600 !important;
}

/* --------------------------------------------------------------
   UNIFORM COLOR + UNDERSTANDABLE CONTROLS (LAST LAYER)
-------------------------------------------------------------- */
:root {
    --tb-brand: #1f87c7;
    --tb-brand-hover: #166fa5;
    --tb-surface: #f3f9ff;
    --tb-border: #bcd4e6;
    --tb-text: #16384e;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    border-radius: 10px !important;
    border: 1px solid var(--tb-border) !important;
    background: var(--tb-surface) !important;
    color: var(--tb-text) !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    padding: 7px 12px !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    border-color: var(--tb-brand) !important;
    background: #e8f3fb !important;
    color: #0f2e40 !important;
}

.bootstrap-table .fixed-table-toolbar .btn:focus,
[id^="toolbar_"] .btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(31, 135, 199, 0.2) !important;
}

/* Mantener botones de acciones internas (CRUD) con color claro y uniforme */
#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro,
#btn_pdf_completo,
#btn_pdf_filtro {
    color: #ffffff !important;
}

/* Botones de bootstrap-table (refresh/columns/export) con color uniforme */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="paginationSwitch"],
.bootstrap-table .fixed-table-toolbar button[name="toggle"],
.bootstrap-table .fixed-table-toolbar button[name="fullscreen"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tb-brand) !important;
    border-color: var(--tb-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="paginationSwitch"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="toggle"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="fullscreen"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tb-brand-hover) !important;
    border-color: var(--tb-brand-hover) !important;
    color: #ffffff !important;
}

/* Hacer controles más entendibles: texto visible en botones de icono */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]::after {
    content: "Refrescar";
}

.bootstrap-table .fixed-table-toolbar button[name="columns"]::after {
    content: "Columnas";
}

.bootstrap-table .fixed-table-toolbar button[name="export"]::after {
    content: "Exportar";
}

/* Barra de búsqueda más legible y pareja */
.bootstrap-table .fixed-table-toolbar .search input.form-control,
.bootstrap-table .fixed-table-toolbar .search input[type="search"] {
    border-radius: 10px !important;
    border: 1px solid var(--tb-border) !important;
    background: #ffffff !important;
    color: #1b3d53 !important;
    height: 38px !important;
}

.bootstrap-table .fixed-table-toolbar .search input::placeholder {
    color: #6c8496 !important;
    font-weight: 600 !important;
}

/* Paginación con color uniforme */
.bootstrap-table .fixed-table-pagination .page-link {
    border-radius: 8px !important;
    border-color: var(--tb-border) !important;
    color: #204963 !important;
    background: #ffffff !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    border-color: var(--tb-brand) !important;
    color: #0f2e40 !important;
    background: #ecf6fd !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tb-brand) !important;
    border-color: var(--tb-brand) !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   BUTTON SIZE NORMALIZER (all same size)
-------------------------------------------------------------- */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    vertical-align: middle !important;
}

/* Botones de controles de bootstrap-table con ancho consistente */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    min-width: 118px !important;
}

/* Botones CRUD del toolbar con mismo alto/ancho visual */
#btn_nuevo,
#btn_remove_all,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_pdf_completo,
#btn_excel_completo,
#btn_pdf_filtro,
#btn_excel_filtro {
    min-width: 120px !important;
}

/* Íconos con tamaño uniforme */
.bootstrap-table .fixed-table-toolbar .btn i,
[id^="toolbar_"] .btn i,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .ri {
    font-size: 13px !important;
    line-height: 1 !important;
}

@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar button[name="refresh"],
    .bootstrap-table .fixed-table-toolbar button[name="columns"],
    .bootstrap-table .fixed-table-toolbar button[name="export"],
    #btn_nuevo,
    #btn_remove_all,
    #btn_estado_all,
    #btn_carga_masiva,
    #btn_descargar_excel,
    #btn_pdf_completo,
    #btn_excel_completo,
    #btn_pdf_filtro,
    #btn_excel_filtro {
        min-width: auto !important;
    }
}

/* ==============================================================
   INVENTORY TABLES - DIGITAL PROFESSIONAL FINAL LAYER
============================================================== */
:root {
    --tblx-bg: #f7fbff;
    --tblx-surface: #ffffff;
    --tblx-border: #cfdeec;
    --tblx-head-bg: #e9f2fb;
    --tblx-head-text: #133c54;
    --tblx-text: #213d51;
    --tblx-row-alt: #fbfdff;
    --tblx-row-hover: #edf5fc;
    --tblx-brand: #1c86c8;
    --tblx-brand-hover: #146493;
    --tblx-success: #128261;
    --tblx-danger: #c84a4a;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
    color: var(--tblx-text) !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    border-radius: 10px !important;
    background: var(--tblx-surface) !important;
    box-shadow: 0 8px 20px rgba(13, 38, 56, 0.11) !important;
}

.estilos_generales,
.bootstrap-table .table {
    background: var(--tblx-bg) !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
    border-bottom: 1px solid var(--tblx-border) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tblx-text) !important;
    border-bottom: 1px solid #e4edf6 !important;
    font-size: 13px !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 8px 0;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: thin;
    scrollbar-color: #b7ccdd transparent;
}

[id^="toolbar_"] > * {
    flex: 0 0 auto;
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 7px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #b7ccdd;
    border-radius: 8px;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    height: 38px !important;
    min-height: 38px !important;
    border-radius: 10px !important;
    border: 1px solid var(--tblx-border) !important;
    background: #ffffff !important;
    color: var(--tblx-text) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    box-shadow: 0 3px 10px rgba(12, 36, 52, 0.08) !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    background: #eef6fd !important;
    border-color: #aac4d8 !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

/* ==============================================================
   INVENTORY TABLES - ELEGANT FINAL LAYER
============================================================== */
:root {
    --tblx-bg: #f6f9fc !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #d2dde8 !important;
    --tblx-head-bg: #e8eef5 !important;
    --tblx-head-text: #1a334a !important;
    --tblx-text: #273d52 !important;
    --tblx-row-alt: #fbfdff !important;
    --tblx-row-hover: #edf5fa !important;
    --tblx-brand: #2f5d8a !important;
    --tblx-brand-hover: #254a6d !important;
    --tblx-success: #2fa58d !important;
    --tblx-danger: #bd5b5b !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    border-radius: 10px !important;
    background: var(--tblx-surface) !important;
    box-shadow: 0 8px 18px rgba(17, 35, 52, 0.1) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
    border-bottom: 1px solid var(--tblx-border) !important;
}

.bootstrap-table .table tbody td,
.estilos_generales td {
    color: var(--tblx-text) !important;
    border-bottom: 1px solid #e4ecf4 !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td,
.estilos_generales tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

/* ==============================================================
   TABLE BUTTONS - HARD LOCK FINAL END
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #143a53 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary,
.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger,
.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
}

/* ==============================================================
   MOBILE ICON-ONLY HARD LOCK (absolute final)
============================================================== */
@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar .btn,
    .bootstrap-table .fixed-table-toolbar .columns .btn,
    [id^="toolbar_"] .btn,
    .bootstrap-table .table tbody td .btn,
    .bootstrap-table .table tbody td .accion-informe,
    .estilos_generales tbody td .btn,
    .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn i,
    .bootstrap-table .fixed-table-toolbar .columns .btn i,
    [id^="toolbar_"] .btn i,
    [id^="toolbar_"] .btn .fa,
    [id^="toolbar_"] .btn .fas,
    [id^="toolbar_"] .btn .far,
    [id^="toolbar_"] .btn .fab,
    [id^="toolbar_"] .btn .ri,
    .bootstrap-table .table tbody td .btn i,
    .bootstrap-table .table tbody td .btn .fa,
    .bootstrap-table .table tbody td .btn .fas,
    .bootstrap-table .table tbody td .btn .far,
    .bootstrap-table .table tbody td .btn .fab,
    .bootstrap-table .table tbody td .btn .ri,
    .bootstrap-table .table tbody td .accion-informe i,
    .bootstrap-table .table tbody td .accion-informe .fa,
    .bootstrap-table .table tbody td .accion-informe .fas,
    .bootstrap-table .table tbody td .accion-informe .far,
    .bootstrap-table .table tbody td .accion-informe .fab,
    .bootstrap-table .table tbody td .accion-informe .ri,
    .estilos_generales tbody td .btn i,
    .estilos_generales tbody td .accion-informe i {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn small,
    .bootstrap-table .fixed-table-toolbar .btn span,
    [id^="toolbar_"] .btn small,
    [id^="toolbar_"] .btn span,
    .bootstrap-table .table tbody td .btn small,
    .bootstrap-table .table tbody td .btn span,
    .bootstrap-table .table tbody td .accion-informe small,
    .bootstrap-table .table tbody td .accion-informe span,
    .estilos_generales tbody td .btn small,
    .estilos_generales tbody td .btn span,
    .estilos_generales tbody td .accion-informe small,
    .estilos_generales tbody td .accion-informe span {
        display: none !important;
    }
}

/* ==============================================================
   MOBILE ICON-ONLY HARD LOCK (final override)
   - En celular, botones de tablas muestran solo iconos
============================================================== */
@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar .btn,
    .bootstrap-table .fixed-table-toolbar .columns .btn,
    [id^="toolbar_"] .btn,
    .bootstrap-table .table tbody td .btn,
    .bootstrap-table .table tbody td .accion-informe,
    .estilos_generales tbody td .btn,
    .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn i,
    .bootstrap-table .fixed-table-toolbar .columns .btn i,
    [id^="toolbar_"] .btn i,
    [id^="toolbar_"] .btn .fa,
    [id^="toolbar_"] .btn .fas,
    [id^="toolbar_"] .btn .far,
    [id^="toolbar_"] .btn .fab,
    [id^="toolbar_"] .btn .ri,
    .bootstrap-table .table tbody td .btn i,
    .bootstrap-table .table tbody td .btn .fa,
    .bootstrap-table .table tbody td .btn .fas,
    .bootstrap-table .table tbody td .btn .far,
    .bootstrap-table .table tbody td .btn .fab,
    .bootstrap-table .table tbody td .btn .ri,
    .bootstrap-table .table tbody td .accion-informe i,
    .bootstrap-table .table tbody td .accion-informe .fa,
    .bootstrap-table .table tbody td .accion-informe .fas,
    .bootstrap-table .table tbody td .accion-informe .far,
    .bootstrap-table .table tbody td .accion-informe .fab,
    .bootstrap-table .table tbody td .accion-informe .ri,
    .estilos_generales tbody td .btn i,
    .estilos_generales tbody td .accion-informe i {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn small,
    .bootstrap-table .fixed-table-toolbar .btn span,
    [id^="toolbar_"] .btn small,
    [id^="toolbar_"] .btn span,
    .bootstrap-table .table tbody td .btn small,
    .bootstrap-table .table tbody td .btn span,
    .bootstrap-table .table tbody td .accion-informe small,
    .bootstrap-table .table tbody td .accion-informe span,
    .estilos_generales tbody td .btn small,
    .estilos_generales tbody td .btn span,
    .estilos_generales tbody td .accion-informe small,
    .estilos_generales tbody td .accion-informe span {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar .btn,
    .bootstrap-table .fixed-table-toolbar .columns .btn,
    [id^="toolbar_"] .btn,
    .bootstrap-table .table tbody td .btn,
    .bootstrap-table .table tbody td .accion-informe,
    .estilos_generales tbody td .btn,
    .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn i,
    .bootstrap-table .fixed-table-toolbar .columns .btn i,
    [id^="toolbar_"] .btn i,
    .bootstrap-table .table tbody td .btn i,
    .bootstrap-table .table tbody td .accion-informe i,
    .estilos_generales tbody td .btn i,
    .estilos_generales tbody td .accion-informe i,
    .bootstrap-table .table tbody td .btn .fa,
    .bootstrap-table .table tbody td .btn .fas,
    .bootstrap-table .table tbody td .btn .ri,
    .bootstrap-table .table tbody td .accion-informe .fa,
    .bootstrap-table .table tbody td .accion-informe .fas,
    .bootstrap-table .table tbody td .accion-informe .ri {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .bootstrap-table .table tbody td .btn small,
    .bootstrap-table .table tbody td .btn span,
    .bootstrap-table .table tbody td .accion-informe small,
    .bootstrap-table .table tbody td .accion-informe span,
    .estilos_generales tbody td .btn small,
    .estilos_generales tbody td .btn span,
    .estilos_generales tbody td .accion-informe small,
    .estilos_generales tbody td .accion-informe span {
        font-size: 0 !important;
    }
}

/* ==============================================================
   TABLE BUTTONS - LEGIBILIDAD Y UNIFORMIDAD FINAL
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #16384e !important;
}

.bootstrap-table .fixed-table-toolbar .btn i,
.bootstrap-table .fixed-table-toolbar .columns .btn i,
[id^="toolbar_"] .btn i,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .ri {
    font-size: 13px !important;
    line-height: 1 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_nuevo:hover,
#btn_estado_all:hover,
#btn_carga_masiva:hover,
#btn_descargar_excel:hover,
#btn_excel_completo:hover,
#btn_excel_filtro:hover {
    background: #0f6d52 !important;
    border-color: #0f6d52 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

#btn_remove_all:hover,
#btn_pdf_completo:hover,
#btn_pdf_filtro:hover {
    background: #ab3f3f !important;
    border-color: #ab3f3f !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary {
    color: #ffffff !important;
    background: #2563eb !important;
    border-color: #2563eb !important;
}

.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger {
    color: #ffffff !important;
    background: #c84a4a !important;
    border-color: #c84a4a !important;
}

.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
    background: #c58b2d !important;
    border-color: #c58b2d !important;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    border-color: var(--tblx-border) !important;
    color: #274158 !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    background: #eef4f9 !important;
    border-color: #b9ccde !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: var(--tblx-success) !important;
    border-color: var(--tblx-success) !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: var(--tblx-danger) !important;
    border-color: var(--tblx-danger) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f4f9fe !important;
    border-top: 1px solid var(--tblx-border) !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

@media (max-width: 991px) {
    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

/* ==============================================================
   TABLES - PALETTE 1 "DEEP TECH"
============================================================== */
:root {
    --tblx-bg: #f8fbff !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #cbd5e1 !important;
    --tblx-head-bg: #e2e8f0 !important;
    --tblx-head-text: #0b1220 !important;
    --tblx-text: #0f172a !important;
    --tblx-row-alt: #f8fafc !important;
    --tblx-row-hover: #e0f2fe !important;
    --tblx-brand: #2563eb !important;
    --tblx-brand-hover: #1e3a8a !important;
    --tblx-success: #2563eb !important;
    --tblx-danger: #1e3a8a !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

/* ==============================================================
   INVENTORY TABLES - ELEGANT IMPACT HARD LOCK FINAL
============================================================== */
:root {
    --tblx-bg: #f4f8fc !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #d2dde8 !important;
    --tblx-head-bg: #e6edf5 !important;
    --tblx-head-text: #1a334a !important;
    --tblx-text: #273d52 !important;
    --tblx-row-alt: #fbfcfe !important;
    --tblx-row-hover: #eaf3f8 !important;
    --tblx-brand: #2f5d8a !important;
    --tblx-brand-hover: #254a6d !important;
    --tblx-success: #2fa58d !important;
    --tblx-danger: #b85c6a !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    box-shadow: 0 10px 22px rgba(16, 33, 49, 0.12) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
}

.bootstrap-table .table tbody td,
.estilos_generales td {
    color: var(--tblx-text) !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td,
.estilos_generales tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: var(--tblx-success) !important;
    border-color: var(--tblx-success) !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: var(--tblx-danger) !important;
    border-color: var(--tblx-danger) !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

/* ==============================================================
   INVENTORY TABLES - NEO IMPACT V2 FINAL
============================================================== */
:root {
    --tblx-border: #c8d8e8 !important;
    --tblx-head-bg: #dde8f5 !important;
    --tblx-head-text: #10253a !important;
    --tblx-text: #243a50 !important;
    --tblx-row-hover: #e3f5fb !important;
    --tblx-brand: #2563eb !important;
    --tblx-brand-hover: #1f4eb5 !important;
    --tblx-success: #14b8a6 !important;
    --tblx-danger: #c33d64 !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    box-shadow: 0 10px 22px rgba(16, 33, 49, 0.14) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

/* ==============================================================
   TABLE BUTTONS - HARD LOCK FINAL END V2
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #143a53 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary,
.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger,
.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
}

/* ==============================================================
   MOBILE ICON-ONLY HARD LOCK (EOF winner)
============================================================== */
@media (max-width: 767px) {
    body .bootstrap-table .fixed-table-toolbar .btn,
    body .bootstrap-table .fixed-table-toolbar .columns .btn,
    body [id^="toolbar_"] .btn,
    body .bootstrap-table .table tbody td .btn,
    body .bootstrap-table .table tbody td .accion-informe,
    body .estilos_generales tbody td .btn,
    body .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    body .bootstrap-table .fixed-table-toolbar .btn i,
    body .bootstrap-table .fixed-table-toolbar .columns .btn i,
    body [id^="toolbar_"] .btn i,
    body [id^="toolbar_"] .btn .fa,
    body [id^="toolbar_"] .btn .fas,
    body [id^="toolbar_"] .btn .far,
    body [id^="toolbar_"] .btn .fab,
    body [id^="toolbar_"] .btn .ri,
    body .bootstrap-table .table tbody td .btn i,
    body .bootstrap-table .table tbody td .btn .fa,
    body .bootstrap-table .table tbody td .btn .fas,
    body .bootstrap-table .table tbody td .btn .far,
    body .bootstrap-table .table tbody td .btn .fab,
    body .bootstrap-table .table tbody td .btn .ri,
    body .bootstrap-table .table tbody td .accion-informe i,
    body .bootstrap-table .table tbody td .accion-informe .fa,
    body .bootstrap-table .table tbody td .accion-informe .fas,
    body .bootstrap-table .table tbody td .accion-informe .far,
    body .bootstrap-table .table tbody td .accion-informe .fab,
    body .bootstrap-table .table tbody td .accion-informe .ri,
    body .estilos_generales tbody td .btn i,
    body .estilos_generales tbody td .accion-informe i {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    body .bootstrap-table .fixed-table-toolbar .btn small,
    body .bootstrap-table .fixed-table-toolbar .btn span,
    body [id^="toolbar_"] .btn small,
    body [id^="toolbar_"] .btn span,
    body .bootstrap-table .table tbody td .btn small,
    body .bootstrap-table .table tbody td .btn span,
    body .bootstrap-table .table tbody td .accion-informe small,
    body .bootstrap-table .table tbody td .accion-informe span,
    body .estilos_generales tbody td .btn small,
    body .estilos_generales tbody td .btn span,
    body .estilos_generales tbody td .accion-informe small,
    body .estilos_generales tbody td .accion-informe span {
        display: none !important;
    }
}

/* Estado en filas: mantener formato normal en movil */
@media (max-width: 767px) {
    body .bootstrap-table .table tbody td .btn.estado,
    body .estilos_generales tbody td .btn.estado {
        width: auto !important;
        min-width: 78px !important;
        max-width: none !important;
        height: 30px !important;
        min-height: 30px !important;
        max-height: none !important;
        padding: 0 10px !important;
        font-size: 11px !important;
        line-height: 1 !important;
        gap: 4px !important;
        overflow: visible !important;
        white-space: nowrap !important;
    }

    body .bootstrap-table .table tbody td .btn.estado small,
    body .bootstrap-table .table tbody td .btn.estado span,
    body .estilos_generales tbody td .btn.estado small,
    body .estilos_generales tbody td .btn.estado span {
        display: inline !important;
        font-size: 11px !important;
        line-height: 1 !important;
    }
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/vistas.css ***!
  \*****************************************************************************************************************/
/* Estilos para el contenedor de WhatsApp */
.whatsapp-container {
    position: fixed;
    bottom: 20px;
    right: 15px;
    background-color: #25D366; /* Color de fondo de WhatsApp */
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 2; /* Asegura que WhatsApp esté encima de Telegram */
}

/* Estilos para el contenedor de Telegram */
.telegram-container {
    position: fixed;
    bottom: 65px; /* Ajusta la posición para que esté debajo de WhatsApp */
    right: 16px;
    background-color: #0088cc; /* Color de fondo de Telegram */
    padding: 12px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 1; /* Asegura que Telegram esté debajo de WhatsApp */
}

/* Estilos para el enlace de WhatsApp y Telegram */
.whatsapp-link, .telegram-link {
    text-decoration: none;
    color: #fff; /* Color del texto */
    display: flex;
    align-items: center;
}

/* Estilos para el ícono de WhatsApp y Telegram */
.whatsapp-icon, .telegram-icon {
    font-size: 24px; /* Tamaño del ícono */
    margin-right: 10px;
}

/* Estilos para el texto de WhatsApp y Telegram */
.whatsapp-text, .telegram-text {
    font-size: 14px;
}

/* Ocultar los controles de número en Chrome, Safari, Edge y Opera */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Ocultar los controles de número en Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}

/* ==============================================================
   INFORMES - FILTROS DE FECHA (GUIA VISUAL)
============================================================== */
.informes-filtro .card {
    border: 1px solid #cadef3 !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 38px rgba(11, 44, 72, 0.14) !important;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f5faff 100%) !important;
}

.informes-filtro .card-body {
    position: relative;
    padding: 1.15rem 1.2rem 1.05rem 1.2rem !important;
}

.informes-filtro .card-body::before {
    content: "";
    position: absolute;
    top: -48px;
    right: -44px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(48, 141, 222, 0.19) 0%, rgba(48, 141, 222, 0) 68%);
    pointer-events: none;
}

.informes-filtro .card-title {
    color: #0f3557 !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em;
    margin-bottom: 10px !important;
}

.informes-filtro .informe-filtro-guia {
    background: linear-gradient(90deg, #eaf4ff 0%, #f5fbff 100%);
    border: 1px solid #c2dcf4;
    color: #1e4f77;
    border-radius: 12px;
    padding: 9px 11px;
    font-size: 0.89rem;
    font-weight: 700;
}

.informes-filtro .form-label {
    color: #123f62 !important;
    font-weight: 700 !important;
    margin-bottom: 4px !important;
}

.informes-filtro .form-control[type="date"] {
    border: 1px solid #b4d2ed !important;
    border-radius: 11px !important;
    color: #133b5c !important;
    font-weight: 600 !important;
    background: #fdfefe !important;
    min-height: 42px;
}

.informes-filtro .form-control[type="date"]:focus {
    border-color: #2f87d1 !important;
    box-shadow: 0 0 0 0.22rem rgba(47, 135, 209, 0.19) !important;
}

.informes-filtro .text-muted {
    color: #4b6a86 !important;
    font-size: 0.8rem;
    font-weight: 600;
}

#cuerpo .informe-acciones {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

#cuerpo .informe-acciones .page-header {
    margin-right: auto;
    margin-bottom: 0;
    color: #123f62;
    font-weight: 800;
}

#cuerpo .informe-acciones .btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    box-shadow: 0 7px 16px rgba(15, 56, 90, 0.12);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

#cuerpo .informe-acciones .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(15, 56, 90, 0.18);
}

#cuerpo .informe-acciones .btn-outline-danger {
    color: #bb1f36 !important;
    border-color: #d77a87 !important;
    background: #fff6f7 !important;
}

#cuerpo .informe-acciones .btn-outline-primary {
    color: #135c96 !important;
    border-color: #72a8d4 !important;
    background: #f2f9ff !important;
}

#cuerpo .informe-acciones .btn-danger {
    background: linear-gradient(90deg, #d1475e 0%, #b83b50 100%) !important;
    border-color: #b83b50 !important;
}

#cuerpo .accion-informe {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    text-decoration: none !important;
    font-weight: 700;
    font-size: 0.76rem;
    transition: all 0.18s ease;
}

#cuerpo .accion-informe small {
    font-size: inherit;
}

#cuerpo .accion-informe--pdf {
    color: #a7162c !important;
    background: #fff3f5;
    border-color: #f0bdc5;
}

#cuerpo .accion-informe--pdf:hover {
    background: #ffe9ed;
}

#cuerpo .accion-informe--danger {
    color: #8f1629 !important;
    background: #fff1f3;
    border-color: #ebb0ba;
}

#cuerpo .accion-informe--danger:hover {
    background: #ffe4e8;
}

@media (max-width: 991.98px) {
    .informes-filtro .card {
        border-radius: 12px !important;
    }

    #cuerpo .informe-acciones {
        align-items: stretch;
    }

    #cuerpo .informe-acciones .page-header {
        width: 100%;
        margin-bottom: 8px;
    }

    #cuerpo .informe-acciones .btn {
        width: 100%;
    }
}

/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* ================================
   APP.SCSS — ORDEN CORRECTO
================================ */

/* --- Frameworks base --- */

/* --- Plugins de tablas --- */

/* --- jQuery UI --- */

/* --- Alertas & Notificaciones --- */

/* --- Editores --- */

/* --- Iconos extras --- */

/* --- Pickr (Color Picker) --- */

/* --- Estilos personalizados del proyecto --- */

/* --------------------------------------------------------------
   TABLE/UI VISIBILITY FIXES (SAFE LAYER)
   - evita romper diseño global existente
   - corrige texto/íconos invisibles en toolbar y tablas
-------------------------------------------------------------- */
[id^="toolbar_"] .btn,
.bootstrap-table .fixed-table-toolbar .btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-weight: 700 !important;
}

[id^="toolbar_"] .btn i,
.bootstrap-table .fixed-table-toolbar .btn i,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .ri {
    font-size: 14px !important;
    line-height: 1 !important;
    display: inline-block !important;
}

/* Mantener legibles los outline sin forzar texto blanco global */
[id^="toolbar_"] .btn.btn-outline-primary {
    color: #0d6efd !important;
}
[id^="toolbar_"] .btn.btn-outline-success {
    color: #198754 !important;
}
[id^="toolbar_"] .btn.btn-outline-danger {
    color: #dc3545 !important;
}
[id^="toolbar_"] .btn.btn-outline-secondary {
    color: #6c757d !important;
}
[id^="toolbar_"] .btn.btn-outline-warning {
    color: #8a6d1d !important;
}

/* Botones nuevos de exportación (productos/informes) */
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c13f3f !important;
    border-color: #c13f3f !important;
    color: #fff !important;
}

#btn_excel_completo,
#btn_excel_filtro,
#btn_descargar_excel {
    background: #0f8a66 !important;
    border-color: #0f8a66 !important;
    color: #fff !important;
}

/* En acciones de tabla, mantener contraste en todos los módulos */
.bootstrap-table .table .btn {
    font-weight: 600 !important;
}

/* --------------------------------------------------------------
   CRUD COMBOS PRODUCTOS - BOTONES CLAVE
-------------------------------------------------------------- */
#items-administrativos-combos-productos #btn_agregar_item_combo {
    background: linear-gradient(120deg, #2d78bc 0%, #2f8fc5 100%) !important;
    border: 1px solid #2b78b2 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    border-radius: 8px !important;
    box-shadow: 0 6px 14px rgba(28, 90, 136, 0.24) !important;
}

#items-administrativos-combos-productos #btn_agregar_item_combo:hover,
#items-administrativos-combos-productos #btn_agregar_item_combo:focus {
    background: linear-gradient(120deg, #255f94 0%, #2378a7 100%) !important;
    border-color: #225f90 !important;
    color: #ffffff !important;
}

#items-administrativos-combos-productos .combo-item-del {
    background: #d13d3d !important;
    border-color: #d13d3d !important;
    color: #ffffff !important;
}

#items-administrativos-combos-productos .combo-item-del:hover,
#items-administrativos-combos-productos .combo-item-del:focus {
    background: #b82f2f !important;
    border-color: #b82f2f !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   DASHBOARD INVENTORY - KPIS / REPORTES / GRAFICAS
-------------------------------------------------------------- */
.dashboard-inventory-page .dashboard-kpi-card {
    border: 1px solid #c9d9e8 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
}

.dashboard-inventory-page .dashboard-kpi-card .card-body {
    padding: 16px 18px !important;
    color: #f8fbff !important;
}

.dashboard-inventory-page .dashboard-kpi-card:hover,
.dashboard-inventory-page .dashboard-kpi-card:focus-within {
    transform: translateY(-3px);
    box-shadow: 0 14px 24px rgba(13, 30, 47, 0.28) !important;
}

.dashboard-inventory-page .kpi-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.dashboard-inventory-page .kpi-title {
    font-size: 13px;
    letter-spacing: .03em;
    text-transform: uppercase;
    font-weight: 700;
    opacity: .95;
}

.dashboard-inventory-page .kpi-head i {
    font-size: 24px;
    line-height: 1;
}

.dashboard-inventory-page .kpi-value {
    font-size: 30px;
    line-height: 1.05;
    font-weight: 800;
    margin-bottom: 4px;
}

.dashboard-inventory-page .kpi-foot {
    font-size: 12px;
    opacity: .9;
}

.dashboard-inventory-page .kpi-blue { background: linear-gradient(125deg, #1e40af, #2563eb) !important; }
.dashboard-inventory-page .kpi-green { background: linear-gradient(125deg, #0f766e, #14b8a6) !important; }
.dashboard-inventory-page .kpi-rose { background: linear-gradient(125deg, #be185d, #e11d48) !important; }
.dashboard-inventory-page .kpi-amber { background: linear-gradient(125deg, #b45309, #f59e0b) !important; }
.dashboard-inventory-page .kpi-cyan { background: linear-gradient(125deg, #0e7490, #06b6d4) !important; }
.dashboard-inventory-page .kpi-slate { background: linear-gradient(125deg, #334155, #64748b) !important; }
.dashboard-inventory-page .kpi-indigo { background: linear-gradient(125deg, #3730a3, #4f46e5) !important; }
.dashboard-inventory-page .kpi-purple { background: linear-gradient(125deg, #6d28d9, #9333ea) !important; }
.dashboard-inventory-page .kpi-teal { background: linear-gradient(125deg, #0f766e, #0d9488) !important; }

.dashboard-inventory-page .dashboard-report-card {
    border: 1px solid #cfdeec !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%) !important;
}

.dashboard-inventory-page .dashboard-report-card .card-body {
    padding: 16px 18px !important;
}

.dashboard-inventory-page .report-title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #4f6479;
    font-weight: 800;
    margin-bottom: 6px;
}

.dashboard-inventory-page .report-main {
    font-size: 20px;
    font-weight: 800;
    color: #133148;
    margin-bottom: 4px;
}

.dashboard-inventory-page .report-sub {
    font-size: 12px;
    color: #4f6479;
}

.dashboard-inventory-page .dashboard-chart-card {
    border: 1px solid #cfdeec !important;
    border-radius: 16px !important;
}

.dashboard-inventory-page .dashboard-chart-card .card-header {
    background: linear-gradient(90deg, #17324a 0%, #1f4d72 100%) !important;
    color: #f3f9ff !important;
    border: 0 !important;
    border-radius: 16px 16px 0 0 !important;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .02em;
}

.dashboard-inventory-page .dashboard-chart-card .card-body {
    padding: 14px 14px 10px !important;
}

@media (max-width: 991px) {
    .dashboard-inventory-page .kpi-value {
        font-size: 26px;
    }
}

@media (max-width: 576px) {
    .dashboard-inventory-page .dashboard-kpi-card .card-body,
    .dashboard-inventory-page .dashboard-report-card .card-body {
        padding: 14px 14px !important;
    }

    .dashboard-inventory-page .kpi-title {
        font-size: 11px;
    }

    .dashboard-inventory-page .kpi-value {
        font-size: 24px;
    }
}

/* --------------------------------------------------------------
   LOGIN / REGISTRO - BOTONES Y LINKS
-------------------------------------------------------------- */
.btn-auth-main {
    min-height: 44px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .02em !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 16px rgba(30, 64, 175, 0.24) !important;
}

.btn-auth-main:hover,
.btn-auth-main:focus {
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(30, 64, 175, 0.3) !important;
}

.btn-auth-link {
    color: #1d4ed8 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border-bottom: 1px dashed rgba(29, 78, 216, 0.4);
}

.btn-auth-link:hover,
.btn-auth-link:focus {
    color: #1e40af !important;
    border-bottom-color: rgba(30, 64, 175, 0.65);
}


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