/*!****************************************************************************************************************!*\
  !*** 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;
  --color-bg-page: #100f1c;
  --color-bg-page-2: #0c0b18;
  --color-surface: rgba(22, 21, 38, 0.65);
  --color-surface-strong: rgba(18, 17, 32, 0.94);
  --color-surface-soft: rgba(255, 255, 255, 0.04);
  --color-border-soft: rgba(0, 234, 211, 0.08);
  --color-border-strong: rgba(0, 234, 211, 0.25);
  --color-accent-neon: #00e2ff;
  --color-text-primary: #f2f2f2;
  --color-text-secondary: #a4a3b4;
  --color-accent: #00ead3;
  --color-accent-soft: rgba(47, 128, 255, 0.1);
  --color-accent-secondary: #4d6bff;
  --shadow-soft: 0 16px 48px rgba(0, 0, 0, 0.45);
  --shadow-glow: 0 0 18px rgba(0, 226, 255, 0.18);
  --radius-lg: 16px;
  --radius-md: 10px;
}

html {
  scrollbar-width: thin;
  scrollbar-color: var(--color-accent) transparent;
}

html::-webkit-scrollbar {
  width: 10px;
  height: 10px;
  background-color: var(--color-bg-page) !important;
}

html::-webkit-scrollbar-thumb {
  background: rgba(47, 128, 255, 0.55) !important;
  border-radius: 5px;
  border: none !important;
}

html::-webkit-scrollbar-track {
  background-color: transparent !important;
  border-radius: 5px;
}

html::-webkit-scrollbar-thumb:hover,
html::-webkit-scrollbar-thumb:active {
  background: rgba(47, 128, 255, 0.78) !important;
}

body {
  font-family: "Space Grotesk", "Inter", "Open Sans", sans-serif;
  color: var(--color-text-primary);
  background:
    radial-gradient(circle at 18% 14%, rgba(47, 128, 255, 0.18), transparent 22%),
    radial-gradient(circle at 82% 10%, rgba(0, 226, 255, 0.1), transparent 18%),
    radial-gradient(circle at 50% 100%, rgba(77, 107, 255, 0.08), transparent 28%),
    linear-gradient(135deg, #0a1020 0%, #101a31 38%, #16243d 64%, #0a1020 100%);
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
  isolation: isolate;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 0%, rgba(47, 128, 255, 0.18), transparent 34%),
    radial-gradient(circle at 50% 18%, rgba(0, 226, 255, 0.06), transparent 24%),
    radial-gradient(
      circle at 85% 100%,
      rgba(77, 107, 255, 0.12),
      transparent 36%
    );
  z-index: -1;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
  -webkit-text-fill-color: #e9f7ff !important;
  caret-color: #e9f7ff !important;
  border: 1px solid rgba(47, 128, 255, 0.35) !important;
  -webkit-box-shadow: 0 0 0 1000px rgba(22, 21, 38, 0.92) inset !important;
  box-shadow: 0 0 0 1000px rgba(22, 21, 38, 0.92) inset !important;
  transition:
    background-color 99999s ease-out 0s,
    color 99999s ease-out 0s;
}

input:autofill,
textarea:autofill,
select:autofill {
  color: #e9f7ff !important;
  background-color: rgba(22, 21, 38, 0.92) !important;
}

input,
textarea,
select {
  color-scheme: dark;
}

select,
option,
optgroup {
  background-color: var(--color-surface-strong) !important;
  color: var(--color-text-primary) !important;
}

a {
  color: var(--color-accent);
  text-decoration: none;
}

/* a:hover {
    color: #48ca55;
    text-decoration: none;
} */

h1 {
  color: var(--color-text-primary);
}

h2,
h3,
h4,
h5,
h6 {
  font-family: "Inter", sans-serif;
  color: var(--color-text-primary);
}

/*--------------------------------------------------------------
# Main
--------------------------------------------------------------*/
#main {
  /* parte de abajo del navbar, (tittle)*/
  background-color: transparent;
  margin-top: 20px;
  padding: 24px 32px;
  transition: all 0.3s;
  overflow-x: auto;
  color: var(--color-text-primary);
}

#main::-webkit-scrollbar {
  width: 10px;
  height: 10px;
  background-color: #050b14 !important;
}

#main::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1) !important;
  border-radius: 5px;
  border: none !important;
}

#main::-webkit-scrollbar-track {
  background-color: rgba(255, 255, 255, 0.05) !important;
  border-radius: 5px;
}

#main {
  scrollbar-width: thin;
  scrollbar-color: var(--color-accent) transparent;
}

#main::-webkit-scrollbar-thumb:hover,
#main::-webkit-scrollbar-thumb:active {
  background: rgba(255, 255, 255, 0.2) !important;
}

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

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

.pagetitle h1 {
  font-size: 34px;
  margin-bottom: 0;
  font-weight: 600;
  color: var(--color-accent) !important;
}

.logo span {
  color: var(--color-text-primary) !important;
}

@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;
  }
}
/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: 15px;
  z-index: 99999;
  background: var(--color-surface-strong);
  width: 40px;
  height: 40px;
  border-radius: 12px;
  transition: all 0.4s;
  box-shadow: var(--shadow-soft);
}

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

.back-to-top:hover {
  background: rgba(47, 128, 255, 0.08);
  color: var(--color-accent);
  border: 1px solid var(--color-border-strong);
  box-shadow: var(--shadow-soft);
}

.back-to-top.active {
  visibility: visible;
  opacity: 1;
}
/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
/* Estilo base del logo */
.logo {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Imagen del logo */
.logo img {
  width: 48px;
  height: 48px;
  max-height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--color-border-soft);
}

/* Texto del logo */
.logo span {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-accent); /* azul cielo */
  font-family: "Nunito", sans-serif;
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/* Para pantallas grandes */
@media (min-width: 1200px) {
  .logo {
    width: 210px;
  }
}

/* Para tablets y celulares */
@media (max-width: 1199.98px) {
  .logo {
    width: auto;
    max-width: 180px;
  }

  .logo img {
    width: 30px;
    height: 30px;
    max-height: 40px;
  }

  .logo span {
    font-size: 16px;
  }
}

/* Para celulares pequeños (menos de 576px) */
@media (max-width: 575.98px) {
  .logo {
    max-width: 140px;
  }

  .logo span {
    font-size: 14px;
  }
}

/*header*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 60px;
  z-index: 997;
  transition: all 0.5s;
  padding: 20px;
  background: rgba(18, 17, 32, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-border-soft);
  margin: 0;
  border-radius: 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  border-right: none;
}

.header .toggle-sidebar-btn {
  /*Menu hamburguesa*/
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  font-size: 32px;
  padding: 0 10px;
  cursor: pointer;
  color: var(--color-text-primary) !important;
  transition: 0.3s;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.header .search-bar {
  padding: 0 10px;
}

.language-switcher {
  margin-left: 0 !important;
  margin-right: auto;
}

.language-toggle {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  color: var(--color-text-primary) !important;
  border: 1px solid var(--color-border-soft) !important;
  background-color: rgba(5, 18, 32, 0.42) !important;
  font-family:
    "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji",
    "Twemoji Mozilla", "Open Sans", sans-serif;
  box-shadow: var(--shadow-soft);
}

.language-toggle:hover,
.language-toggle:focus,
.language-toggle.show {
  color: #ffffff !important;
  border-color: var(--color-border-strong) !important;
  background-color: rgba(47, 128, 255, 0.08) !important;
  box-shadow: var(--shadow-soft) !important;
}

.language-toggle::after {
  margin-left: 2px;
}

.language-switcher .language-menu {
  min-width: 180px;
}

.language-switcher .language-option {
  gap: 10px;
  font-family:
    "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji",
    "Twemoji Mozilla", "Open Sans", sans-serif;
}

.language-switcher .language-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  font-size: 1rem;
  line-height: 1;
}

.language-switcher .language-text {
  line-height: 1;
}

.language-switcher .language-option.active {
  background-color: rgba(47, 128, 255, 0.08) !important;
  color: var(--color-accent) !important;
}

.language-switcher .language-option.active .language-text {
}

#language option {
  background-color: var(--color-surface-strong);
  color: #ffffff;
  padding: 10px;
  font-family:
    "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji",
    "Twemoji Mozilla", "Open Sans", sans-serif;
}
@media (max-width: 1199px) {
  .header .search-bar {
    position: fixed;
    top: 50px;
    left: 0;
    right: 0;
    padding-left: 20px;
    box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.3);
    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%;
}

inputHeader,
selectHeader {
  background-color: rgba(0, 0, 0, 0.2) !important;
  color: var(--color-text-primary) !important;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: 8px;
}

.header .search-form input {
  font-size: 14px;
  color: var(--color-text-primary);
  padding: 7px 38px 7px 8px;
  transition: 0.3s;
  width: 100%;
  font-family: "Inter", sans-serif;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.5px;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: 8px;
}

.header .search-form input::placeholder {
  /*texto a buscar*/
  color: var(--color-text-secondary) !important;
  font-weight: 400;
  font-style: italic;
}

.header .search-form input:focus,
.header .search-form input:hover {
  outline: none;
  box-shadow: 0 0 0 0.2rem rgba(47, 128, 255, 0.15);
}

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

.header .search-form button i {
  color: var(--color-accent);
}

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

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

.header-nav .nav-icon {
  font-size: 22px;
  color: var(--color-text-primary);
  margin-right: 25px;
  position: relative;
  transition: 0.3s;
}

.header-nav .nav-icon:hover {
  color: var(--color-accent);
}

/*nav derecho, profile*/
.header-nav .nav-profile {
  color: var(--color-text-primary) !important;
}

.header-nav .nav-profile .profile-avatar {
  width: 44px;
  height: 44px;
  min-width: 44px;
  margin-right: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  object-fit: cover;
}

.header-nav .nav-profile img.profile-avatar {
  border: 1px solid var(--color-accent);
}

.header-nav .nav-profile .profile-initials {
  background: var(--color-surface-strong) !important;
  border: 1px solid var(--color-accent);
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

.header-nav .nav-profile:hover .profile-avatar {
  border-color: var(--color-accent);
}

.header-nav .nav-profile .navbar-profile-summary {
  min-width: 0;
  max-width: 240px;
  line-height: 1.1;
}

.header-nav .nav-profile .navbar-profile-summary > span {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.header-nav .nav-profile .navbar-profile-business {
  color: var(--color-text-primary);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

.header-nav .nav-profile .navbar-profile-name {
  color: var(--color-text-secondary);
  font-size: 12px;
  font-weight: 600;
  text-transform: capitalize;
}

.header-nav .nav-profile .navbar-profile-email {
  color: var(--color-accent);
  font-size: 12px;
  font-weight: 500;
}

.header-nav .badge-number {
  position: absolute;
  inset: -2px -5px auto auto;
  font-weight: normal;
  font-size: 12px;
  padding: 3px 6px;
  background: var(--color-accent);
  color: #ffffff;
  border-radius: 10px;
}

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

.header-nav .notifications .notification-item {
  display: flex;
  align-items: center;
  padding: 15px 10px;
  transition: 0.3s;
  background-color: transparent;
  border-bottom: 1px solid var(--color-border-soft);
}

.header-nav .notifications .notification-item i {
  margin: 0 20px 0 10px;
  font-size: 24px;
  color: #007bff;
}

.header-nav .notifications .notification-item h4 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 5px;
  color: #003366;
}

.header-nav .notifications .notification-item:hover {
  background-color: rgba(47, 128, 255, 0.06);
}

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

.header-nav .messages .message-item {
  padding: 15px 10px;
  transition: 0.3s;
  background-color: transparent;
  border-bottom: 1px solid var(--color-border-soft);
}

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

.header-nav .messages .message-item img {
  margin: 0 20px 0 10px;
  max-height: 40px;
  border-radius: 50%;
  border: 2px solid var(--color-accent); /* Borde azul brillante */
}

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

.header-nav .messages .message-item:hover {
  background-color: rgba(47, 128, 255, 0.06);
}

.header-nav .profile {
  min-width: 240px;
  padding-bottom: 0;
  top: 8px !important;
  background-color: var(--color-surface-strong);
  border: 1px solid var(--color-border-soft);
  border-radius: 8px;
  box-shadow: var(--shadow-soft);
}

.header-nav .profile .dropdown-header h6 {
  font-size: 18px;
  margin-bottom: 0;
  font-weight: 600;
  color: var(--color-accent);
}

.header-nav .profile .dropdown-header span {
  font-size: 14px;
  color: var(--color-text-secondary);
}

.header-nav .profile .dropdown-item {
  font-size: 14px;
  padding: 10px 15px;
  transition: 0.3s;
  color: var(--color-text-primary);
  background-color: transparent;
}

.header-nav .profile .dropdown-item i {
  margin-right: 10px;
  font-size: 18px;
  line-height: 0;
  color: var(--color-accent);
  transition: 0.3s;
}

.header-nav .profile .dropdown-item:hover {
  background-color: rgba(47, 128, 255, 0.06);
  color: var(--color-accent);
}

/*forzar el profile*/
.dropdown-menu,
.navbar .dropdown-menu {
  background-color: var(--color-surface-strong) !important;
  border: 1px solid var(--color-border-soft) !important;
  color: var(--color-text-primary) !important;
  box-shadow: var(--shadow-soft) !important;
  padding: 0.5rem 0;
  border-radius: 8px;
}

.dropdown-item,
.navbar .dropdown-item {
  color: #e9f7ff !important;
  background-color: transparent !important;
  transition: all 0.2s ease;
  padding: 10px 20px;
}

.dropdown-item:hover,
.dropdown-item:focus,
.navbar .dropdown-item:hover {
  background-color: rgba(47, 128, 255, 0.06) !important;
  color: var(--color-accent) !important;
  padding-left: 25px;
}

.dropdown-divider {
  border-top: 1px solid var(--color-border-soft) !important;
  margin: 0.5rem 0;
}
.header-nav .profile .dropdown-header .emailnav {
  color: #e9f7ff !important;
}

.header-nav .profile.dropdown-menu,
.header-nav .profile {
  max-height: none !important;
  overflow: visible !important;
}

.header-nav .profile.dropdown-menu .dropdown-header,
.header-nav .profile .dropdown-header {
  overflow: visible !important;
}

.header-nav .profile.dropdown-menu .dropdown-item,
.header-nav .profile .dropdown-item {
  white-space: normal;
}


/* ======= SIDEBAR BASE ======= */
.sidebar {
  position: fixed;
  top: 60px;
  left: 0;
  bottom: 0;
  width: 300px;
  z-index: 1000 !important;
  padding: 20px 14px;
  overflow-y: auto;
  background:
    linear-gradient(180deg, rgba(10, 12, 24, 0.98), rgba(8, 10, 18, 0.94)),
    rgba(8, 10, 18, 0.96) !important;
  border-radius: 0;
  backdrop-filter: blur(18px) saturate(120%);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  border-right: 1px solid rgba(0, 226, 255, 0.14);
  transition: all 0.3s ease-in-out;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 226, 255, 0.85) rgba(5, 11, 20, 0.88);
  box-shadow:
    14px 0 40px rgba(0, 0, 0, 0.42),
    inset -1px 0 0 rgba(0, 226, 255, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.03),
    0 0 0 1px rgba(0, 226, 255, 0.06),
    0 0 26px rgba(0, 226, 255, 0.08);
}

/* ======= SCROLLBAR CUSTOM ======= */
.sidebar::-webkit-scrollbar {
  width: 10px;
  height: 8px;
  background-color: rgba(5, 11, 20, 0.9);
}

.sidebar::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(0, 226, 255, 0.95), rgba(47, 128, 255, 0.88));
  border-radius: 999px;
  border: 2px solid rgba(5, 11, 20, 0.95);
  box-shadow: 0 0 10px rgba(0, 226, 255, 0.28);
}

.sidebar::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(110, 244, 255, 1), rgba(0, 226, 255, 0.95));
}

.sidebar::-webkit-scrollbar-track {
  background: rgba(5, 11, 20, 0.55);
}

/* ======= RESPONSIVE BEHAVIOR ======= */
@media (max-width: 1199px) {
  .sidebar {
    left: -300px;
  }

  .toggle-sidebar .sidebar {
    left: 0;
  }

  .sidebar-mobile-open .sidebar {
    left: 0 !important;
  }

  .toggle-sidebar:not(.sidebar-mobile-open) .sidebar {
    left: -300px !important;
  }
}

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

  .toggle-sidebar #main,
  .toggle-sidebar #footer {
    margin-left: 80px;
  }

  .sidebar {
    width: 300px;
    padding: 20px 14px;
  }

  .toggle-sidebar .sidebar {
    left: 0;
    width: 80px;
    padding: 20px 8px;
    overflow-x: hidden;
  }

  .sidebar-nav .nav-link {
    justify-content: flex-start;
    padding: 12px 15px;
  }

  .sidebar-nav .nav-link i {
    margin-right: 10px;
  }

  .sidebar-nav .nav-link span,
  .sidebar-nav .nav-link .bi-chevron-down {
    display: block;
  }

  .toggle-sidebar .sidebar-nav .nav-link {
    justify-content: center;
    padding: 12px 10px;
  }

  .toggle-sidebar .sidebar-nav .nav-link i {
    margin-right: 0;
  }

  .toggle-sidebar .sidebar-nav .nav-link span,
  .toggle-sidebar .sidebar-nav .nav-link .bi-chevron-down,
  .toggle-sidebar .sidebar-nav .nav-content {
    display: none !important;
  }

  .header .search-bar {
    min-width: 250px; /* Aquí sí le damos tamaño grande */
    margin-left: auto; /* El resorte que empuja a la derecha */
    margin-right: 15px;
    display: block;
  }

  .language-switcher {
    margin-left: 0;
    margin-right: 25px;
  }
}


.ui-table-detail-panel {
    border-radius: 16px;
    background:
        radial-gradient(circle at top left, rgba(0, 234, 211, 0.06), transparent 30%),
        linear-gradient(180deg, rgba(14, 18, 28, 0.98) 0%, rgba(10, 13, 22, 0.99) 100%);
    padding: 1rem 1rem 0.9rem;
    border: 1px solid rgba(0, 234, 211, 0.12);
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.025),
      0 10px 24px rgba(0, 0, 0, 0.22);
}

.ui-table-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.95rem;
}

.ui-table-detail-item {
    display: flex;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0.85rem;
    padding: 0.8rem 0.9rem !important;
    border-radius: 12px;
    border: 1px solid rgba(0, 234, 211, 0.08);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.05),
      0 0 0 1px rgba(0, 234, 211, 0.02);
    text-align: left;
}

.ui-table-detail-item--full {
    grid-column: 1 / -1;
}

.ui-table-detail-item--statuscompact {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    justify-self: stretch;
    flex: 1 1 auto;
}

.ui-table-detail-text-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start !important;
    gap: 2px;
    min-width: 0;
}

.ui-table-detail-label {
    font-size: 0.67rem !important;
    text-transform: uppercase;
    color: rgba(0, 234, 211, 0.84) !important;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 0;
    text-align: left !important;
}

.ui-table-detail-value {
    color: #f4fbff;
    font-size: 0.92rem;
    font-weight: 500;
    word-break: break-word;
    white-space: normal !important;
    text-align: left !important;
}

.bootstrap-table .detail-view td {
    padding: 0 !important;
    background:
        radial-gradient(circle at top left, rgba(0, 234, 211, 0.05), transparent 32%),
        linear-gradient(180deg, rgba(11, 14, 22, 0.98) 0%, rgba(7, 10, 17, 0.99) 100%) !important;
    border-bottom: 1px solid rgba(0, 234, 211, 0.08) !important;
}

.table-responsive,
.bootstrap-table .fixed-table-container {
  background:
    linear-gradient(180deg, rgba(18, 21, 38, 0.96), rgba(8, 10, 18, 0.98));
  border: 1px solid rgba(0, 226, 255, 0.14);
  border-radius: 20px;
  box-shadow:
    0 20px 52px rgba(0, 0, 0, 0.3),
    0 0 0 1px rgba(47, 128, 255, 0.08),
    0 0 22px rgba(0, 226, 255, 0.1);
  overflow: hidden;
}

.table,
.bootstrap-table table {
  color: var(--color-text-primary);
  margin-bottom: 0;
}

.table > :not(caption) > * > * {
  background-color: transparent;
  border-bottom-color: rgba(0, 226, 255, 0.14);
}

.table thead th,
.bootstrap-table thead th {
  background:
    linear-gradient(180deg, rgba(24, 36, 58, 0.98), rgba(8, 12, 22, 0.98));
  color: #f3fdff;
  border-bottom: 1px solid rgba(0, 234, 211, 0.42) !important;
  box-shadow:
    inset 0 -1px 0 rgba(0, 234, 211, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
  padding: 1rem 1rem;
}

.table tbody tr,
.bootstrap-table tbody tr {
  transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.table tbody tr:hover,
.bootstrap-table tbody tr:hover {
  background: rgba(0, 234, 211, 0.06);
  box-shadow:
    inset 0 0 0 1px rgba(0, 234, 211, 0.12),
    0 0 0 1px rgba(47, 128, 255, 0.04);
}

.table tbody td,
.bootstrap-table tbody td {
  border-top-color: rgba(0, 226, 255, 0.08);
  padding: 1rem 1rem;
  vertical-align: middle;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: rgba(255, 255, 255, 0.03);
  color: var(--color-text-primary);
}

.table-hover > tbody > tr:hover > * {
  --bs-table-accent-bg: rgba(0, 226, 255, 0.06);
  color: var(--color-text-primary);
}

.bootstrap-table .fixed-table-pagination {
  padding: 1rem 1.15rem;
  border-top: 1px solid rgba(0, 226, 255, 0.12);
  background: rgba(8, 10, 18, 0.86);
}

/* ======= NAV STYLES ======= */
.sidebar-nav {
  padding: 2px;
  margin: 2px;
  padding: 0;
  margin: 0;
  list-style: none;
  min-height: calc(100vh - 20px);
}

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

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

.sidebar-nav .nav-heading {
  font-size: 12px;
  font-size: 11px;
  text-transform: uppercase;
  color: var(--color-text-primary);
  font-weight: 600;
  margin: 16px 0 10px 15px;
  border-left: 4px solid rgba(0, 226, 255, 0.6);
  border-radius: 6px;
  padding-left: 8px;
  color: var(--color-text-secondary);
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 20px 0 10px 15px;
  padding: 0;
  border: 0;
}

/* ======= NAV LINKS ======= */
.sidebar-nav .nav-link {
  display: flex;
  align-items: center;
  font-size: 15px;
  font-weight: 600;
  color: #ffffff;
  background-color: transparent;
  padding: 12px 15px;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  box-shadow: none;
  transition:
    background-color 0.3s,
    color 0.3s,
    box-shadow 0.3s,
    transform 0.3s;
  will-change: transform, box-shadow;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: all 0.25s ease-out;
  position: relative;
}

.sidebar-nav .nav-link:hover {
  background: linear-gradient(
    135deg,
    rgba(47, 128, 255, 0.14),
    rgba(0, 226, 255, 0.1)
  );
  color: #ffffff;
  box-shadow: none;
  border-color: rgba(0, 226, 255, 0.22);
  color: var(--color-text-primary);
  background-color: var(--color-surface-soft);
}

/* iconos nav  */
.sidebar-nav .nav-link i {

  margin-right: 12px;
}

.sidebar-nav .nav-link.collapsed {
  background-color: transparent;
  color: #ffffff;
  border-color: transparent;
}

/*cuando no esta sin seleccionar*/
.sidebar-nav .nav-link.collapsed {
  background-color: rgba(22, 21, 38, 0.86);
}

.sidebar-nav .nav-link.collapsed:hover {
  color: var(--color-text-primary);
}
/*HOVER*/
.sidebar-nav .nav-link:hover,

/* Active state */
.sidebar-nav .nav-link:not(.collapsed),
.sidebar-nav .nav-link.active {
  background: linear-gradient(135deg, rgba(6, 18, 40, 0.45), rgba(0, 226, 255, 0.07));
  color: #ffffff;
  color: #fff;
  background: linear-gradient(90deg, var(--color-accent-soft) 0%, rgba(0, 226, 255, 0.05) 100%);
  border: 1px solid rgba(0, 226, 255, 0.34);
  box-shadow: none;
}

/* Icons */
.sidebar-nav .nav-link i {
  font-size: 18px;
  margin-right: 10px;
  color: #ffffff;
  transition: all 0.25s ease-out;
}

.sidebar-nav .nav-link:hover i {
  color: var(--color-accent);
  transform: scale(1.05);
  transition: all 0.3s ease;
}

.sidebar-nav .nav-link:hover i,
.sidebar-nav .nav-link:not(.collapsed) i,
.sidebar-nav .nav-link.active i {
  color: #ffffff !important;
  transform: scale(1.1);
  transition: all 0.3s ease;
}

.sidebar-nav .nav-link.collapsed i {
  color: #ffffff;
}

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

.sidebar-nav .nav-link:not(.collapsed) .bi-chevron-down {
  transform: rotate(180deg);
}

.sidebar-nav .nav-link span {
  transition: all 0.3s ease;
}

.sidebar-nav .nav-link:hover span {
  color: var(--color-accent);
}

.sidebar-nav .nav-content a {
  color: #ffffff;
  border: 1px solid transparent;
}

.sidebar-nav .nav-content .sidebar-email-template-link {
  display: flex;
  align-items: center;
  width: 100%;
  color: #ffffff;
  background: transparent;
  border: 1px solid transparent;
  padding: 10px 0 10px 28px;
  font: inherit;
  text-align: left;
  position: relative;
  transition: 0.3s;
}

.sidebar-nav .nav-content .sidebar-email-template-link::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(0, 226, 255, 0.78);
  transform: translateY(-50%);
  transition: all 0.3s;
  pointer-events: none;
}

.sidebar-nav .nav-content .sidebar-email-template-link:hover,
.sidebar-nav .nav-content .sidebar-email-template-link:focus {
  background: rgba(0, 226, 255, 0.06);
  color: #ffffff;
  border-radius: 8px;
  outline: none;
}

.sidebar-nav .nav-content .sidebar-email-template-link:hover::before,
.sidebar-nav .nav-content .sidebar-email-template-link:focus::before {
  background: rgba(0, 226, 255, 0.95);
  transform: translateY(-50%) scale(1.05);
}



/* ======= SUBMENÚ ======= */
.sidebar-nav .nav-content {
  padding: 5px 0 0;
  margin: 0;
  padding: 5px 0 5px 15px;
  margin: 0 0 8px 0;
  list-style: none;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  margin-top: -8px; /* Pull up under the parent */
  border-top: 0;
}

.sidebar-nav .nav-content a {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
  padding: 10px 0 10px 28px;
  font-weight: 500;
  transition: 0.3s;
  position: relative;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

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

.sidebar-nav .nav-content a::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(0, 226, 255, 0.78);
  transform: translateY(-50%);
  transition: all 0.3s;
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
  background: rgba(0, 226, 255, 0.06);
  color: #ffffff;
  border-radius: 8px;
}

.sidebar-nav .nav-link,
.sidebar-nav .nav-content a {
  position: relative;
}

.sidebar-nav .nav-content a::before {
  pointer-events: none;
}

.sidebar-nav .nav-content a:hover::before,
.sidebar-nav .nav-content a.active::before {
  background: rgba(0, 226, 255, 0.95);
  transform: translateY(-50%) scale(1.05);
}

.sidebar-nav .nav-link.active i {
  color: #ffffff !important;
  text-shadow: none;
}

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

.sidebar-nav .nav-content a i {
  color: rgba(0, 226, 255, 0.78);
  display: none; /* Hide old icon */
}

/*--------------------------------------------------------------
# Dashboard
--------------------------------------------------------------*/
/*!*--------------------------------------------------------------*/
/*# 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;
}

/*--------------------------------------------------------------
# F.A.Q Page
--------------------------------------------------------------*/
.faq .basic h6 {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-accent);
}

.faq .basic p {
  color: var(--color-text-secondary);
}

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

.contact .info-box i {
  font-size: 38px;
  line-height: 0;
  color: var(--color-accent);
}

.contact .info-box h3 {
  font-size: 20px;
  color: var(--color-text-primary);
  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: rgba(218, 54, 51, 0.2);
  text-align: left;
  padding: 15px;
  margin-bottom: 24px;
  font-weight: 600;
}

.contact .php-email-form .sent-message {
  display: none;
  color: #fff;
  background: rgba(35, 134, 54, 0.2);
  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 var(--color-accent);
  border-top-color: rgba(255, 255, 255, 0.2);
  -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: var(--color-accent);
}

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

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

.contact .php-email-form button[type="submit"] {
  background: linear-gradient(90deg, var(--color-accent-secondary), var(--color-accent));
  border: 0;
  padding: 10px 30px;
  color: #fff;
  transition: 0.4s;
  border-radius: 4px;
}

.contact .php-email-form button[type="submit"]:hover {
  filter: brightness(1.05);
}

@-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: var(--color-accent);
  margin-bottom: 0;
  line-height: 150px;
}

.error-404 h2 {
  font-size: 24px;
  font-weight: 700;
  color: var(--color-text-primary);
  margin-bottom: 30px;
}

.error-404 .btn {
  background: linear-gradient(90deg, var(--color-accent-secondary), var(--color-accent));
  color: #fff;
  padding: 8px 30px;
}

.error-404 .btn:hover {
  filter: brightness(1.05);
}

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

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
  padding: 20px 0;
  font-size: 14px;
  transition: all 0.3s;
  background-color: transparent;
  border-top: 1px solid rgba(47, 128, 255, 0.12);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}

.footer .copyright {
  text-align: center;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
}

.footer .credits {
  padding-top: 5px;
  text-align: center;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}

input[type="checkbox"] {
  width: 20px;
  height: 20px;
  accent-color: var(--color-accent);
  cursor: pointer;
  border-radius: 6px;
  background-color: rgba(5, 18, 32, 0.42) !important;
  border: 1px solid var(--color-border-soft) !important;
}

input[type="checkbox"] {
  border: 1px solid var(--color-border-soft);
  border-radius: 6px;
}

/*/* Hover */
input[type="checkbox"]:hover {
  border-color: var(--color-accent);
}

/* Cuando está marcado */
input[type="checkbox"]:checked {
  border-color: var(--color-accent) !important;
  background-color: transparent !important;
}

input,
textarea,
select {
  border: 1px solid var(--color-border-soft) !important;
  border-radius: 8px;
  padding: 10px;
  font-size: 14px;
  color: var(--color-text-primary);
  background-color: rgba(5, 18, 32, 0.42);
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--color-accent) !important;
  box-shadow: 0 0 0 2px rgba(47, 128, 255, 0.15) !important;
  background-color: rgba(5, 18, 32, 0.58);
}
/* estilos de los alert */
div:where(.swal2-container) div:where(.swal2-popup) {
  background-color: var(--color-surface-strong) !important;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6) !important;
  padding: 2em !important;
}

div:where(.swal2-container) .swal2-title {
  color: #ffffff !important;
  font-family: "Poppins", sans-serif !important;
  font-weight: 700 !important;
}
div:where(.swal2-container) .swal2-html-container {
  color: var(--color-text-secondary) !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 1rem !important;
}

div:where(.swal2-container) .swal2-confirm {
  background-color: #007bff !important; /* Azul más brillante y estándar para confirmación */
  border: none !important;
  color: #ffffff !important; /* Texto blanco para máximo contraste */
  font-weight: 600 !important;
  border-radius: 8px !important;
  padding: 10px 30px !important;
  transition: all 0.3s ease !important;
}

div:where(.swal2-container) .swal2-confirm:hover {
  background-color: #0056b3 !important;
  box-shadow: 0 0 15px rgba(0, 123, 255, 0.5) !important;
}

div:where(.swal2-container) .swal2-cancel {
  background-color: transparent !important;
  border: 1px solid #ff6b6b !important; /* Rojo claro para alto contraste en fondo oscuro */
  color: #ff6b6b !important; /* Texto rojo claro */
  font-weight: 600 !important;
  border-radius: 8px !important;
  transition: all 0.3s ease !important;
}

div:where(.swal2-container) .swal2-cancel:hover {
  color: #ffffff !important;
  background-color: #ff6b6b !important;
}

div:where(.swal2-icon).swal2-success {
  border-color: var(--color-accent) !important;
  color: var(--color-accent) !important;
}

div:where(.swal2-icon).swal2-success .swal2-success-ring {
  border: 0.25em solid rgba(47, 128, 255, 0.22) !important;
}

div:where(.swal2-icon).swal2-success [class^="swal2-success-line"] {
  background-color: var(--color-accent) !important;
  box-shadow: 0 0 10px rgba(47, 128, 255, 0.28) !important;
}

div:where(.swal2-container) .swal2-loader {
  border-color: var(--color-accent) transparent var(--color-accent) transparent !important;
}

div:where(.swal2-container).swal-loading-overlay {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

div:where(.swal2-container).swal-loading-overlay
  div:where(.swal2-popup).swal-loading-popup {
  box-shadow:
    0 0 35px rgba(47, 128, 255, 0.14),
    0 18px 48px rgba(0, 0, 0, 0.55) !important;
}

/* =========================================
   FIX: AUTOCOMPLETADO (Chrome/Edge/Safari)
   ========================================= */

/* Seleccionamos el estado 'autofill' del input */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  /* 1. CAMBIAR EL COLOR DE LA LETRA */
  /* Usamos esta propiedad específica de Webkit para forzar el blanco */
  -webkit-text-fill-color: #e9f7ff !important;

  -webkit-box-shadow: 0 0 0 1000px rgba(22, 21, 38, 0.95) inset !important;

  font-family: "Barlow", sans-serif !important; /* O la fuente que elegiste */
  transition: background-color 5000s ease-in-out 0s;
}

/* --------------------------------------------------------------
# Responsive refinements (mobile/tablet)
-------------------------------------------------------------- */
@media (max-width: 991.98px) {
  #main {
    padding: 16px 14px;
  }

  .pagetitle h1 {
    font-size: 1.75rem;
    line-height: 1.2;
  }

  .header {
    padding: 10px 12px;
    border-right: 0;
  }

  .header .toggle-sidebar-btn {
    min-width: 44px;
    min-height: 44px;
    font-size: 28px;
    padding: 0 8px;
  }

  .header-nav .nav-icon {
    margin-right: 12px;
  }

  .header-nav .nav-profile .profile-avatar {
    width: 40px;
    height: 40px;
    min-width: 40px;
  }

  .header-nav .nav-profile .navbar-profile-summary {
    max-width: 170px;
  }

  .logo .logo-text {
    max-width: 110px;
  }

  .sidebar {
    width: 280px;
    padding: 14px 10px;
  }

  .toggle-sidebar .sidebar {
    left: 0;
  }

  .sidebar-mobile-open .sidebar {
    left: 0 !important;
  }

  .toggle-sidebar:not(.sidebar-mobile-open) .sidebar {
    left: -280px !important;
  }
}

@media (max-width: 767.98px) {
  body {
    background-attachment: scroll;
  }

  body::before {
    opacity: 0.08;
  }

  #main {
    padding: 12px 10px;
  }

  .pagetitle h1 {
    font-size: 1.35rem;
  }

  .header .search-bar {
    padding-left: 10px;
    padding-right: 10px;
  }

  .logo .logo-text {
    max-width: 84px;
  }

  .header-nav .nav-profile .profile-avatar {
    width: 34px;
    height: 34px;
    min-width: 34px;
  }

  .header-nav .nav-profile .navbar-profile-summary {
    max-width: 120px;
  }

  .sidebar {
    width: 260px;
    left: -260px;
    padding: 14px 10px;
    border-right-width: 2px;
    box-shadow:
      8px 0 24px rgba(0, 0, 0, 0.22),
      inset -1px 0 0 rgba(47, 128, 255, 0.1),
      0 0 0 1px rgba(0, 226, 255, 0.08);
  }

  .toggle-sidebar .sidebar {
    left: 0;
  }

  .sidebar-mobile-open .sidebar {
    left: 0 !important;
  }

  .toggle-sidebar:not(.sidebar-mobile-open) .sidebar {
    left: -260px !important;
  }

  .sidebar-nav .nav-link {
    font-size: 14px;
    padding: 10px 12px;
  }

  .sidebar-nav .nav-link i {
    font-size: 16px;
    margin-right: 8px;
  }

  .sidebar-nav .nav-content a {
    padding-left: 28px;
    font-size: 13px;
  }

  .table-responsive,
  .bootstrap-table .fixed-table-container,
  .surface-panel,
  .surface-panel-strong,
  .card,
  .modal-content,
  .dropdown-menu,
  .navbar .dropdown-menu,
  .jconfirm .jconfirm-box,
  div:where(.swal2-container) div:where(.swal2-popup) {
    border-radius: 16px;
    box-shadow:
      0 12px 34px rgba(0, 0, 0, 0.24),
      0 0 0 1px rgba(47, 128, 255, 0.06),
      0 0 14px rgba(0, 226, 255, 0.05);
  }

  .table thead th,
  .bootstrap-table thead th,
  .table tbody td,
  .bootstrap-table tbody td {
    padding: 0.8rem 0.85rem;
  }

  .bootstrap-table .fixed-table-pagination {
    padding: 0.8rem 0.9rem;
  }
}

.jconfirm .jconfirm-bg {
  background-color: rgba(5, 11, 20, 0.72) !important;
}

.jconfirm .jconfirm-box {
  background-color: var(--color-surface-strong) !important;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6) !important;
  padding: 2em !important;
}

.jconfirm .jconfirm-title-c {
  padding-bottom: 8px !important;
}

.jconfirm .jconfirm-title {
  color: #ffffff !important;
  font-family: "Poppins", sans-serif !important;
  font-weight: 700 !important;
}

.jconfirm .jconfirm-content {
  color: var(--color-text-secondary) !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
}

.jconfirm .jconfirm-buttons {
  display: flex !important;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 10px !important;
}

.jconfirm .jconfirm-buttons .btn {
  border-radius: 8px !important;
  padding: 10px 30px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  border: 1px solid transparent !important;
  box-shadow: none !important;
  transition: all 0.3s ease !important;
}

.jconfirm .jconfirm-buttons .btn-primary {
  background-color: var(--color-accent) !important;
  color: #000 !important;
}

.jconfirm .jconfirm-buttons .btn-danger {
  background-color: transparent !important;
  border: 1px solid var(--color-text-secondary) !important;
  color: var(--color-text-secondary) !important;
}

.jconfirm .jconfirm-buttons .btn-primary:hover {
  background-color: #4d6bff !important;
  box-shadow: 0 0 15px var(--shadow-glow) !important;
}

.jconfirm .jconfirm-buttons .btn-danger:hover {
  color: var(--color-text-primary) !important;
  border-color: var(--color-text-primary) !important;
  background-color: rgba(255, 255, 255, 0.05) !important;
}

.jconfirm .jconfirm-buttons .btn:focus {
  outline: none !important;
  box-shadow: 0 0 0 0.2rem rgba(47, 128, 255, 0.14) !important;
}

.surface-panel {
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  box-shadow:
    0 18px 44px rgba(0, 0, 0, 0.24),
    0 0 0 1px rgba(47, 128, 255, 0.08),
    0 0 16px rgba(0, 226, 255, 0.06);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* style.css - Hacia el final del archivo */
.surface-panel-strong {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border-strong);
  /* AÑADE ESTO PARA DARLE EL EFECTO CRISTAL */
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  /* Sombra más suave */
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.surface-panel-soft {
  background: var(--color-surface-soft);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-md);
}

.text-accent {
  color: var(--color-accent) !important;
}

.text-muted-soft {
  color: rgba(255, 255, 255, 0.5) !important;
}

.soft-divider {
  border-color: rgba(47, 128, 255, 0.12) !important;
}

.card,
.modal-content,
.dropdown-menu,
.navbar .dropdown-menu,
.jconfirm .jconfirm-box,
div:where(.swal2-container) div:where(.swal2-popup) {
  background:
    linear-gradient(180deg, rgba(18, 21, 38, 0.94), rgba(10, 12, 24, 0.98));
  border: 1px solid rgba(0, 226, 255, 0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.28),
    0 0 0 1px rgba(47, 128, 255, 0.06),
    0 0 18px rgba(0, 226, 255, 0.06);
}

.card-header,
.modal-header,
.dropdown-header {
  border-bottom: 1px solid rgba(0, 226, 255, 0.08);
}

.card-body,
.modal-body,
.dropdown-item,
.navbar .dropdown-item {
  color: var(--color-text-primary);
}

@media (max-width: 767.98px) {
  body {
    background-attachment: scroll;
  }

  #main {
    padding: 12px 10px;
  }

  /* Reducir tamaño del modal y botones de SweetAlert en móvil + Contraste */
  div:where(.swal2-container) div:where(.swal2-popup),
  .modal-content {
    width: 92% !important;
    font-size: 0.85rem !important;
    background: linear-gradient(180deg, rgba(22, 26, 43, 0.98), rgba(12, 15, 28, 0.98)) !important;
    border: 1px solid rgba(0, 226, 255, 0.25) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
  }

  .modal-dialog {
    margin: 0.5rem auto !important;
    max-width: 95% !important;
  }

  .modal-header, .modal-body, .modal-footer {
    padding: 0.8rem !important;
  }

  .modal-title,
  div:where(.swal2-container) .swal2-title {
    font-size: 1.1rem !important;
    padding: 0 0 0.5rem 0 !important;
    color: #ffffff !important;
  }

  div:where(.swal2-container) .swal2-html-container,
  .modal-body,
  .modal-body label {
    font-size: 0.85rem !important;
    margin: 0.5rem 0 !important;
    color: #e0e6ed !important;
  }

  .modal-body .form-control {
    font-size: 0.85rem !important;
    height: 36px !important;
  }

  div:where(.swal2-container) .swal2-actions,
  .modal-footer {
    margin-top: 0.8rem !important;
    gap: 0.5rem !important;
    padding-bottom: 0 !important;
  }

  div:where(.swal2-container) .swal2-confirm,
  div:where(.swal2-container) .swal2-cancel,
  .modal-footer .btn {
    font-size: 0.8rem !important;
    padding: 0.4rem 0.8rem !important;
    min-height: 32px !important;
    margin: 0 !important;
  }
}

body.modal-open {
  overflow: hidden !important;
  padding-right: 0 !important;
}

.modal {
  z-index: 1055;
}

.modal-backdrop {
  z-index: 1050;
}

.modal-dialog {
  z-index: 1056;
}

.modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}

.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}

/*!*****************************************************************************************************************!*\
  !*** 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%;
    display: table;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;

    /* Efecto de cristal en la tabla */
    background:  rgb(8 10 18 / 96%) !important;

    backdrop-filter: blur(15px);
    border: 1px solid rgba(0, 234, 211, 0.1); /* Borde cian sutil */
    border-radius: 16px; /* Más redondeado */
    overflow: hidden;
}

.bootstrap-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
}

.bootstrap-table .fixed-table-toolbar,
.bootstrap-table .fixed-table-pagination,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-header,
.bootstrap-table .fixed-table-body,
.bootstrap-table .fixed-table-footer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
}

.estilos_generales th {
    font-size: 15px;
    font-weight: bold;
    padding: 12px 13px;
    background: linear-gradient(180deg, rgba(26, 38, 60, 0.98), rgba(8, 12, 22, 0.98));
    color: #eafcff;
    border-bottom: 1px solid rgba(0, 234, 211, 0.52);
    text-align: left;
    white-space: nowrap;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.04);
}

.estilos_generales td {
    padding: 8px;
    font-size: 13px;
    background: transparent;
    color: rgba(240, 247, 250, 0.96);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    white-space: nowrap;
}

.osp-table-ui .fixed-table-container .table {
    display: table !important;
    width: 100% !important;
    table-layout: auto;
    color: var(--color-text-primary, #f0f4f8) !important;
    background-color: transparent !important;
}

.osp-table-ui,
.osp-table-ui .fixed-table-container,
.osp-table-ui .fixed-table-header,
.osp-table-ui .fixed-table-body {
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
}

.osp-table-ui .fixed-table-container {
    overflow: hidden;
}

.osp-table-ui .fixed-table-container .fixed-table-header table,
.osp-table-ui .fixed-table-container .fixed-table-body table,
.osp-table-ui .fixed-table-container .fixed-table-footer table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0;
}

.osp-table-ui .fixed-table-container .table th {
    color: rgba(240, 252, 255, 0.98) !important;
    background: linear-gradient(180deg, rgba(28, 42, 68, 0.98), rgba(8, 12, 22, 0.98)) !important;
    border-bottom: 1px solid rgba(0, 234, 211, 0.5) !important;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.04);
}

.osp-table-ui .fixed-table-container .table td {
    color: rgba(240, 247, 250, 0.96) !important;
    background-color: rgba(9, 13, 22, 0.34) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.osp-table-ui .fixed-table-container thead th .th-inner {
    width: 100%;
    min-height: 40px;
    padding: 0.72rem 1rem !important;
    white-space: nowrap;
}

.osp-table-ui .fixed-table-container .table thead th.detail,
.osp-table-ui .fixed-table-container .table tbody > tr[data-index] > td:first-child {
    width: 46px;
    min-width: 46px;
    text-align: center;
}

.osp-table-ui .fixed-table-container tbody td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.osp-table-ui .fixed-table-container tbody td:last-child,
.osp-table-ui .fixed-table-container thead th:last-child {
    width: 1%;
}

.paises-table-shell .osp-table-ui,
.paises-table-shell .osp-table-ui .fixed-table-container,
.paises-table-shell .osp-table-ui .fixed-table-header,
.paises-table-shell .osp-table-ui .fixed-table-body {
    width: 100% !important;
}

.paises-table-shell .osp-table-ui .fixed-table-container .table {
    display: table !important;
    width: 100% !important;
    table-layout: fixed;
}

.paises-table-shell .osp-table-ui .fixed-table-container .fixed-table-header table,
.paises-table-shell .osp-table-ui .fixed-table-container .fixed-table-body table,
.paises-table-shell .osp-table-ui .fixed-table-container .fixed-table-footer table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
}

.paises-table-shell .osp-table-ui .fixed-table-container .table th,
.paises-table-shell .osp-table-ui .fixed-table-container .table td {
    white-space: normal;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.paises-table-shell .osp-table-ui .fixed-table-container .table td:last-child,
.paises-table-shell .osp-table-ui .fixed-table-container .table th:last-child {
    width: 28%;
}

.paises-table-shell .osp-table-ui .fixed-table-container .table td:nth-child(4),
.paises-table-shell .osp-table-ui .fixed-table-container .table th:nth-child(4) {
    width: 24%;
}

.paises-table-shell .osp-table-ui .fixed-table-container .table .btn {
    white-space: nowrap;
}

.paises-table-shell .osp-table-ui .fixed-table-container thead th .th-inner {
    white-space: normal;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.paises-table-shell .osp-table-ui .fixed-table-container tbody td > *,
.paises-table-shell .osp-table-ui .fixed-table-container tbody td span,
.paises-table-shell .osp-table-ui .fixed-table-container tbody td div,
.paises-table-shell .osp-table-ui .fixed-table-container tbody td a:not(.btn) {
    white-space: normal;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.estilos_generales td a,
.estilos_generales td a:visited {
    color: rgba(0, 226, 255, 0.92) !important;
    text-decoration: none !important;
    font-weight: 600;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

.estilos_generales td a:hover,
.estilos_generales td a:focus {
    color: #fff !important;
    text-decoration: none !important;
    text-shadow: 0 0 8px rgba(0, 226, 255, 0.9);
}

.estilos_generales tbody tr:hover {
    background-color: rgba(0, 234, 211, 0.07) !important;
    transition: all 0.3s ease;
}

/* scrolbar de la tabla */
.estilos_generales::-webkit-scrollbar,
.osp-table-ui .fixed-table-body::-webkit-scrollbar {
    height: 10px !important;
    background-color: #050b14 !important;
}


.estilos_generales::-webkit-scrollbar-thumb,
.osp-table-ui .fixed-table-body::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-radius: 5px;
    border: none !important;
}

/* El fondo por donde corre la barra */
.estilos_generales::-webkit-scrollbar-track,
.osp-table-ui .fixed-table-body::-webkit-scrollbar-track {
    background-color: rgba(255, 255, 255, 0.05) !important; /* Gris muy sutil */
    border-radius: 5px;
}

/*
[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    padding: 6px 0;
    max-width: 100%;
    scrollbar-width: thin;
    scrollbar-color: #112e55 transparent !important;
    white-space: nowrap;
}


[id^="toolbar_"] > * {
    flex: 0 0 auto;
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 8px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #1c4f7a !important;
    border-radius: 4px;
}


*/

/* Ajuste de columnas para móviles - de 2 a 3 por fila */
@media (max-width: 991px) {
    .ui-table-detail-grid,
    .osp-row-detail__grid {
        /* Usamos repeat(2, 1fr) para FORZAR siempre 2 columnas como mínimo en móviles */
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.5rem !important;
    }
    
    .ui-table-detail-item,
    .osp-row-detail__item {
        padding: 0.5rem !important;
        gap: 0.4rem !important;
    }

    .ui-table-detail-label,
    .osp-row-detail__label {
        font-size: 0.65rem !important;
    }

    /* Mostrar texto dentro del botón de estado en móvil (evita que se vuelva un círculo) */
    .osp-table-ui .fixed-table-container td .ui-table-detail-item .estado.btn,
    .bootstrap-table .fixed-table-container td .ui-table-detail-item .estado.btn,
    .estilos_generales td .ui-table-detail-item .estado.btn {
        font-size: 0.7rem !important;
        padding: 0.25rem 0.6rem !important;
        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 0 !important;
        border-radius: 6px !important;
    }
}

/* 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 {
        width: 100% !important;
    }

    .estilos_generales th,
    .osp-table-ui .fixed-table-container thead th .th-inner,
    .osp-table-ui .fixed-table-container thead th {
        white-space: normal !important;
        word-wrap: break-word;
        font-size: 11px !important;
        padding: 6px 8px !important;
    }

    .estilos_generales td,
    .osp-table-ui .fixed-table-container tbody td {
        white-space: normal !important;
        word-wrap: break-word;
        font-size: 11px !important;
        padding: 6px 8px !important;
    }
}

/* ──────────────────────────────────────────────────────────────
   TOOLBAR RESPONSIVE GLOBAL (todos los módulos)
   Aplica icon-only en móvil sin afectar lógica JS.
   Se usa .osp-table-ui (clase añadida por crate_table_boostrap_table_generic)
   y .osp-table-toolbar-host (clase añadida por utilTablaBootstrap.js)
────────────────────────────────────────────────────────────── */

/* ── Desktop: toolbar general con botón + texto ── */
.osp-table-ui .fixed-table-toolbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.osp-table-ui .fixed-table-toolbar > * {
    flex: 0 0 auto;
    min-width: 0;
}

/* Búsqueda: espacio generoso en desktop */
.osp-table-ui .fixed-table-toolbar > .search {
    display: flex;
    align-items: center;
    flex: 0 0 260px;
    min-width: 180px;
    max-width: 400px;
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.osp-table-ui .fixed-table-toolbar > .search input[type="search"],
.osp-table-ui .fixed-table-toolbar > .search .form-control {
    width: 100% !important;
    min-width: 0;
    font-size: 1rem;
}

/* Botones desktop: ícono + texto ── */
.osp-table-ui .fixed-table-toolbar .btn .osp-btn-label {
    display: inline;
}

/*CUSTOMSSSSSSSSS*/
/* Botones generales personalizados */
.btn-custom, .btn-custom-text, .btn {
    border-radius: 10px;
    font-weight: 600;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    color: #ffffff !important;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar > * {
    flex: 0 0 auto;
    min-width: 0;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar > .bs-bars {
    order: 0;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar > .search {
    order: 3;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .bs-bars {
    display: none;
    float: none !important;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .bs-bars:empty {
    display: none !important;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .columns {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.35rem;
    flex: 0 0 auto;
    width: auto !important;
    margin-left: 0;
    order: 1;
    float: none !important;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .search {
    display: flex;
    align-items: center;
    flex: 0 0 280px;
    min-width: 220px;
    max-width: 420px;
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    order: 3;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .btn {
    width: auto;
    min-width: max-content;
    height: auto;
    min-height: 38px;
    padding: 0.5rem 0.9rem !important;
    font-size: 1rem !important;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    white-space: nowrap;
    order: 0;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .btn .text,
[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .btn span:not(.caret) {
    display: inline;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .btn.dropdown-toggle::after {
    display: inline-block;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar #btn_nuevo {
    order: -1;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .export {
    order: 2;
}

[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .search input[type="search"],
[id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .search .form-control {
    width: 100% !important;
    min-width: 0;
    font-size: 1rem;
}

/* Estilo común para todos los botones */

.btn-custom-text,
.btn.btn-primary,
.btn.btn-secondary {
    background: linear-gradient(180deg, rgba(16, 28, 48, 0.98), rgba(7, 15, 28, 0.98)) !important;
    border: 1px solid rgba(0, 226, 255, 0.3) !important;
    color: #e9f7ff !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 10px 22px rgba(0, 0, 0, 0.18);
}

/* Hover de botones */
.btn-custom {
    background: linear-gradient(180deg, rgba(16, 28, 48, 0.98), rgba(7, 15, 28, 0.98));
    border: 1px solid rgba(0, 226, 255, 0.3) !important;
    color: #e9f7ff !important;
}

.btn-custom:hover {
    background: linear-gradient(180deg, rgba(0, 226, 255, 0.24), rgba(0, 168, 189, 0.28)) !important;
    border-color: rgba(0, 226, 255, 0.5) !important;
    box-shadow: 0 0 0 1px rgba(0, 226, 255, 0.16), 0 12px 24px rgba(0, 0, 0, 0.2);
    transform: translateY(-1px);
}


.btn.btn-primary:hover,
.btn.btn-secondary:hover {
    background: linear-gradient(180deg, rgba(0, 226, 255, 0.2), rgba(0, 168, 189, 0.24)) !important;
    border-color: rgba(0, 226, 255, 0.5) !important;
    box-shadow: 0 0 0 1px rgba(0, 226, 255, 0.16), 0 12px 24px rgba(0, 0, 0, 0.18);
    transform: translateY(-1px);
}

/* Botones deshabilitados */
.btn:disabled {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: rgba(255, 255, 255, 0.3) !important;
}

/* Botón peligro */
.btn.btn-danger {
    background: linear-gradient(180deg, rgba(38, 14, 28, 0.96), rgba(21, 10, 18, 0.96)) !important;
    border: 1px solid rgba(255, 120, 160, 0.3) !important;
    color: #e9f7ff !important;
}

.btn.btn-danger:not(:disabled) {
  border: 1px solid rgba(255, 120, 160, 0.68) !important;
  color: #ff9abc !important;
  box-shadow: 0 0 0 1px rgba(255, 120, 160, 0.16), 0 10px 18px rgba(0, 0, 0, 0.18) !important;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
  transition: all 0.3s ease-in-out;

}

.btn.btn-danger:hover {
    background: linear-gradient(180deg, rgba(255, 86, 132, 0.28), rgba(183, 24, 63, 0.42)) !important;
    box-shadow: 0 0 0 1px rgba(255, 120, 160, 0.18), 0 12px 24px rgba(0, 0, 0, 0.2) !important;
    color: #ffffff !important;
    border-color: rgba(255, 160, 188, 0.82) !important;
    transform: translateY(-1px);
}

/* Botón éxito */
.btn.btn-success{
    background: linear-gradient(180deg, rgba(0, 255, 136, 0.2), rgba(0, 172, 110, 0.26)) !important;
    color: #ffffff !important;
    border: 1px solid rgba(0, 255, 136, 0.6) !important;
    box-shadow: 0 0 0 1px rgba(0, 255, 136, 0.16), 0 10px 18px rgba(0, 0, 0, 0.18) !important;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.45);
    transition: all 0.3s ease-in-out;
}

.btn.btn-success:hover {
    background: linear-gradient(180deg, rgba(0, 255, 136, 0.3), rgba(0, 172, 110, 0.4)) !important;
    box-shadow: 0 0 0 1px rgba(0, 255, 136, 0.18), 0 12px 24px rgba(0, 0, 0, 0.2) !important;
    transform: translateY(-1px);
}

/* Botón advertencia */
.btn.btn-warning {
    background: linear-gradient(180deg, rgba(48, 35, 12, 0.96), rgba(24, 18, 7, 0.96)) !important;
    color: #e9f7ff !important;
    border: 1px solid rgba(255, 202, 104, 0.32) !important;
}


.btn.btn-warning:not(:disabled) {
    background: linear-gradient(180deg, rgba(255, 190, 0, 0.18), rgba(184, 132, 0, 0.28)) !important;
    box-shadow: 0 0 0 1px rgba(255, 190, 0, 0.16), 0 10px 18px rgba(0, 0, 0, 0.18) !important;
    border: 1px solid rgba(255, 190, 0, 0.66) !important;
    color: #ffffff !important;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.45);
    transition: all 0.3s ease-in-out;
}

.btn.btn-warning:hover {
    background: linear-gradient(180deg, rgba(255, 190, 0, 0.26), rgba(184, 132, 0, 0.38)) !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 1px rgba(255, 190, 0, 0.22), 0 12px 24px rgba(0, 0, 0, 0.2) !important;
    border-color: rgba(255, 214, 132, 0.86) !important;
    transform: translateY(-1px);
}

/* Botón secundario */
.btn.btn-secondary {
    background: linear-gradient(180deg, rgba(20, 28, 40, 0.98), rgba(10, 14, 22, 0.98)) !important;
    color: #eef9ff !important;
    border: 1px solid rgba(0, 226, 255, 0.22) !important;
}

.btn.btn-secondary:hover {
    background: linear-gradient(180deg, rgba(0, 226, 255, 0.14), rgba(0, 168, 189, 0.18)) !important;
    color: #ffffff !important;
    border-color: rgba(0, 226, 255, 0.4) !important;
    transform: translateY(-1px);
}

/* Botones dentro de tablas */
.estilos_generales .btn,
.osp-table-ui .fixed-table-container .btn {
    background: linear-gradient(180deg, rgba(14, 22, 34, 0.98), rgba(7, 11, 18, 0.98)) !important;
    border: 1px solid rgba(0, 226, 255, 0.22) !important;
    color: rgba(240, 247, 250, 0.98) !important;
    border-radius: 12px !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 8px 18px rgba(0, 0, 0, 0.18);
    text-shadow: 0 0 8px rgba(0, 226, 255, 0.08);
    transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease, background 140ms ease, color 140ms ease;
}

.estilos_generales .btn:hover,
.osp-table-ui .fixed-table-container .btn:hover,
.estilos_generales .btn:focus-visible,
.osp-table-ui .fixed-table-container .btn:focus-visible {
    background: linear-gradient(180deg, rgba(0, 226, 255, 0.18), rgba(0, 168, 189, 0.22)) !important;
    border-color: rgba(0, 226, 255, 0.42) !important;
    color: #ffffff !important;
    box-shadow:
        0 0 0 1px rgba(0, 226, 255, 0.12),
        0 10px 20px rgba(0, 0, 0, 0.24);
    transform: translateY(-1px);
}

.estilos_generales td .editar,
.osp-table-ui .fixed-table-container td .editar,
.estilos_generales td .btn-primary,
.osp-table-ui .fixed-table-container td .btn-primary,
.estilos_generales td .btn-outline-primary,
.osp-table-ui .fixed-table-container td .btn-outline-primary {
    background: linear-gradient(180deg, rgba(0, 226, 255, 0.18), rgba(0, 123, 255, 0.14)) !important;
    border-color: rgba(0, 226, 255, 0.42) !important;
    color: #f6feff !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 0 0 1px rgba(0, 226, 255, 0.08),
        0 8px 16px rgba(0, 0, 0, 0.18);
}

.estilos_generales td .editar:hover,
.osp-table-ui .fixed-table-container td .editar:hover,
.estilos_generales td .btn-primary:hover,
.osp-table-ui .fixed-table-container td .btn-primary:hover,
.estilos_generales td .btn-outline-primary:hover,
.osp-table-ui .fixed-table-container td .btn-outline-primary:hover {
    background: linear-gradient(180deg, rgba(0, 234, 211, 0.24), rgba(0, 123, 255, 0.18)) !important;
    border-color: rgba(0, 234, 211, 0.58) !important;
    box-shadow:
        0 0 0 1px rgba(0, 234, 211, 0.14),
        0 0 18px rgba(0, 226, 255, 0.12),
        0 10px 20px rgba(0, 0, 0, 0.24);
}

.estilos_generales td .remover,
.osp-table-ui .fixed-table-container td .remover,
.estilos_generales td .btn-danger,
.osp-table-ui .fixed-table-container td .btn-danger,
.estilos_generales td .btn-outline-danger,
.osp-table-ui .fixed-table-container td .btn-outline-danger {
    background: linear-gradient(180deg, rgba(88, 18, 34, 0.98), rgba(34, 11, 18, 0.98)) !important;
    border-color: rgba(255, 126, 160, 0.34) !important;
    color: #ffd8e3 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.03),
        0 0 0 1px rgba(255, 126, 160, 0.06),
        0 8px 16px rgba(0, 0, 0, 0.2);
}

.estilos_generales td .remover:hover,
.osp-table-ui .fixed-table-container td .remover:hover,
.estilos_generales td .btn-danger:hover,
.osp-table-ui .fixed-table-container td .btn-danger:hover,
.estilos_generales td .btn-outline-danger:hover,
.osp-table-ui .fixed-table-container td .btn-outline-danger:hover {
    background: linear-gradient(180deg, rgba(255, 93, 141, 0.24), rgba(88, 18, 34, 0.92)) !important;
    border-color: rgba(255, 126, 160, 0.58) !important;
    color: #ffffff !important;
    box-shadow:
        0 0 0 1px rgba(255, 126, 160, 0.16),
        0 0 16px rgba(255, 126, 160, 0.12),
        0 10px 20px rgba(0, 0, 0, 0.24);
}

.estilos_generales td .btn-success,
.osp-table-ui .fixed-table-container td .btn-success,
.estilos_generales td .btn-outline-success,
.osp-table-ui .fixed-table-container td .btn-outline-success {
    background: linear-gradient(180deg, rgba(0, 255, 170, 0.16), rgba(0, 172, 110, 0.18)) !important;
    border-color: rgba(0, 255, 170, 0.45) !important;
    color: #ebfff6 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 0 0 1px rgba(0, 255, 170, 0.08),
        0 8px 16px rgba(0, 0, 0, 0.18);
}

.estilos_generales td .btn-success:hover,
.osp-table-ui .fixed-table-container td .btn-success:hover,
.estilos_generales td .btn-outline-success:hover,
.osp-table-ui .fixed-table-container td .btn-outline-success:hover {
    background: linear-gradient(180deg, rgba(0, 255, 170, 0.22), rgba(0, 172, 110, 0.24)) !important;
    border-color: rgba(0, 255, 170, 0.68) !important;
    color: #ffffff !important;
    box-shadow:
        0 0 0 1px rgba(0, 255, 170, 0.16),
        0 0 18px rgba(0, 255, 170, 0.12),
        0 10px 20px rgba(0, 0, 0, 0.24);
}

.estilos_generales .btn.btn-danger,
.osp-table-ui .fixed-table-container .btn.btn-danger {
    background: linear-gradient(180deg, rgba(72, 14, 28, 0.98), rgba(26, 8, 16, 0.98)) !important;
    border-color: rgba(255, 120, 160, 0.32) !important;
    color: #ffd0dd !important;
}

.estilos_generales .btn.btn-success,
.osp-table-ui .fixed-table-container .btn.btn-success {
    background: linear-gradient(180deg, rgba(0, 255, 170, 0.18), rgba(0, 172, 110, 0.24)) !important;
    border-color: rgba(0, 255, 170, 0.52) !important;
    color: #f5fffb !important;
}

.estilos_generales .btn.btn-warning,
.osp-table-ui .fixed-table-container .btn.btn-warning {
    background: linear-gradient(180deg, rgba(255, 190, 0, 0.18), rgba(184, 132, 0, 0.22)) !important;
    border-color: rgba(255, 190, 0, 0.52) !important;
    color: #fff8dc !important;
}

.estilos_generales td .btn,
.osp-table-ui .fixed-table-container td .btn,
.estilos_generales .table .btn-sm,
.osp-table-ui .fixed-table-container .table .btn-sm {
    padding: 0.42rem 0.78rem !important;
    min-height: 2.3rem;
    min-width: 2.3rem;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: 0.01em;
    backdrop-filter: blur(12px);
}

.estilos_generales td .btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info),
.osp-table-ui .fixed-table-container td .btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info) {
    background: linear-gradient(180deg, rgba(16, 24, 36, 0.98), rgba(8, 12, 20, 0.98)) !important;
    border-color: rgba(0, 226, 255, 0.26) !important;
}

.estilos_generales td .btn-outline-primary,
.osp-table-ui .fixed-table-container td .btn-outline-primary {
    color: #c7fdff !important;
}

.estilos_generales td .btn-outline-secondary,
.osp-table-ui .fixed-table-container td .btn-outline-secondary {
    color: rgba(232, 247, 255, 0.9) !important;
    border-color: rgba(255, 255, 255, 0.16) !important;
}

.estilos_generales td .btn-outline-success,
.osp-table-ui .fixed-table-container td .btn-outline-success {
    color: #d8fff0 !important;
}

.estilos_generales td .btn-outline-danger,
.osp-table-ui .fixed-table-container td .btn-outline-danger {
    color: #ffd0dd !important;
}

.estilos_generales td .btn-outline-warning,
.osp-table-ui .fixed-table-container td .btn-outline-warning {
    color: #fff0b8 !important;
}

/* Texto principal */
.text-principal {
    color: #ffffff !important;
    text-shadow: 0 0 2px rgba(80, 200, 255, 0.9) !important;
}

.dataTables_filter input, /*input arriba tabla*/
input[type="search"] {
/*     background-color: rgba(17, 47, 71, 0.9) !important;
 */    border: 1px solid #00e5ff !important;
/*     box-shadow: 0 0 5px #00f3ff !important;
 */    color: #ffffff !important;
    border-radius: 10px !important;
    outline: none;
    transition: all 0.3s;
}


.dataTables_filter input::placeholder,
input[type="search"]::placeholder,
.search input::placeholder {
    color: #e1e3e6 !important;
    font-weight: 400;
    font-style: italic;
    opacity: 1 !important;
}

.dataTables_filter input:focus,
input[type="search"]:focus {
  /*   background-color: rgba(17, 47, 71, 0.9) !important;
    border: 1px solid #4154f1 !important; */
    box-shadow: 0 0 4px #00f3ff !important;
}
/*detail groups*/
.estilos_generales .detail-view td {
    background: linear-gradient(180deg, rgba(10, 16, 28, 0.96), rgba(7, 11, 20, 0.98)) !important;
    border: none !important;
}

.estilos_generales .detail-view .card,
.estilos_generales .detail-view .card-body,
.estilos_generales .detail-view .detail-view-inner {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.estilos_generales .detail-view,
.estilos_generales .detail-view p,
.estilos_generales .detail-view span,
.estilos_generales .detail-view div,
.estilos_generales .detail-view td{
    color: var(--color-text-primary, #f0f4f8) !important;
}

.estilos_generales .detail-view b,
.estilos_generales .detail-view strong,
.estilos_generales .detail-view label {
    color: rgba(0, 226, 255, 0.92) !important;

}

.osp-table-ui .fixed-table-toolbar .dropdown-menu {
    background: linear-gradient(180deg, rgba(10, 14, 24, 0.98), rgba(7, 12, 20, 0.98)) !important;
    border: 1px solid rgba(0, 226, 255, 0.18) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}

.osp-table-ui .fixed-table-toolbar .dropdown-menu .dropdown-item,
.osp-table-ui .fixed-table-toolbar .dropdown-menu label,
.osp-table-ui .fixed-table-toolbar .dropdown-menu span {
    color: var(--color-text-primary, #f0f4f8) !important;
    background-color: transparent !important;
    cursor: pointer;
}

.osp-table-ui .fixed-table-toolbar .dropdown-menu .dropdown-item:hover,
.osp-table-ui .fixed-table-toolbar .dropdown-menu label:hover {
    background-color: rgba(0, 226, 255, 0.08) !important;
    color: rgba(233, 247, 255, 0.98) !important;
}

.osp-table-ui .fixed-table-toolbar .dropdown-menu input[type="checkbox"] {
    margin-right: 10px;
    accent-color: var(--color-accent-neon, #00e2ff);
}
.estilos_generales .detail-view th div,
.estilos_generales .detail-view th span {
    background: linear-gradient(180deg, rgba(28, 42, 68, 0.98), rgba(8, 12, 22, 0.98)) !important;
    color: rgba(240, 252, 255, 0.98) !important;
    border-bottom: 1px solid rgba(0, 234, 211, 0.5) !important;
}

.estilos_generales .detail-view th {
    background-color: rgba(0, 0, 0, 0.1) !important;
    border: none !important;
}

.osp-table-ui .detail-view > td {
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.osp-table-ui .detail-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    text-decoration: none !important;
    vertical-align: middle;
    color: rgba(189, 255, 242, 0.95) !important;
    background: rgba(0, 234, 211, 0.08);
    border: 1px solid rgba(0, 234, 211, 0.24);
    box-shadow: inset 0 0 0 1px rgba(0, 234, 211, 0.04);
    transition: transform 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.osp-table-ui .detail-icon:hover,
.osp-table-ui .detail-icon:focus {
    color: #ffffff !important;
    background: rgba(0, 234, 211, 0.14);
    border-color: rgba(0, 234, 211, 0.42);
    box-shadow: 0 0 0 0.2rem rgba(0, 234, 211, 0.1), 0 0 14px rgba(0, 234, 211, 0.18);
    transform: translateY(-1px);
}

.osp-table-ui .detail-icon .bi,
.osp-table-ui .detail-icon i {
    font-size: 1rem;
    line-height: 1;
}

.osp-table-ui .detail-icon .bi-plus-square-fill,
.osp-table-ui .detail-icon .bi-plus-circle,
.osp-table-ui .detail-icon .glyphicon-plus,
.osp-table-ui .detail-icon .icon-plus,
.osp-table-ui .detail-icon .add,
.osp-table-ui .detail-icon .fa-plus,
.osp-table-ui .detail-icon .fa-circle-plus {
    color: #d6fff9 !important;
    text-shadow: 0 0 8px rgba(0, 234, 211, 0.15);
}

.osp-table-ui .detail-icon .bi-dash-square-fill,
.osp-table-ui .detail-icon .bi-dash-circle,
.osp-table-ui .detail-icon .glyphicon-minus,
.osp-table-ui .detail-icon .icon-minus,
.osp-table-ui .detail-icon .remove,
.osp-table-ui .detail-icon .fa-minus,
.osp-table-ui .detail-icon .fa-circle-minus {
    color: #7cffd7 !important;
    text-shadow: 0 0 10px rgba(0, 255, 136, 0.18);
}

.osp-table-ui .fixed-table-body tr[data-has-detail-view="true"] td:first-child .detail-icon {
    background: rgba(0, 234, 211, 0.14);
    border-color: rgba(0, 234, 211, 0.34);
}

.osp-table-ui .fixed-table-body tr[data-has-detail-view="true"] td:first-child .detail-icon:hover,
.osp-table-ui .fixed-table-body tr[data-has-detail-view="true"] td:first-child .detail-icon:focus {
    background: rgba(0, 234, 211, 0.22);
}

@supports selector(.detail-icon:has(.bi-dash-square-fill)) {
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.bi-dash-square-fill),
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.bi-dash-circle),
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.glyphicon-minus),
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.icon-minus),
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.remove),
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.fa-minus),
    .osp-table-ui .fixed-table-body td:first-child .detail-icon:has(.fa-circle-minus) {
        background: rgba(0, 234, 211, 0.18);
        border-color: rgba(0, 234, 211, 0.42);
        color: #d6fff9 !important;
        box-shadow: 0 0 0 1px rgba(0, 234, 211, 0.18), 0 0 10px rgba(0, 234, 211, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.03);
    }
}

.osp-row-detail {
    width: 100%;
    display: block;
    box-sizing: border-box;
    padding: 1.25rem 1.5rem;
    margin: 0;
    background:
        radial-gradient(ellipse at top right, rgba(0, 234, 211, 0.08), transparent 40%),
        linear-gradient(180deg, rgba(12, 18, 30, 0.98) 0%, rgba(8, 14, 24, 0.98) 100%);
    border-top: 1px solid rgba(0, 234, 211, 0.35);
    box-shadow: inset 0 4px 15px rgba(0,0,0,0.25);
}

.osp-row-detail__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    padding-bottom: 0.75rem;
}

.osp-row-detail__eyebrow {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(180, 190, 210, 0.9);
}

.osp-row-detail__title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 0 5px rgba(0, 234, 211, 0.2);
}

.osp-row-detail__status {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    white-space: nowrap;
    border: 1px solid rgba(0, 234, 211, 0.25);
    box-shadow: 0 0 10px rgba(0, 234, 211, 0.1);
}

.osp-row-detail__status.is-active {
    background: rgba(0, 234, 211, 0.15);
    color: #d6fff9;
    border-color: rgba(0, 234, 211, 0.4);
}

.osp-row-detail__status.is-inactive {
    background: rgba(255, 255, 255, 0.05);
    color: rgba(230, 240, 255, 0.75);
    border-color: rgba(255, 255, 255, 0.15);
}

.osp-row-detail__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    width: 100%;
}

.osp-row-detail__item {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem 1.15rem;
    border-radius: 12px;
    background: rgba(18, 26, 42, 0.85);
    border: 1px solid rgba(0, 234, 211, 0.18);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    transition: all 0.25s ease;
}

.osp-row-detail__item:hover {
    background: rgba(24, 34, 54, 0.95);
    border-color: rgba(0, 234, 211, 0.35);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.osp-row-detail__label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(0, 234, 211, 0.95);
}

.osp-row-detail__value {
    font-size: 0.95rem;
    font-weight: 600;
    color: #f8fbff;
    word-break: break-word;
}
/*btnsubmit de uploadFile*/
.btnGuardarT,
#modal_cargar .btn-outline-success {
    background-color: transparent !important;
    border: 1px solid #00e676 !important;
    color: #00e676 !important;
    font-weight: 500;
    transition: 0.3s;
    margin-top: 50px;
    padding: 8px 20px;
    min-width: 100px;
    font-size: 14px !important;
    margin-right: 20px !important;
}
.btnGuardarT:hover,
#modal_cargar .btn-outline-success:hover {
    background-color: rgba(0, 230, 118, 0.1) !important;
    color: #FFFFFF !important;
    box-shadow: 0 0 15px rgba(0, 230, 118, 0.2);
}
/*modal upload file*/
#modal_cargar .modal-content {
    background-color: var(--color-surface-strong, #0d1522) !important;
    border: 1px solid var(--color-border-soft, rgba(0, 229, 255, 0.15)) !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6) !important;
    color: var(--color-text-primary, #f0f4f8) !important;
}

#modal_cargar .modal-header,
#modal_cargar .modal-footer {
    border-color: var(--color-border-soft, rgba(0, 229, 255, 0.15)) !important;
}


#modal_cargar .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

#modal_cargar input[type="file"] { /*seleccionarArchivo*/
    background-color: rgba(0, 0, 0, 0.3) !important;
    color: var(--color-text-primary, #f0f4f8) !important;
    border: 1px dashed var(--color-accent, #00e5ff) !important;
}


/*btnSave*/

    .modal-body {
        background-color: #00000075 !important;
        color: var(--color-text-primary, #f0f4f8) !important;
    }


.btnResetT{
    background-color: transparent !important;
    border: 1px solid var(--color-text-secondary, #8b9bb4) !important;
    color: var(--color-text-secondary, #8b9bb4) !important;
    font-weight: 500;
    transition: 0.3s;
    margin-top: 50px;
    padding: 8px 20px;
    min-width: 100px;
    font-size: 14px !important;
}

.btnResetT:hover{
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--color-text-primary, #f0f4f8) !important;
}



/* inputs y selects */
.form-control, .form-select {
    background-color: rgba(0, 0, 0, 0.2) !important;
    border: 1px solid rgb(0 229 255 / 26%) !important;
    color: var(--color-text-primary, #f0f4f8) !important;
}

.form-control:focus, .form-select:focus {
    border-color: var(--color-accent, #00e5ff) !important;
    box-shadow: 0 0 0 2px rgba(0, 229, 255, 0.15) !important;
}

.input-group{
    background-color: rgba(11, 25, 41, 0.6) !important;
    border-color:  #00f3ff!important;
    color: #ffffff !important;

}
/*dropdowns de modales*/

.modal .form-select {
    background-color: rgba(17, 47, 71, 0.95) !important;
    border-color: #00f3ff !important;
    border: 1px solid #00f3ff !important;
    color: #e9f7ff !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%2300f3ff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e") !important;
}

.modal .form-select:focus {
    background-color: #0d2538 !important;
    border-color: #00f3ff !important;
    box-shadow: 0 0 15px rgba(0, 243, 255, 0.3) !important;
    color: #ffffff !important;
}

.modal .form-select option,
.modal .form-select optgroup {
    background-color: #0d2538 !important;
    color: #ffffff !important;
}

#modal_emails .modal-body input.form-control::placeholder,
#modal_emails .swal2-input::placeholder {
    color: rgba(225, 235, 245, 0.78) !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input::placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input::-webkit-input-placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input:disabled::placeholder {
    color: rgba(225, 238, 255, 0.82) !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input:disabled::-webkit-input-placeholder {
    color: rgba(225, 238, 255, 0.82) !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input::-moz-placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input:disabled::-moz-placeholder {
    color: rgba(225, 238, 255, 0.82) !important;
    opacity: 1 !important;
}

#modal_emails .modal-body input.ui-autocomplete-input:-ms-input-placeholder {
    color: #ffffff !important;
}

#modal_emails .modal-body input.ui-autocomplete-input:disabled:-ms-input-placeholder {
    color: rgba(225, 238, 255, 0.82) !important;
}

#modal_emails .modal-body input.ui-autocomplete-input:disabled {
    background-color: rgba(11, 25, 41, 0.6) !important;
    border-color: #00f3ff !important;
    color: rgba(225, 238, 255, 0.82) !important;
    -webkit-text-fill-color: rgba(225, 238, 255, 0.82) !important;
    opacity: 1 !important;
}

#modal_emails .swal2-container #swal_inline_input.swal2-input {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #6b7785 !important;
}

#modal_emails .swal2-container #swal_inline_input.swal2-input::placeholder {
    color: #5f5f5f !important;
    opacity: 1 !important;
}

body.page-emails-index .ui-autocomplete {
    background-color: #0d2538 !important;
    border: 1px solid #00f3ff !important;
    border-radius: 8px !important;
    box-shadow: 0 0 16px rgba(0, 243, 255, 0.25) !important;
}

body.page-emails-index #filtroGrupo input.ui-autocomplete-input {
    background-color: rgba(11, 25, 41, 0.6) !important;
    border: 1px solid #00f3ff !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

body.page-emails-index #filtroGrupo input.ui-autocomplete-input::placeholder,
body.page-emails-index #filtroGrupo input.ui-autocomplete-input::-webkit-input-placeholder,
body.page-emails-index #filtroGrupo input.ui-autocomplete-input::-moz-placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

body.page-emails-index #filtroGrupo input.ui-autocomplete-input:disabled {
    background-color: rgba(11, 25, 41, 0.6) !important;
    border: 1px solid #00f3ff !important;
    color: rgba(225, 238, 255, 0.82) !important;
    -webkit-text-fill-color: rgba(225, 238, 255, 0.82) !important;
    opacity: 1 !important;
}

body.page-emails-index #filtroGrupo input.ui-autocomplete-input:disabled::placeholder,
body.page-emails-index #filtroGrupo input.ui-autocomplete-input:disabled::-webkit-input-placeholder,
body.page-emails-index #filtroGrupo input.ui-autocomplete-input:disabled::-moz-placeholder {
    color: rgba(225, 238, 255, 0.82) !important;
    opacity: 1 !important;
}

body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper {
    color: #ffffff !important;
    border: 0 !important;
}

body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper.ui-state-active,
body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper:hover {
    background-color: rgba(0, 243, 255, 0.2) !important;
    color: #ffffff !important;
}

body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected,
body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected.ui-state-active,
body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected:hover {
    background-color: rgba(233, 242, 255, 0.98) !important;
    color: #102a43 !important;
    border-color: rgba(196, 221, 255, 0.95) !important;
}

body.page-emails-index .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected .combo-pill-selected {
    color: #1d5fb8 !important;
    background: #dceaff !important;
    border-color: #b9d5ff !important;
}

#btn_nuevo_filtro_correo,
#btn_ir_carga_masiva {
    background-color: rgba(11, 25, 41, 0.9) !important;
    border: 1px solid #00f3ff !important;
    color: #e9f7ff !important;
    box-shadow: 0 0 14px rgba(0, 243, 255, 0.35) !important;
    text-shadow: 0 0 6px rgba(0, 243, 255, 0.4);
}

#btn_nuevo_filtro_correo:hover,
#btn_ir_carga_masiva:hover {
    background-color: rgba(17, 47, 71, 0.95) !important;
    border-color: #00f3ff !important;
    color: #ffffff !important;
    box-shadow: 0 0 18px rgba(0, 243, 255, 0.55) !important;
    transform: translateY(-1px);
}

.modal-form-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 8px;
    margin-bottom: 4px;
    border-bottom: 1px solid rgba(0, 243, 255, 0.25);
    color: rgba(222, 242, 255, 0.9);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.excel-upload-card {
    border: 1px solid rgba(0, 243, 255, 0.35);
    border-radius: 10px;
    padding: 14px;
    background: linear-gradient(180deg, rgba(14, 34, 52, 0.9) 0%, rgba(11, 25, 41, 0.75) 100%);
    box-shadow: inset 0 0 0 1px rgba(0, 243, 255, 0.08), 0 6px 20px rgba(0, 0, 0, 0.2);
}

.excel-upload-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.excel-upload-head h6 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #ffffff;
}

.excel-upload-head small {
    color: rgba(206, 230, 244, 0.8);
}

.excel-upload-template-btn {
    white-space: nowrap;
}

.excel-upload-input-wrap {
    margin-top: 12px;
}

.excel-dropzone {
    border: 1px dashed rgba(0, 243, 255, 0.45);
    border-radius: 10px;
    padding: 16px 14px;
    text-align: center;
    background-color: rgba(10, 23, 36, 0.65);
    color: rgba(230, 247, 255, 0.95);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
}

.excel-dropzone i {
    display: block;
    font-size: 24px;
    margin-bottom: 6px;
    color: #00f3ff;
}

.excel-dropzone .excel-dropzone-title {
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 2px;
}

.excel-dropzone small {
    color: rgba(190, 219, 236, 0.86);
}

.excel-dropzone:hover,
.excel-dropzone:focus,
.excel-dropzone.is-dragover {
    border-color: #00f3ff;
    background-color: rgba(0, 243, 255, 0.14);
    box-shadow: 0 0 0 2px rgba(0, 243, 255, 0.18);
}

.excel-upload-meta {
    margin-top: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.excel-upload-label {
    color: rgba(214, 238, 251, 0.95);
    font-weight: 600;
    font-size: 12px;
}

.excel-upload-file-name {
    color: rgba(255, 255, 255, 0.92);
    font-size: 12px;
}

.excel-upload-preview {
    margin-top: 10px;
}

.excel-upload-preview .table-responsive {
    background-color: rgba(10, 23, 36, 0.75);
    border-color: rgba(0, 243, 255, 0.25) !important;
}

#emailModalPreviewTable th,
#subgrupoPreviewTable th {
    background-color: rgba(0, 243, 255, 0.12);
    color: #dff5ff;
    font-weight: 700;
    border-color: rgba(0, 243, 255, 0.2);
}

#emailModalPreviewTable td,
#subgrupoPreviewTable td {
    color: #f5fbff;
    border-color: rgba(0, 243, 255, 0.12);
}

#emailModalPreviewTable,
#subgrupoPreviewTable {
    --bs-table-color: #f5fbff;
    --bs-table-bg: rgba(10, 23, 36, 0.9);
    --bs-table-striped-color: #f5fbff;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.05);
    --bs-table-hover-color: #ffffff;
    --bs-table-hover-bg: rgba(0, 243, 255, 0.1);
}

#emailModalPreviewTable th,
#subgrupoPreviewTable th,
#emailModalPreviewTable td,
#subgrupoPreviewTable td {
    color: #f5fbff !important;
}

#modal_emails .modal-footer,
#modal_cargar .modal-footer,
#modal_grupo .modal-footer{
    background-color: rgb(38, 73, 103) !important;
    border-top: 2px solid rgba(80, 200, 255, 0.2) !important;
    box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.2) !important;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}
/*modal */


.modal-header {
    background: linear-gradient(90deg, rgba(11, 25, 41, 0.95) 0%, rgba(38, 73, 103, 0.5) 100%) !important;
    border-bottom: 1px solid rgba(0, 243, 255, 0.3) !important; /* Línea cian abajo */
    color: #ffffff !important;
}

.modal-title {
    color: #ffffff !important;
    font-weight: bold;
    text-shadow: 0 0 2px rgba(80, 200, 255, 0.9) !important;
    margin-left: 5px;
}


.modal-header .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%) !important;
    opacity: 0.8;

}

.modal-content {
    background-color: rgb(38, 73, 103) !important;
    border: 1px solid #00f3ff !important;
    box-shadow: 0 0 25px rgba(0, 243, 255, 0.15) !important;
    color: #ffffff !important;
}

.modal-body input.form-control,
.modal-body select.form-control {
    background-color: rgba(11, 25, 41, 0.6) !important;
    border: 1px solid rgba(0, 243, 255, 0.73) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}


.modal-body input.form-control:focus,
.modal-body select.form-control:focus {
    background-color: rgba(11, 25, 41, 0.9) !important;
    border-color:rgba(0, 243, 255, 0.73)!important;
    box-shadow: 0 0 10px rgba(0, 243, 255, 0.3) !important;
}
.modal-body input.form-control::placeholder {
    color: rgba(214, 233, 255, 0.72) !important;
    opacity: 1 !important;
}

.modal-body input.ui-autocomplete-input::placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

.modal-body input.ui-autocomplete-input:disabled::placeholder {
    color: rgba(225, 238, 255, 0.78) !important;
    opacity: 1 !important;
}

.modal-body label {
    color: #ffffff !important;
    font-weight: 500;
    margin-bottom: 5px;
}



.modal-footer {
    background-color: rgba(11, 25, 41, 0.5) !important; /* Un poco más oscuro */
    border-top: 1px solid rgba(0, 243, 255, 0.3) !important; /* Línea separadora */
}


.modal-footer .btn-secondary {
    background-color: transparent !important;
    border: 1px solid #c4e5ee !important;
    color: #c4e5ee !important;
    box-shadow: 0 0 10px rgba(196, 229, 238, 0.3);
}

.modal-footer .btn-secondary:hover {
    background-color: rgba(196, 229, 238, 0.15) !important;
    color: #fff !important;
    box-shadow: 0 0 10px rgba(196, 229, 238, 0.8), inset 0 0 10px rgba(196, 229, 238, 0.5);
    transform: translateY(-2px);
}

.modal-footer .btn-primary {
    background-color: transparent !important;
    border: 1px solid #00ff88 !important;
    color: #00ff88 !important;
    box-shadow: 0 0 10px rgba(0, 255, 136, 0.3);
}

#modal_items .modal-footer {
    background: linear-gradient(180deg, rgba(8, 18, 30, 0.98) 0%, rgba(12, 22, 35, 0.98) 100%) !important;
    border-top: 1px solid rgba(0, 243, 255, 0.14) !important;
}

#modal_items .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: 0.85;
}

/*  (AUTOFILL) delos input  */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px rgb(11, 25, 41) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1px solid rgba(0, 243, 255, 0.5) !important;
    transition: background-color 5000s ease-in-out 0s;
    caret-color: #ffffff !important;
    color: #FFFFFF;
}

/* --------------------------------------------------------------
# Responsive fixes for tables and action toolbars
   SCOPE: Aplica a TODOS los módulos con .osp-table-ui
-------------------------------------------------------------- */
@media (max-width: 991.98px) {
    /* ── Toolbar tablet: flex horizontal, sin desbordamiento ── */
    .osp-table-ui .fixed-table-toolbar,
    .osp-table-ui .fixed-table-toolbar > .columns,
    .osp-table-ui .fixed-table-toolbar > .search,
    [id^="toolbar_"] {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        min-width: 0;
        overflow-x: auto;
    }

    .osp-table-ui .fixed-table-toolbar > .search {
        width: auto;
        flex: 0 0 240px;
        min-width: 180px;
        margin-top: 0;
        order: 2;
    }

    .osp-table-ui .fixed-table-toolbar > .columns {
        order: 1;
    }

    .osp-table-ui .fixed-table-toolbar > .search input,
    .osp-table-ui .fixed-table-toolbar > .search .form-control,
    .osp-table-ui input[type="search"] {
        width: 100% !important;
        max-width: 100%;
    }

    .btnGuardarT,
    .btnResetT,
    #modal_cargar .btn-outline-success {
        width: 100%;
        margin-top: 12px;
        margin-right: 0 !important;
        min-width: 0;
    }

    .modal-footer .btn {
        width: 100%;
        margin: 6px 0 !important;
    }

    .excel-upload-head {
        flex-direction: column;
    }

    .excel-upload-template-btn {
        width: 100%;
    }
}

@media (max-width: 767.98px) {

    /* ══════════════════════════════════════════════════════════
       TIPOGRAFÍA DE TABLA EN MÓVIL
    ══════════════════════════════════════════════════════════ */
    .estilos_generales th,
    .osp-table-ui .fixed-table-container .table th,
    .bootstrap-table .fixed-table-container .table th {
        font-size: 10px !important;
        padding:2px !important;
    }

    .estilos_generales td,
    .osp-table-ui .fixed-table-container .table td,
    .bootstrap-table .fixed-table-container .table td {
        font-size: 11px !important;
        padding: 7px 5px !important;
    }

    .osp-table-ui .fixed-table-container .table tr.detail-view > td {
        padding: 0 !important;
    }

    /* ══════════════════════════════════════════════════════════
       TOOLBAR: UNA SOLA FILA EN MÓVIL
       Bootstrap Table usa float-start / float-end de Bootstrap 5.
       Aunque el padre sea flex, los floats del hijo se anulan
       automáticamente — pero Bootstrap los pone con !important,
       por lo que hay que anularlos explícitamente aquí.
    ══════════════════════════════════════════════════════════ */
    .bootstrap-table .fixed-table-toolbar,
    .osp-table-ui .fixed-table-toolbar {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 4px !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        width: 100% !important;
        min-height: 44px;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch;
        padding: 0 0 4px 0 !important;
    }

    /* Anular clearfix de Bootstrap Table */
    .bootstrap-table .fixed-table-toolbar::after,
    .osp-table-ui .fixed-table-toolbar::after {
        display: none !important;
        content: none !important;
    }

    .bootstrap-table .fixed-table-toolbar::-webkit-scrollbar,
    .osp-table-ui .fixed-table-toolbar::-webkit-scrollbar {
        display: none !important;
    }

    /* Anular floats de Bootstrap 5 (float-start, float-end) dentro del toolbar */
    .bootstrap-table .fixed-table-toolbar .float-start,
    .bootstrap-table .fixed-table-toolbar .float-end,
    .osp-table-ui .fixed-table-toolbar .float-start,
    .osp-table-ui .fixed-table-toolbar .float-end {
        float: none !important;
    }

    /* Todos los hijos directos: flex items sin float ni margen extra */
    .bootstrap-table .fixed-table-toolbar > *,
    .osp-table-ui .fixed-table-toolbar > * {
        flex: 0 0 auto !important;
        float: none !important;
        clear: none !important;
        margin: 0 !important;
        align-self: center;
    }

    /* bs-bars: contiene los botones del #toolbar_items (Nuevo/Eliminar/Estado) */
    .bootstrap-table .fixed-table-toolbar .bs-bars,
    .osp-table-ui .fixed-table-toolbar .bs-bars {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 4px !important;
        float: none !important;
        order: 0;
        min-width: 0;
    }

    .bootstrap-table .fixed-table-toolbar .bs-bars:empty,
    .osp-table-ui .fixed-table-toolbar .bs-bars:empty {
        display: none !important;
    }

    /* Columns toggle */
    .bootstrap-table .fixed-table-toolbar .columns,
    .osp-table-ui .fixed-table-toolbar .columns {
        display: flex !important;
        align-items: center;
        flex-wrap: nowrap;
        gap: 4px;
        float: none !important;
        order: 1;
        flex: 0 0 auto !important;
    }

    /* Export */
    .bootstrap-table .fixed-table-toolbar .export,
    .osp-table-ui .fixed-table-toolbar .export {
        order: 2;
        float: none !important;
    }

    /* ══════════════════════════════════════════════════════════
       BOTONES TOOLBAR: ICON-ONLY EN MÓVIL
       Problema de especificidad: el selector desktop
         [id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .btn
       tiene [1,3,0]. Usamos [id^="web-"] para igualar [1,3,0]
       y ganar por orden (este bloque viene DESPUÉS en el archivo).
    ══════════════════════════════════════════════════════════ */
    [id^="web-"] .bootstrap-table .fixed-table-toolbar .btn,
    [id^="web-"] .osp-table-ui .fixed-table-toolbar .btn,
    [id^="toolbar_"] button,
    .bootstrap-table .fixed-table-toolbar .btn,
    .osp-table-ui .fixed-table-toolbar .btn {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        min-height: 36px !important;
        flex: 0 0 36px !important;
        font-size: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        overflow: hidden;
        white-space: nowrap;
    }

    /* Respetar clase .d-none inyectada por JS para ocultar botones bulk cuando no hay selección */
    [id^="toolbar_"] button.d-none,
    .bootstrap-table .fixed-table-toolbar .btn.d-none,
    .osp-table-ui .fixed-table-toolbar .btn.d-none {
        display: none !important;
    }

    /* <i> dentro de botones del toolbar: mantener tamaño */
    [id^="web-"] .bootstrap-table .fixed-table-toolbar .btn i,
    [id^="web-"] .osp-table-ui .fixed-table-toolbar .btn i,
    [id^="toolbar_"] button i,
    .bootstrap-table .fixed-table-toolbar .btn i,
    .osp-table-ui .fixed-table-toolbar .btn i {
        font-size: 16px !important;
        margin: 0 !important;
        line-height: 1;
    }

    /* Caret dropdown oculto */
    [id^="web-"] .bootstrap-table .fixed-table-toolbar .btn.dropdown-toggle::after,
    [id^="web-"] .osp-table-ui .fixed-table-toolbar .btn.dropdown-toggle::after,
    .bootstrap-table .fixed-table-toolbar .btn.dropdown-toggle::after,
    .osp-table-ui .fixed-table-toolbar .btn.dropdown-toggle::after {
        display: none !important;
    }

    .bootstrap-table .fixed-table-toolbar .dropdown-menu,
    .osp-table-ui .fixed-table-toolbar .dropdown-menu {
        max-width: calc(100vw - 32px);
    }

    /* ── Íconos via <i> Font Awesome: ya inyectados por botones() de utilMax.js ──
       #btn_nuevo  → <i class="fas fa-plus">
       #btn_remove_all → <i class="fas fa-trash-alt">
       #btn_estado_all → <i class="fas fa-sync-alt">
       El font-size:0 oculta el texto y el selector de <i> restaura el icono.
       NO se necesita ::before ya que el <i> ya existe en el DOM. */

    /* ══════════════════════════════════════════════════════════
       BÚSQUEDA: LUPA COLAPSADA EN MÓVIL
       El .search tiene float-end (Bootstrap 5) — ya anulado arriba.
       Se colapsa a 36×36px con ícono SVG de lupa.
       Al hacer focus, se expande y muestra el input.
    ══════════════════════════════════════════════════════════ */
    .bootstrap-table .fixed-table-toolbar > .search,
    .osp-table-ui .fixed-table-toolbar > .search {
        flex: 0 0 36px !important;
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        height: 36px !important;
        overflow: hidden;
        position: relative;
        border-radius: 10px;
        background: rgba(8, 10, 18, 0.9);
        border: 1px solid rgba(0, 226, 255, 0.25);
        float: none !important;
        margin: 0 !important;
        order: 10;
        align-self: center;
        transition: width 0.2s ease, max-width 0.2s ease, flex-basis 0.2s ease;
    }

    /* Ícono lupa SVG como ::before */
    .bootstrap-table .fixed-table-toolbar > .search::before,
    .osp-table-ui .fixed-table-toolbar > .search::before {
        content: "";
        position: absolute;
        inset: 0;
        background:
            url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27none%27%3E%3Cpath d=%27M11.742 10.344l3.387 3.387-1.398 1.398-3.387-3.387a6 6 0 111.398-1.398zM6.5 11A4.5 4.5 0 106.5 2a4.5 4.5 0 000 9z%27 fill=%27%23E9F7FF%27/%3E%3C/svg%3E")
            center / 16px 16px no-repeat;
        pointer-events: none;
        z-index: 1;
        opacity: 1;
        transition: opacity 0.15s;
    }

    /* Ajustar wrappers internos del input */
    .bootstrap-table .fixed-table-toolbar > .search .input-group,
    .bootstrap-table .fixed-table-toolbar > .search .search-inner,
    .osp-table-ui .fixed-table-toolbar > .search .input-group,
    .osp-table-ui .fixed-table-toolbar > .search .search-inner {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    /* Input: invisible pero funcional (click lo expande vía :focus-within) */
    .bootstrap-table .fixed-table-toolbar > .search input[type="search"],
    .bootstrap-table .fixed-table-toolbar > .search .form-control,
    .osp-table-ui .fixed-table-toolbar > .search input[type="search"],
    .osp-table-ui .fixed-table-toolbar > .search .form-control {
        position: relative;
        z-index: 2;
        width: 100% !important;
        height: 36px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 10px;
        background: transparent !important;
        color: transparent !important;
        caret-color: transparent !important;
        font-size: 0 !important;
        box-shadow: none !important;
        outline: none !important;
    }

    .bootstrap-table .fixed-table-toolbar > .search input[type="search"]::placeholder,
    .osp-table-ui .fixed-table-toolbar > .search input[type="search"]::placeholder {
        color: transparent !important;
    }

    /* focus-within: expandir y mostrar campo */
    .bootstrap-table .fixed-table-toolbar > .search:focus-within,
    .osp-table-ui .fixed-table-toolbar > .search:focus-within {
        flex: 0 0 auto !important;
        width: min(180px, calc(100vw - 160px)) !important;
        min-width: 130px !important;
        max-width: 200px !important;
        overflow: visible;
    }

    .bootstrap-table .fixed-table-toolbar > .search:focus-within::before,
    .osp-table-ui .fixed-table-toolbar > .search:focus-within::before {
        opacity: 0;
    }

    .bootstrap-table .fixed-table-toolbar > .search:focus-within input[type="search"],
    .bootstrap-table .fixed-table-toolbar > .search:focus-within .form-control,
    .osp-table-ui .fixed-table-toolbar > .search:focus-within input[type="search"],
    .osp-table-ui .fixed-table-toolbar > .search:focus-within .form-control {
        color: var(--color-text-primary, #f0f4f8) !important;
        caret-color: var(--color-text-primary, #f0f4f8) !important;
        font-size: 0.9rem !important;
        padding: 0 0.6rem 0 2rem !important;
        background: linear-gradient(180deg, rgba(12, 16, 28, 0.98), rgba(8, 10, 18, 0.98)) !important;
        border: 1px solid rgba(0, 226, 255, 0.22) !important;
    }

    /* Lupa pequeña al expandir */
    .bootstrap-table .fixed-table-toolbar > .search:focus-within::after,
    .osp-table-ui .fixed-table-toolbar > .search:focus-within::after {
        content: "";
        position: absolute;
        left: 8px;
        top: 50%;
        width: 13px;
        height: 13px;
        transform: translateY(-50%);
        background:
            url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27none%27%3E%3Cpath d=%27M11.742 10.344l3.387 3.387-1.398 1.398-3.387-3.387a6 6 0 111.398-1.398zM6.5 11A4.5 4.5 0 106.5 2a4.5 4.5 0 000 9z%27 fill=%27%23E9F7FF%27/%3E%3C/svg%3E")
            center / 13px 13px no-repeat;
        pointer-events: none;
        z-index: 3;
    }

    /* ══════════════════════════════════════════════════════════
       BOTONES DE ACCIÓN EN TABLA: ICON-ONLY EN MÓVIL
       V1 (utilMax.js): texto es text node → font-size:0 lo oculta
       V2 (utilTablaBootstrapV2.js): texto en .ui-table-action-label
          y clase .ui-table-mobile-icon-only se añade via JS
    ══════════════════════════════════════════════════════════ */

    /* V1: ocultar texto de .editar/.remover via font-size:0 */
    .osp-table-ui .fixed-table-container td .editar,
    .osp-table-ui .fixed-table-container td .remover,
    .bootstrap-table .fixed-table-container td .editar,
    .bootstrap-table .fixed-table-container td .remover,
    .estilos_generales td .editar,
    .estilos_generales td .remover {
        font-size: 0 !important;
        padding: 4px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        width: 32px !important;
        height: 32px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        margin: 2px !important;
    }

    /* Ícono <i> dentro de botón de acción: restaurar tamaño */
    .osp-table-ui .fixed-table-container td .editar i,
    .osp-table-ui .fixed-table-container td .remover i,
    .bootstrap-table .fixed-table-container td .editar i,
    .bootstrap-table .fixed-table-container td .remover i,
    .estilos_generales td .editar i,
    .estilos_generales td .remover i {
        font-size: 15px !important;
        margin: 0 !important;
        line-height: 1;
    }

    /* V2: ocultar label de texto */
    .ui-table-mobile-icon-only .ui-table-action-label {
        display: none !important;
    }

    /* V2: tamaño del botón en modo mobile icon-only */
    .ui-table-mobile-icon-only {
        font-size: 0 !important;
        padding: 4px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        width: 32px !important;
        height: 32px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 2px !important;
    }

    .ui-table-mobile-icon-only i {
        font-size: 15px !important;
        margin: 0 !important;
    }

    /* Botones genéricos en celdas */
    .osp-table-ui .fixed-table-container td .btn,
    .bootstrap-table .fixed-table-container td .btn,
    .estilos_generales td .btn {
        font-size: 0 !important;
        padding: 4px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        margin: 2px !important;
    }

    .osp-table-ui .fixed-table-container td .btn i,
    .bootstrap-table .fixed-table-container td .btn i,
    .estilos_generales td .btn i {
        font-size: 15px !important;
        margin: 0 !important;
    }

    /* ── #toolbar_items: fila horizontal ── */
    [id^="toolbar_"] {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        gap: 4px;
        align-items: center !important;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    [id^="toolbar_"]::-webkit-scrollbar {
        display: none;
    }

    /* Marketing shells: permitir que el toolbar se envuelva y no quede
       atrapado en un scroll horizontal que oculta el dropdown de descarga. */
    #tableId [id^="toolbar_"] {
        flex-wrap: wrap !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        justify-content: flex-start;
    }

    #tableId .bootstrap-table .fixed-table-toolbar,
    #tableId .osp-table-ui .fixed-table-toolbar {
        flex-wrap: wrap !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        gap: 6px !important;
    }

    #tableId .bootstrap-table .fixed-table-toolbar .dropdown-menu,
    #tableId .osp-table-ui .fixed-table-toolbar .dropdown-menu {
        max-width: min(320px, calc(100vw - 24px));
        max-height: min(55vh, 360px);
        overflow-y: auto;
        z-index: 2000;
    }

    /* Scroll horizontal en tabla */
    .osp-table-ui .fixed-table-container .table,
    .bootstrap-table .fixed-table-container .table {
        min-width: 100%;
        table-layout: auto;
    }

    .osp-table-ui .fixed-table-body,
    .bootstrap-table .fixed-table-body {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Detail view */
    .osp-row-detail {
        padding: 0.75rem;
    }

    .osp-row-detail__header {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
        margin-bottom: 0.75rem;
        padding-bottom: 0.5rem;
    }

    .osp-row-detail__title {
        font-size: 0.95rem;
    }

    .osp-row-detail__status {
        align-self: flex-start;
        font-size: 0.65rem;
        padding: 0.25rem 0.5rem;
    }

    .osp-row-detail__grid {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        gap: 0.5rem;
    }

    .osp-row-detail__item {
        padding: 0.65rem 0.75rem;
        gap: 0.2rem;
    }

    .osp-row-detail__label {
        font-size: 0.65rem;
    }

    .osp-row-detail__value {
        font-size: 0.85rem;
    }
}


.osp-table-ui .fixed-table-pagination {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin-top: 8px;
    padding: 8px 10px;
    background: linear-gradient(180deg, rgba(10, 20, 33, 0.94), rgba(7, 16, 27, 0.98)) !important;
    border: 0 !important;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
    color: var(--color-text-primary, #f0f4f8) !important;
}

.osp-table-ui .fixed-table-pagination::after {
    display: none !important;
}

.osp-table-ui .fixed-table-pagination > .pagination-detail,
.osp-table-ui .fixed-table-pagination > .pagination {
    float: none !important;
    margin: 0 !important;
}

.osp-table-ui .fixed-table-pagination > .pagination-detail {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 8px;
}

.osp-table-ui .fixed-table-pagination .pagination,
.bootstrap-table .fixed-table-pagination > .pagination {
    gap: 4px;
    align-items: center;
    padding: 3px;
    background: rgba(6, 14, 24, 0.76);
    border: 0 !important;
    border-radius: 10px;
}

.osp-table-ui .fixed-table-pagination .pagination .page-link,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination .page-link {
    min-width: 34px;
    min-height: 34px;
    padding: 0.32rem 0.62rem;
    background-color: rgba(6, 14, 24, 0.98) !important;
    border: 1px solid rgba(0, 229, 255, 0.14) !important;
    color: #d7eaf4 !important;
    border-radius: 9px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), 0 1px 0 rgba(0, 0, 0, 0.2);
    transition: all 0.2s ease;
}

.osp-table-ui .fixed-table-pagination .pagination .page-link:hover,
.osp-table-ui .fixed-table-pagination .pagination .page-link:focus,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination .page-link:hover,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination .page-link:focus {
    background-color: rgba(0, 229, 255, 0.08) !important;
    border-color: rgba(0, 229, 255, 0.34) !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 1px rgba(0, 229, 255, 0.14), 0 6px 14px rgba(0, 0, 0, 0.18);
}

.osp-table-ui .fixed-table-pagination .pagination .page-item.active .page-link,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-item.active > a.page-link,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.active > a.page-link {
    background: linear-gradient(180deg, rgba(0, 214, 236, 0.95), rgba(0, 168, 189, 0.96)) !important;
    border-color: rgba(0, 214, 236, 0.95) !important;
    color: #031019 !important;
    font-weight: 700;
    box-shadow: 0 10px 20px rgba(0, 214, 236, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.osp-table-ui .fixed-table-pagination .pagination .page-item.disabled .page-link,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.disabled > a.page-link {
    background-color: rgba(255, 255, 255, 0.03) !important;
    border-color: rgba(255, 255, 255, 0.07) !important;
    color: rgba(233, 247, 255, 0.34) !important;
    box-shadow: none;
}

.osp-table-ui .fixed-table-pagination .pagination .page-item .page-link:focus-visible,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination .page-link:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 2px rgba(0, 229, 255, 0.16), 0 0 0 4px rgba(0, 0, 0, 0.3);
}

.osp-table-ui .fixed-table-pagination .pagination .page-item:not(.active):not(.disabled) .page-link,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li:not(.active):not(.disabled) > a.page-link {
    color: #d7eaf4 !important;
}

.osp-table-ui .fixed-table-pagination .pagination .page-item:not(.active):not(.disabled) .page-link:hover,
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li:not(.active):not(.disabled) > a.page-link:hover {
    color: #ffffff !important;
}

.osp-table-ui .fixed-table-pagination .pagination-info,
.osp-table-ui .fixed-table-pagination .page-list {
    color: #d9ebf7 !important;
}

.osp-table-ui .fixed-table-pagination .page-list .btn,
.osp-table-ui .fixed-table-pagination .page-list .dropdown-toggle {
    min-height: 34px;
    padding: 0.3rem 0.7rem;
    background: linear-gradient(180deg, rgba(10, 15, 26, 0.98), rgba(6, 10, 18, 0.98)) !important;
    border: 1px solid rgba(0, 234, 211, 0.16) !important;
    color: rgba(236, 250, 255, 0.94) !important;
    border-radius: 9px !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.03),
        0 6px 14px rgba(0, 0, 0, 0.18);
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.osp-table-ui .fixed-table-pagination .page-list .dropdown-toggle:hover,
.osp-table-ui .fixed-table-pagination .page-list .dropdown-toggle:focus,
.osp-table-ui .fixed-table-pagination .page-list .dropdown-toggle.show,
.osp-table-ui .fixed-table-pagination .page-list .dropdown-toggle[aria-expanded="true"] {
    background: linear-gradient(180deg, rgba(0, 234, 211, 0.16), rgba(0, 168, 189, 0.2)) !important;
    border-color: rgba(0, 234, 211, 0.36) !important;
    color: #ffffff !important;
    box-shadow:
        0 0 0 1px rgba(0, 234, 211, 0.08),
        0 10px 18px rgba(0, 0, 0, 0.2);
}

.osp-table-ui .fixed-table-pagination .dropdown-menu,
.osp-table-ui .fixed-table-pagination .page-list .dropdown-menu {
    background: linear-gradient(180deg, rgba(8, 12, 22, 0.98), rgba(4, 8, 15, 0.99)) !important;
    border: 1px solid rgba(0, 234, 211, 0.22) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.45) !important;
}

.osp-table-ui .fixed-table-pagination .dropdown-item,
.osp-table-ui .fixed-table-pagination .dropdown-menu li > a,
.osp-table-ui .fixed-table-pagination .dropdown-menu li > span {
    color: #dfeefa !important;
    background-color: transparent !important;
}

.osp-table-ui .fixed-table-pagination .dropdown-item:hover,
.osp-table-ui .fixed-table-pagination .dropdown-item:focus,
.osp-table-ui .fixed-table-pagination .dropdown-menu li > a:hover {
    background-color: rgba(0, 234, 211, 0.14) !important;
    color: #ffffff !important;
}

.osp-table-ui .fixed-table-pagination .pagination .page-item:first-child .page-link,
.osp-table-ui .fixed-table-pagination .pagination .page-item:last-child .page-link {
    padding-left: 0.9rem;
    padding-right: 0.9rem;
}


@media (max-width: 767.98px) {
    .osp-table-ui .fixed-table-pagination {
        justify-content: center;
        padding: 10px 12px;
        gap: 10px;
    }

    .osp-table-ui .fixed-table-pagination > .pagination-detail,
    .osp-table-ui .fixed-table-pagination > .pagination {
        width: 100%;
        justify-content: center;
    }

    .osp-table-ui .fixed-table-pagination .pagination {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }

    .osp-table-ui .fixed-table-pagination .pagination .page-link,
    .bootstrap-table .fixed-table-pagination > .pagination ul.pagination .page-link {
        min-width: 36px;
        min-height: 36px;
        padding: 0.35rem 0.65rem;
        border-radius: 9px !important;
    }

    .osp-table-ui .fixed-table-pagination .pagination-info,
    .osp-table-ui .fixed-table-pagination .page-list {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .osp-table-ui .fixed-table-pagination .page-list .btn,
    .osp-table-ui .fixed-table-pagination .page-list .dropdown-toggle {
        min-height: 36px;
        padding: 0.35rem 0.7rem;
    }
}

@media (max-width: 575.98px) {
    [id^="web-administrativos-"] .osp-table-ui .fixed-table-toolbar .btn {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
    }

    .osp-table-ui .fixed-table-pagination {
        padding: 10px 10px;
    }

    .osp-table-ui .fixed-table-pagination .pagination {
        gap: 4px;
    }

    .osp-table-ui .fixed-table-pagination .pagination .page-link,
    .bootstrap-table .fixed-table-pagination > .pagination ul.pagination .page-link {
        min-width: 34px;
        min-height: 34px;
        padding: 0.3rem 0.55rem;
    }
}

.ui-widget-content {
    background: var(--color-surface-strong, #0d1522) !important;
    color: var(--color-text-primary, #f0f4f8) !important;
    border: 1px solid var(--color-border-soft, rgba(0, 229, 255, 0.15)) !important;
}

.ui-widget-content a {
    color: var(--color-text-primary, #f0f4f8) !important;
}

/* ==========================================================================
   MODAL DE CONFIRMACIÓN (SWEETALERT2)
   Mejora de los colores de los botones dentro de los modales de alerta
   ========================================================================== */

/* Contenedor del Modal (para consistencia con el diseño dark premium) */
div:where(.swal2-container) div:where(.swal2-popup) {
    background: linear-gradient(180deg, rgba(13, 19, 31, 0.98), rgba(7, 11, 18, 0.98)) !important;
    border: 1px solid rgba(0, 226, 255, 0.15) !important;
    border-radius: 16px !important;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(255, 255, 255, 0.03) !important;
    color: #e9f7ff !important;
}

div:where(.swal2-container) .swal2-title {
    color: #ffffff !important;
    text-shadow: 0 0 10px rgba(0, 226, 255, 0.15) !important;
}

div:where(.swal2-container) .swal2-html-container {
    color: rgba(240, 247, 250, 0.85) !important;
}

/* Botón Aceptar / Confirmar (Estilo Primary Brillante) */
div:where(.swal2-container) button.swal2-confirm,
div:where(.swal2-container) button.swal2-confirm.btn-primary {
    background: linear-gradient(180deg, rgba(0, 140, 255, 0.85), rgba(0, 95, 200, 0.95)) !important;
    border: 1px solid rgba(0, 180, 255, 0.6) !important;
    color: #ffffff !important;
    box-shadow: 
        inset 0 1px 0 rgba(255, 255, 255, 0.15), 
        0 4px 12px rgba(0, 0, 0, 0.3) !important;
    font-weight: 600 !important;
    padding: 0.65rem 1.8rem !important;
    border-radius: 10px !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
    transition: all 0.25s ease !important;
}

div:where(.swal2-container) button.swal2-confirm:hover,
div:where(.swal2-container) button.swal2-confirm.btn-primary:hover {
    background: linear-gradient(180deg, rgba(0, 160, 255, 0.95), rgba(0, 110, 220, 0.95)) !important;
    border-color: rgba(0, 200, 255, 0.8) !important;
    box-shadow: 
        0 0 15px rgba(0, 140, 255, 0.4), 
        0 8px 16px rgba(0, 0, 0, 0.4) !important;
    transform: translateY(-2px) !important;
    color: #ffffff !important;
}

/* Botón Cancelar (Estilo Outline / Secundario Elegante) */
div:where(.swal2-container) button.swal2-cancel,
div:where(.swal2-container) button.swal2-cancel.btn-danger {
    background: linear-gradient(180deg, rgba(30, 40, 56, 0.8), rgba(16, 24, 36, 0.9)) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: rgba(240, 247, 250, 0.9) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 10px rgba(0, 0, 0, 0.15) !important;
    font-weight: 600 !important;
    padding: 0.65rem 1.8rem !important;
    border-radius: 10px !important;
    transition: all 0.25s ease !important;
}

div:where(.swal2-container) button.swal2-cancel:hover,
div:where(.swal2-container) button.swal2-cancel.btn-danger:hover {
    background: linear-gradient(180deg, rgba(255, 86, 132, 0.15), rgba(183, 24, 63, 0.25)) !important;
    border-color: rgba(255, 120, 160, 0.6) !important;
    color: #ffffff !important;
    box-shadow: 
        0 0 12px rgba(255, 86, 132, 0.3), 
        0 8px 16px rgba(0, 0, 0, 0.3) !important;
    transform: translateY(-2px) !important;
}

/* ==========================================================================
   FIX: SCROLL DE MODALES EN MÓVILES

   ========================================================================== */
@media (max-width: 767.98px) {
  
    .modal {
        overflow-x: hidden !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important; 
        overscroll-behavior: contain;
    }
    
    .modal-dialog {
        margin: 0.5rem auto !important;
        display: flex !important;
        align-items: flex-start !important;
        min-height: calc(100% - 1rem) !important;
    }
    
  
    .modal-dialog-scrollable {
        height: auto !important;
        max-height: calc(100vh - 1rem) !important;
    }
    
    .modal-dialog-scrollable .modal-content {
        height: auto !important;
        max-height: calc(100vh - 1rem) !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin-bottom: 0 !important;
    }
    
    .modal-dialog-scrollable .modal-body {
        overflow-y: auto !important;
        max-height: calc(100vh - 8rem) !important;
        flex: 1 1 auto !important;
        padding: 1rem !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;
    Color:#fff;
}

/* Estilos para el texto de WhatsApp y Telegram */
.whatsapp-text, .telegram-text {
    font-size:14px;
}

.whatsapp-text{
    color:#fff !important;
}

/* 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;
    appearance: textfield;
}


.empresa {
    font-family: 'Bradley Hand ITC', cursive;
    font-size: 25px;
}

.idIngredientes {
    text-align: center;
    font-family: 'Roboto  Thin', cursive;
    font-size: 25px;
}

.idContenido {
    text-align: center;
    font-family: 'arial  Thin', cursive;
    font-size: 20px;

}

.bannerItem {
    display: block;
    width: 100%;
    height: 500px;
}
.bannerItem img {
    height: 100%;
    width: 100%;
}

.img-normalizada{
    width: 350px;
    height: 280px;
    border-radius: 10px;
    object-fit: cover;
}

.idPrecio {
    text-align: center;
    font-family: 'arial  Thin', cursive;
    font-size: 35px;
    animation: blink 1.5s infinite;
}

/*@keyframes blink {*/
/*    0%, 100% {*/
/*        opacity: 1;*/
/*    }*/
/*    50% {*/
/*        opacity: 0;*/
/*    }*/
/*}*//* --------------------------------------------------------------
# Responsive adjustments for floating actions and media blocks
-------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .bannerItem {
        height: clamp(220px, 45vw, 380px);
    }

    .img-normalizada {
        width: 100%;
        max-width: 320px;
        height: auto;
        aspect-ratio: 5 / 4;
    }
}

@media (max-width: 767.98px) {
    .whatsapp-container,
    .telegram-container {
        right: 10px;
        padding: 10px;
    }

    .telegram-container {
        bottom: 60px;
    }

    .whatsapp-text,
    .telegram-text {
        display: none;
    }

    .whatsapp-icon,
    .telegram-icon {
        margin-right: 0;
        font-size: 22px;
    }

    .empresa {
        font-size: 20px;
    }

    .idPrecio {
        font-size: 28px;
    }
}

/*!**********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/subscription-expiration.css ***!
  \**********************************************************************************************************************************/
.expiration-card-wrapper {
    max-width: 760px;
    margin: 0 auto 1.5rem;
}

.expiration-card {
    display: flex;
    align-items: center;
    gap: 5rem;
    padding: 1rem 1.25rem;
    border-radius: 14px;
    border: 1px solid rgba(80, 200, 255, 0.35);
    background: linear-gradient(135deg, rgba(9, 32, 53, 0.92), rgba(20, 58, 92, 0.78));
    box-shadow: 0 14px 32px rgba(2, 10, 21, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
    margin-bottom: 50px;
}

.expiration-card__icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(0, 170, 255, 0.15);
    color: #7ae2ff;
    font-size: 1.2rem;
    border: 1px solid rgba(122, 226, 255, 0.35);
}

.expiration-card__content {
    min-width: 0;
}

.expiration-card__title {
    margin: 0;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.expiration-card__countdown {
    margin: 0.2rem 0 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    word-break: break-word;
}

.expiration-card__countdown.is-expired {
    color: #ffb0bb !important;
    text-shadow: 0 0 12px rgba(255, 120, 145, 0.7) !important;
}

.expiration-navbar {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(80, 200, 255, 0.28);
    background: linear-gradient(135deg, rgba(9, 32, 53, 0.92), rgba(20, 58, 92, 0.78));
    color: #e6f8ff;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.1;
    max-width: min(56vw, 360px);
}

.expiration-navbar i {
    font-size: 0.9rem;
    color: #7ae2ff;
    flex-shrink: 0;
}

#contador-expiracion-navbar {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dropdown-header #expiration-navbar-item .expiration-navbar {
    max-width: 100%;
    width: 100%;
}

#seccion-inicial.full-height:not(.d-none) {
    min-height: calc(100vh - 140px);
    display: flex;
    align-items: center;
    justify-content: center;
}

#seccion-inicial.full-height.d-none {
    display: none !important;
}

.subscription-shell {
    max-width: 1080px;
    margin: 0 auto;
}

.subscription-hero {
    background: linear-gradient(135deg, rgba(8, 27, 45, 0.92), rgba(22, 57, 91, 0.78));
    border: 1px solid rgba(80, 200, 255, 0.22);
    border-radius: 18px;
    padding: 2.25rem 1.5rem;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.3);
}

.subscription-hero .lead {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}

.subscription-cta-btn {
    min-width: 210px;
    border-radius: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.subscription-plan-card {
    background: linear-gradient(140deg, rgba(8, 27, 45, 0.95), rgba(18, 49, 78, 0.8));
    border: 1px solid rgba(80, 200, 255, 0.24);
    border-radius: 16px;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}

.subscription-plan-card__header {
    background: linear-gradient(90deg, rgba(0, 174, 255, 0.15), rgba(0, 243, 255, 0.04));
    border-bottom: 1px solid rgba(80, 200, 255, 0.2);
    padding: 0.95rem 1rem;
}

.subscription-plan-card__title {
    font-size: 1rem;
    letter-spacing: 0.05em;
}

.subscription-plan-card__meta {
    color: #d9f2ff;
    margin-bottom: 0.5rem;
}

.subscription-plan-card__price {
    font-size: 1.4rem;
    font-weight: 700;
    color: #7ae2ff;
    margin-bottom: 1rem;
}

.subscription-plan-card__features {
    margin-top: 0.75rem;
    margin-bottom: 0;
    max-height: 220px;
    overflow-y: auto;
    padding-right: 0.4rem;
}

.subscription-plan-card__features li {
    background: rgba(122, 226, 255, 0.08);
    border: 1px solid rgba(122, 226, 255, 0.16);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.55rem;
}

.subscription-plan-card__features strong {
    color: #e5f8ff;
}

.subscription-plan-card__features small {
    color: rgba(229, 248, 255, 0.8) !important;
}

.subscription-plan-card__button {
    border-radius: 10px;
    font-weight: 700;
}

#info-plan-seleccionado.subscription-selected-plan {
    border: 1px solid rgba(80, 200, 255, 0.3);
    background: linear-gradient(120deg, rgba(11, 40, 64, 0.9), rgba(17, 63, 97, 0.72));
    border-radius: 12px;
    color: #e6f8ff;
    margin: 1rem auto 0;
    max-width: 980px;
}

.subscription-selected-plan .btn {
    color: #9cdfff !important;
    text-decoration: none;
    font-weight: 700;
}

#vista-tres .subscription-payment-panel {
    background: linear-gradient(140deg, rgba(8, 27, 45, 0.95), rgba(19, 54, 86, 0.82));
    border: 1px solid rgba(80, 200, 255, 0.2);
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.24);
}

.subscription-payment-btn {
    border-radius: 12px;
    min-height: 56px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

@media (max-width: 768px) {
    .expiration-card {
        padding: 0.9rem 1rem;
    }

    .expiration-card__countdown {
        font-size: 0.95rem;
    }

    .expiration-navbar {
        max-width: 48vw;
        font-size: 0.72rem;
        padding: 0.28rem 0.55rem;
    }

    .subscription-hero {
        padding: 1.5rem 1rem;
    }
}

/*!**************************************************************************************************************!*\
  !*** 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 --- */

/* --- Utilidades y Widgets --- */

/* --- Pickr (Color Picker) --- */

/* --- Estilos personalizados del proyecto --- */

/*!***************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/vistasFormulario/animaciones.css ***!
  \***************************************************************************************************************************************/
/* Base global de animaciones para las vistas públicas de Marketing. */

/* Utilidades compartidas; cada vista decide qué efecto usar. */
.marketing-animation-delay-1 { animation-delay: .08s !important; }
.marketing-animation-delay-2 { animation-delay: .16s !important; }
.marketing-animation-delay-3 { animation-delay: .24s !important; }

@media (prefers-reduced-motion: reduce) {
    body.marketing-public .preview-card,
    body.marketing-public .preview-card > *,
    body.marketing-public [class*="animate__"] {
        animation: none !important;
        transition: none !important;
    }
}

/*!******************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/configuracion/modal.css ***!
  \******************************************************************************************************************************/
.modalStyle .modal-content
{
    background-color: rgb(38, 73, 103) !important;
    border: 1px solid #00f3ff !important;
    box-shadow: 0 0 25px rgba(0, 243, 255, 0.15) !important;
    color: #ffffff !important;
}

.modalStyle .modal-header
{
    background: linear-gradient(90deg, rgba(11, 25, 41, 0.95) 0%, rgba(38, 73, 103, 0.5) 100%);
    border-bottom: 1px solid rgba(0, 243, 255, 0.3) !important;
}

.modalStyle .modal-title
{
    color: #ffffff !important;
    font-weight: bold;
    text-shadow: 0 0 6px rgba(80, 200, 255, 0.9),
    0 0 14px rgba(80, 200, 255, 0.7) !important;
    margin-left: 5px;
}

.modalStyle .btn-close
{
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: 0.8;
}

.modalStyle .table {
    background-color: rgba(17, 47, 71, 0.85) !important;
    color: #ffffff !important;
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    margin-bottom: 0;
    border-radius: 6px;
}

.modalStyle .table th,
.modalStyle .table td {
    border: 1px solid rgba(80, 200, 255, 0.15) !important; /* Rejilla sutil */
    vertical-align: middle;
    color: #e9f7ff !important;
    padding: 8px;
    font-size: 13px;
    background-color: inherit;
}

.modalStyle .table thead th {
    background-color: rgba(0, 150, 255, 0.2) !important;
    color: #ffffff !important;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 1px;
    border-bottom: 2px solid #00f3ff !important;
    text-align: center;
}

.modalStyle .table tbody th {
    text-align: left !important;
    color: #ffffff !important;
    font-weight: normal;
}

.modalStyle .table tbody tr:hover td,
.modalStyle .table tbody tr:hover th,
.modal-content .table tbody tr:hover th
{
    background-color: rgba(0, 243, 255, 0.15) !important; /* Más brillante al pasar mouse */
    cursor: pointer;
}

.modalStyle .nav-tabs {
    border-bottom: 1px solid rgba(80, 200, 255, 0.2);
}

.modalStyle .nav-link {
    color: #a0c0d0;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}

.modalStyle .nav-link:hover {
    color: #00f3ff;
    background-color: rgba(0, 243, 255, 0.05);
}

.modalStyle .nav-link.active {
    background-color: rgba(0, 243, 255, 0.1) !important;
    color: #00f3ff !important;
    border-color: rgba(0, 243, 255, 0.5) rgba(0, 243, 255, 0.5) transparent !important;
    text-shadow: 0 0 8px rgba(0, 243, 255, 0.4);
    font-weight: bold;
}


.modalStyle input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    background-color: rgba(11, 25, 41, 0.8);
    border: 1px solid #00f3ff;
    border-radius: 3px;
    cursor: pointer;
    display: inline-block;
    position: relative;
    vertical-align: middle;
}

.modalStyle input[type="checkbox"]:checked {
    background-color: transparent;
}

.modalStyle input[type="checkbox"]:checked::after {
    content: '✔';
    font-size: 12px;
    color: #00f3ff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: bold;
}

.modalStyle .card,
.modalStyle .card-body,
.modalStyle .tab-content,
.modalStyle .tab-pane {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.modalStyle .card-title {
    color: #ffffff;
    border-left: 3px solid #00f3ff;
    padding-left: 10px;
    margin-bottom: 20px;
}

.modalStyle .btn
{
    border-width: 2px !important;
    margin-right: 15px !important;
    font-weight: 600;
    letter-spacing: 1px;
    padding: 6px 20px;
    transition: all 0.3s ease-in-out;
}

.modalStyle .btn-outline-success
{
    color: #00ff88 !important;
    border-color: #00ff88 !important;
    background-color: transparent;
    box-shadow: 0 0 10px rgba(0, 255, 136, 0.3);
}

.modalStyle .btn-outline-success:hover
{
    background-color: rgba(0, 255, 136, 0.15) !important;
    color: #ffffff !important;
    box-shadow: 0 0 10px rgba(0, 255, 136, 0.8), inset 0 0 10px rgba(0, 255, 136, 0.5);
    transform: translateY(-2px);
}

.modalStyle .btn-outline-secondary

{
    color: #c4e5ee !important;
    border-color: #c4e5ee !important;
    background-color: transparent;
    box-shadow: 0 0 10px rgba(196, 229, 238, 0.3);
}

.modalStyle .btn-outline-secondary:hover
{
    background-color: rgba(196, 229, 238, 0.15) !important;
    color: #ffffff !important;
    box-shadow: 0 0 10px rgba(196, 229, 238, 0.8), inset 0 0 10px rgba(196, 229, 238, 0.5);
    transform: translateY(-2px);
}

.requiredStyle{
    color: white !important;
}

.modalStyle .modal-footer {
    background-color: rgba(11, 25, 41, 0.5) !important;
    border: none !important;
    border-top: 1px solid rgba(0, 243, 255, 0.3) !important;
    color: #fff;
}

/* --------------------------------------------------------------
# Responsive modal tabs and table overflow
-------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .modalStyle .nav-tabs {
        overflow-x: auto;
        overflow-y: hidden;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }

    .modalStyle .nav-tabs .nav-item {
        flex: 0 0 auto;
    }

    .modalStyle .table {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .modalStyle .btn {
        margin-right: 0 !important;
    }

    .modalStyle .modal-footer {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .modalStyle .modal-footer .btn {
        flex: 1 1 180px;
    }
}

@media (max-width: 575.98px) {
    .modalStyle .modal-footer .btn {
        width: 100%;
        flex: 1 1 100%;
    }

    .modalStyle .table th,
    .modalStyle .table td {
        font-size: 12px;
        padding: 6px;
    }
}

/*!*************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/localeSwitcher.css ***!
  \*************************************************************************************************************************/
.navbar-locale-switch,
.auth-login-locale-bar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 126px;
}

.auth-login-locale-bar {
    width: 100%;
    margin-bottom: 1.25rem;
}

.auth-login-locale-switch,
.navbar-locale-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.locale-select-shell {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    cursor: pointer;
    border: 1px solid rgba(116, 234, 255, 0.35);
    border-radius: 999px;
    box-shadow: 0 14px 28px rgba(2, 16, 29, 0.18);
    min-height: 42px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.locale-select-shell:hover {
    border-color: rgba(116, 234, 255, 0.62);
    box-shadow: 0 18px 34px rgba(2, 16, 29, 0.24);
    transform: translateY(-1px);
}

#kit-locale-select.form-select-sm,
.locale-select-enhanced {
    position: relative;
    z-index: 2;
    width: 100%;
    min-width: 126px;
    height: 42px;
    padding: 0;
    margin: 0;
    opacity: 0;
    pointer-events: none;
    border: 0;
    background: transparent;
    appearance: none;
}

.locale-select-label {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    padding: 0 2rem 0 2.3rem;
    color: #e8fbff;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    pointer-events: none;
    user-select: none;
}

.locale-select-label::before {
    content: "🌐";
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
}

.locale-select-label::after {
    content: "";
    position: absolute;
    right: 0.95rem;
    top: 50%;
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid rgba(232, 251, 255, 0.86);
    border-bottom: 2px solid rgba(232, 251, 255, 0.86);
    transform: translateY(-65%) rotate(45deg);
    transition: transform 0.2s ease;
}

.locale-select-shell.is-open .locale-select-label::after {
    transform: translateY(-15%) rotate(225deg);
}

.locale-select-label[data-locale^="en"]::before {
    content: "🇺🇸";
}

.locale-select-label[data-locale^="es"]::before {
    content: "🇪🇸";
}

.locale-select-label[data-locale^="pt"]::before {
    content: "🇧🇷";
}

.locale-select-label[data-locale^="fr"]::before {
    content: "🇫🇷";
}

.locale-select-menu {
    position: absolute;
    top: calc(100% + 0.55rem);
    right: 0;
    min-width: 100%;
    padding: 0.45rem;
    border-radius: 1rem;
    border: 1px solid rgba(116, 234, 255, 0.26);
    background: rgb(18 17 32);
    box-shadow: 0 22px 38px rgba(2, 16, 29, 0.3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    z-index: 25;
}

.locale-select-shell.is-open .locale-select-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.locale-select-option {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    border: 0;
    border-radius: 0.8rem;
    background: transparent;
    color: #e8fbff;
    padding: 0.7rem 0.85rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.locale-select-option:hover,
.locale-select-option.is-active {
    background: rgb(21 32 73 / 81%);
    color: #75eaff;
}

.locale-select-option-flag {
    font-size: 1rem;
    line-height: 1;
}

.locale-select-option-flag::before {
    content: "🌐";
}

.locale-select-option[data-locale^="en"] .locale-select-option-flag::before {
    content: "🇺🇸";
}

.locale-select-option[data-locale^="es"] .locale-select-option-flag::before {
    content: "🇪🇸";
}

.locale-select-option[data-locale^="pt"] .locale-select-option-flag::before {
    content: "🇧🇷";
}

.locale-select-option[data-locale^="fr"] .locale-select-option-flag::before {
    content: "🇫🇷";
}

.locale-select-option-text {
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

@media (max-width: 768px) {
    .navbar-locale-switch,
    .auth-login-locale-bar {
        min-width: 82px;
    }

    .locale-select-shell {
        min-height: 38px;
    }

    #kit-locale-select.form-select-sm,
    .locale-select-enhanced {
        min-width: 82px;
        height: 38px;
    }

    .locale-select-label {
        justify-content: center;
        padding: 0 1.85rem 0 1.85rem;
        font-size: 0.82rem;
    }

    .locale-select-label::before {
        left: 0.6rem;
    }

    .locale-select-label::after {
        right: 0.75rem;
    }

    .locale-select-menu {
        min-width: 120px;
    }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qjs7SUFFQTs7UUFFSSxlQUFlO1FBQ2YsWUFBWTtJQUNoQjs7SUFFQTtRQUNJLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsa0JBQWtCO0lBQ3RCOztJQUVBO1FBQ0ksWUFBWTtJQUNoQjs7SUFFQTtRQUNJLGNBQWM7SUFDbEI7O0lBRUE7UUFDSSxnQkFBZ0I7SUFDcEI7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvc3R5bGUuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdGFibGVzLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Zpc3Rhcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9zdWJzY3JpcHRpb24tZXhwaXJhdGlvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9hcHAuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdmlzdGFzRm9ybXVsYXJpby9hbmltYWNpb25lcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb25maWd1cmFjaW9uL21vZGFsLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2xvY2FsZVN3aXRjaGVyLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiogVGVtcGxhdGUgTmFtZTogTmljZUFkbWluIC0gdjIuNS4wXG4qIFRlbXBsYXRlIFVSTDogaHR0cHM6Ly9ib290c3RyYXBtYWRlLmNvbS9uaWNlLWFkbWluLWJvb3RzdHJhcC1hZG1pbi1odG1sLXRlbXBsYXRlL1xuKiBBdXRob3I6IEJvb3RzdHJhcE1hZGUuY29tXG4qIExpY2Vuc2U6IGh0dHBzOi8vYm9vdHN0cmFwbWFkZS5jb20vbGljZW5zZS9cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEdlbmVyYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiN1aS1pZC0xIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG46cm9vdCB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAtLWNvbG9yLWJnLXBhZ2U6ICMxMDBmMWM7XG4gIC0tY29sb3ItYmctcGFnZS0yOiAjMGMwYjE4O1xuICAtLWNvbG9yLXN1cmZhY2U6IHJnYmEoMjIsIDIxLCAzOCwgMC42NSk7XG4gIC0tY29sb3Itc3VyZmFjZS1zdHJvbmc6IHJnYmEoMTgsIDE3LCAzMiwgMC45NCk7XG4gIC0tY29sb3Itc3VyZmFjZS1zb2Z0OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAtLWNvbG9yLWJvcmRlci1zb2Z0OiByZ2JhKDAsIDIzNCwgMjExLCAwLjA4KTtcbiAgLS1jb2xvci1ib3JkZXItc3Ryb25nOiByZ2JhKDAsIDIzNCwgMjExLCAwLjI1KTtcbiAgLS1jb2xvci1hY2NlbnQtbmVvbjogIzAwZTJmZjtcbiAgLS1jb2xvci10ZXh0LXByaW1hcnk6ICNmMmYyZjI7XG4gIC0tY29sb3ItdGV4dC1zZWNvbmRhcnk6ICNhNGEzYjQ7XG4gIC0tY29sb3ItYWNjZW50OiAjMDBlYWQzO1xuICAtLWNvbG9yLWFjY2VudC1zb2Z0OiByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xKTtcbiAgLS1jb2xvci1hY2NlbnQtc2Vjb25kYXJ5OiAjNGQ2YmZmO1xuICAtLXNoYWRvdy1zb2Z0OiAwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICAtLXNoYWRvdy1nbG93OiAwIDAgMThweCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE4KTtcbiAgLS1yYWRpdXMtbGc6IDE2cHg7XG4gIC0tcmFkaXVzLW1kOiAxMHB4O1xufVxuXG5odG1sIHtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCkgdHJhbnNwYXJlbnQ7XG59XG5cbmh0bWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmctcGFnZSkgIWltcG9ydGFudDtcbn1cblxuaHRtbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ3LCAxMjgsIDI1NSwgMC41NSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuaHRtbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbmh0bWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuaHRtbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSg0NywgMTI4LCAyNTUsIDAuNzgpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJTcGFjZSBHcm90ZXNrXCIsIFwiSW50ZXJcIiwgXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxOCUgMTQlLCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xOCksIHRyYW5zcGFyZW50IDIyJSksXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4MiUgMTAlLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjEpLCB0cmFuc3BhcmVudCAxOCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDEwMCUsIHJnYmEoNzcsIDEwNywgMjU1LCAwLjA4KSwgdHJhbnNwYXJlbnQgMjglKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGExMDIwIDAlLCAjMTAxYTMxIDM4JSwgIzE2MjQzZCA2NCUsICMwYTEwMjAgMTAwJSk7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG59XG5cbmJvZHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTUlIDAlLCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xOCksIHRyYW5zcGFyZW50IDM0JSksXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTglLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjA2KSwgdHJhbnNwYXJlbnQgMjQlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICBjaXJjbGUgYXQgODUlIDEwMCUsXG4gICAgICByZ2JhKDc3LCAxMDcsIDI1NSwgMC4xMiksXG4gICAgICB0cmFuc3BhcmVudCAzNiVcbiAgICApO1xuICB6LWluZGV4OiAtMTtcbn1cblxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxudGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbnRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG50ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG5zZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbnNlbGVjdDotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICNlOWY3ZmYgIWltcG9ydGFudDtcbiAgY2FyZXQtY29sb3I6ICNlOWY3ZmYgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0NywgMTI4LCAyNTUsIDAuMzUpICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHJnYmEoMjIsIDIxLCAzOCwgMC45MikgaW5zZXQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHJnYmEoMjIsIDIxLCAzOCwgMC45MikgaW5zZXQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDk5OTk5cyBlYXNlLW91dCAwcyxcbiAgICBjb2xvciA5OTk5OXMgZWFzZS1vdXQgMHM7XG59XG5cbmlucHV0OmF1dG9maWxsLFxudGV4dGFyZWE6YXV0b2ZpbGwsXG5zZWxlY3Q6YXV0b2ZpbGwge1xuICBjb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAyMSwgMzgsIDAuOTIpICFpbXBvcnRhbnQ7XG59XG5cbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBjb2xvci1zY2hlbWU6IGRhcms7XG59XG5cbnNlbGVjdCxcbm9wdGlvbixcbm9wdGdyb3VwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZS1zdHJvbmcpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpICFpbXBvcnRhbnQ7XG59XG5cbmEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKiBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzQ4Y2E1NTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59ICovXG5cbmgxIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG59XG5cbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNYWluXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jbWFpbiB7XG4gIC8qIHBhcnRlIGRlIGFiYWpvIGRlbCBuYXZiYXIsICh0aXR0bGUpKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xufVxuXG4jbWFpbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDUwYjE0ICFpbXBvcnRhbnQ7XG59XG5cbiNtYWluOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jbWFpbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuI21haW4ge1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KSB0cmFuc3BhcmVudDtcbn1cblxuI21haW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuI21haW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICNtYWluIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUGFnZSBUaXRsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2V0aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5wYWdldGl0bGUgaDEge1xuICBmb250LXNpemU6IDM0cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi5sb2dvIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmRyb3Bkb3duLW1lbnUtYXJyb3c6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtN3B4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VhZWRmMTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYWVkZjE7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGRyb3Bkb3duLWFuaW1hdGUge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGRyb3Bkb3duLWFuaW1hdGUge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCYWNrIHRvIHRvcCBidXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5iYWNrLXRvLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICByaWdodDogMTVweDtcbiAgYm90dG9tOiAxNXB4O1xuICB6LWluZGV4OiA5OTk5OTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZS1zdHJvbmcpO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNvZnQpO1xufVxuXG4uYmFjay10by10b3AgaSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4uYmFjay10by10b3A6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc3Ryb25nKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNvZnQpO1xufVxuXG4uYmFjay10by10b3AuYWN0aXZlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFc3RpbG8gYmFzZSBkZWwgbG9nbyAqL1xuLmxvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLyogSW1hZ2VuIGRlbCBsb2dvICovXG4ubG9nbyBpbWcge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXgtaGVpZ2h0OiA0OHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc29mdCk7XG59XG5cbi8qIFRleHRvIGRlbCBsb2dvICovXG4ubG9nbyBzcGFuIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTsgLyogYXp1bCBjaWVsbyAqL1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKiBQYXJhIHBhbnRhbGxhcyBncmFuZGVzICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5sb2dvIHtcbiAgICB3aWR0aDogMjEwcHg7XG4gIH1cbn1cblxuLyogUGFyYSB0YWJsZXRzIHkgY2VsdWxhcmVzICovXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC5sb2dvIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDE4MHB4O1xuICB9XG5cbiAgLmxvZ28gaW1nIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWF4LWhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5sb2dvIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4vKiBQYXJhIGNlbHVsYXJlcyBwZXF1ZcOxb3MgKG1lbm9zIGRlIDU3NnB4KSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICB9XG5cbiAgLmxvZ28gc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG5cbi8qaGVhZGVyKi9cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNjBweDtcbiAgei1pbmRleDogOTk3O1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgxOCwgMTcsIDMyLCAwLjg1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zb2Z0KTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAvKk1lbnUgaGFtYnVyZ3Vlc2EqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi13aWR0aDogNDRweDtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogMC4zcztcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5oZWFkZXIgLnNlYXJjaC1iYXIge1xuICBwYWRkaW5nOiAwIDEwcHg7XG59XG5cbi5sYW5ndWFnZS1zd2l0Y2hlciB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmxhbmd1YWdlLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc29mdCkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1LCAxOCwgMzIsIDAuNDIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OlxuICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIixcbiAgICBcIlR3ZW1vamkgTW96aWxsYVwiLCBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc29mdCk7XG59XG5cbi5sYW5ndWFnZS10b2dnbGU6aG92ZXIsXG4ubGFuZ3VhZ2UtdG9nZ2xlOmZvY3VzLFxuLmxhbmd1YWdlLXRvZ2dsZS5zaG93IHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItc3Ryb25nKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNvZnQpICFpbXBvcnRhbnQ7XG59XG5cbi5sYW5ndWFnZS10b2dnbGU6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmxhbmd1YWdlLXN3aXRjaGVyIC5sYW5ndWFnZS1tZW51IHtcbiAgbWluLXdpZHRoOiAxODBweDtcbn1cblxuLmxhbmd1YWdlLXN3aXRjaGVyIC5sYW5ndWFnZS1vcHRpb24ge1xuICBnYXA6IDEwcHg7XG4gIGZvbnQtZmFtaWx5OlxuICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIixcbiAgICBcIlR3ZW1vamkgTW96aWxsYVwiLCBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmO1xufVxuXG4ubGFuZ3VhZ2Utc3dpdGNoZXIgLmxhbmd1YWdlLWZsYWcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMS41cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubGFuZ3VhZ2Utc3dpdGNoZXIgLmxhbmd1YWdlLXRleHQge1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmxhbmd1YWdlLXN3aXRjaGVyIC5sYW5ndWFnZS1vcHRpb24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NywgMTI4LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi5sYW5ndWFnZS1zd2l0Y2hlciAubGFuZ3VhZ2Utb3B0aW9uLmFjdGl2ZSAubGFuZ3VhZ2UtdGV4dCB7XG59XG5cbiNsYW5ndWFnZSBvcHRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlLXN0cm9uZyk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LWZhbWlseTpcbiAgICBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIsXG4gICAgXCJUd2Vtb2ppIE1vemlsbGFcIiwgXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmhlYWRlciAuc2VhcmNoLWJhciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDE1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAuaGVhZGVyIC5zZWFyY2gtYmFyLXNob3cge1xuICAgIHRvcDogNjBweDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuaW5wdXRIZWFkZXIsXG5zZWxlY3RIZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xuICBwYWRkaW5nOiA3cHggMzhweCA3cHggOHB4O1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zb2Z0KSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5oZWFkZXIgLnNlYXJjaC1mb3JtIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gIC8qdGV4dG8gYSBidXNjYXIqL1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6Zm9jdXMsXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dDpob3ZlciB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xNSk7XG59XG5cbi5oZWFkZXIgLnNlYXJjaC1mb3JtIGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBidXR0b24gaSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEhlYWRlciBOYXZcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5oZWFkZXItbmF2IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmhlYWRlci1uYXYgPiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtaWNvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xufVxuXG4vKm5hdiBkZXJlY2hvLCBwcm9maWxlKi9cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSAucHJvZmlsZS1hdmF0YXIge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtaW4td2lkdGg6IDQ0cHg7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpbWcucHJvZmlsZS1hdmF0YXIge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hY2NlbnQpO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgLnByb2ZpbGUtaW5pdGlhbHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdXJmYWNlLXN0cm9uZykgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZTpob3ZlciAucHJvZmlsZS1hdmF0YXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSAubmF2YmFyLXByb2ZpbGUtc3VtbWFyeSB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIC5uYXZiYXItcHJvZmlsZS1zdW1tYXJ5ID4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgLm5hdmJhci1wcm9maWxlLWJ1c2luZXNzIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIC5uYXZiYXItcHJvZmlsZS1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIC5uYXZiYXItcHJvZmlsZS1lbWFpbCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5oZWFkZXItbmF2IC5iYWRnZS1udW1iZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAtMnB4IC01cHggYXV0byBhdXRvO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4uaGVhZGVyLW5hdiAubm90aWZpY2F0aW9ucyB7XG4gIGluc2V0OiA4cHggLTE1cHggYXV0byBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgdHJhbnNpdGlvbjogMC4zcztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc29mdCk7XG59XG5cbi5oZWFkZXItbmF2IC5ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24taXRlbSBpIHtcbiAgbWFyZ2luOiAwIDIwcHggMCAxMHB4O1xuICBmb250LXNpemU6IDI0cHg7XG4gIGNvbG9yOiAjMDA3YmZmO1xufVxuXG4uaGVhZGVyLW5hdiAubm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLWl0ZW0gaDQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgY29sb3I6ICMwMDMzNjY7XG59XG5cbi5oZWFkZXItbmF2IC5ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24taXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDcsIDEyOCwgMjU1LCAwLjA2KTtcbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIHtcbiAgaW5zZXQ6IDhweCAtMTVweCBhdXRvIGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIC5tZXNzYWdlLWl0ZW0ge1xuICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gIHRyYW5zaXRpb246IDAuM3M7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQpO1xufVxuXG4uaGVhZGVyLW5hdiAubWVzc2FnZXMgLm1lc3NhZ2UtaXRlbSBhIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIC5tZXNzYWdlLWl0ZW0gaW1nIHtcbiAgbWFyZ2luOiAwIDIwcHggMCAxMHB4O1xuICBtYXgtaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWFjY2VudCk7IC8qIEJvcmRlIGF6dWwgYnJpbGxhbnRlICovXG59XG5cbi5oZWFkZXItbmF2IC5tZXNzYWdlcyAubWVzc2FnZS1pdGVtIGg0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGNvbG9yOiAjMDAzMzY2OyAvKiBBenVsIHByb2Z1bmRvICovXG59XG5cbi5oZWFkZXItbmF2IC5tZXNzYWdlcyAubWVzc2FnZS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NywgMTI4LCAyNTUsIDAuMDYpO1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSB7XG4gIG1pbi13aWR0aDogMjQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0b3A6IDhweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlLXN0cm9uZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zb2Z0KTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc29mdCk7XG59XG5cbi5oZWFkZXItbmF2IC5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIgaDYge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIHNwYW4ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG5cbi5oZWFkZXItbmF2IC5wcm9maWxlIC5kcm9wZG93bi1pdGVtIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIHRyYW5zaXRpb246IDAuM3M7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmhlYWRlci1uYXYgLnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG5cbi5oZWFkZXItbmF2IC5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NywgMTI4LCAyNTUsIDAuMDYpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbn1cblxuLypmb3J6YXIgZWwgcHJvZmlsZSovXG4uZHJvcGRvd24tbWVudSxcbi5uYXZiYXIgLmRyb3Bkb3duLW1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlLXN0cm9uZykgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zb2Z0KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4uZHJvcGRvd24taXRlbSxcbi5uYXZiYXIgLmRyb3Bkb3duLWl0ZW0ge1xuICBjb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG59XG5cbi5kcm9wZG93bi1pdGVtOmhvdmVyLFxuLmRyb3Bkb3duLWl0ZW06Zm9jdXMsXG4ubmF2YmFyIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NywgMTI4LCAyNTUsIDAuMDYpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbn1cblxuLmRyb3Bkb3duLWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMC41cmVtIDA7XG59XG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIC5lbWFpbG5hdiB7XG4gIGNvbG9yOiAjZTlmN2ZmICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5wcm9maWxlLmRyb3Bkb3duLW1lbnUsXG4uaGVhZGVyLW5hdiAucHJvZmlsZSB7XG4gIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLnByb2ZpbGUuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVyLFxuLmhlYWRlci1uYXYgLnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5wcm9maWxlLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0sXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taXRlbSB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cblxuLyogPT09PT09PSBTSURFQkFSIEJBU0UgPT09PT09PSAqL1xuLnNpZGViYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNjBweDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwMDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMjBweCAxNHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTAsIDEyLCAyNCwgMC45OCksIHJnYmEoOCwgMTAsIDE4LCAwLjk0KSksXG4gICAgcmdiYSg4LCAxMCwgMTgsIDAuOTYpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxOHB4KSBzYXR1cmF0ZSgxMjAlKTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMThweCkgc2F0dXJhdGUoMTIwJSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMjI2LCAyNTUsIDAuMTQpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMCwgMjI2LCAyNTUsIDAuODUpIHJnYmEoNSwgMTEsIDIwLCAwLjg4KTtcbiAgYm94LXNoYWRvdzpcbiAgICAxNHB4IDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuNDIpLFxuICAgIGluc2V0IC0xcHggMCAwIHJnYmEoMCwgMjI2LCAyNTUsIDAuMTYpLFxuICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKSxcbiAgICAwIDAgMCAxcHggcmdiYSgwLCAyMjYsIDI1NSwgMC4wNiksXG4gICAgMCAwIDI2cHggcmdiYSgwLCAyMjYsIDI1NSwgMC4wOCk7XG59XG5cbi8qID09PT09PT0gU0NST0xMQkFSIENVU1RPTSA9PT09PT09ICovXG4uc2lkZWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNSwgMTEsIDIwLCAwLjkpO1xufVxuXG4uc2lkZWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjk1KSwgcmdiYSg0NywgMTI4LCAyNTUsIDAuODgpKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoNSwgMTEsIDIwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAyMjYsIDI1NSwgMC4yOCk7XG59XG5cbi5zaWRlYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTEwLCAyNDQsIDI1NSwgMSksIHJnYmEoMCwgMjI2LCAyNTUsIDAuOTUpKTtcbn1cblxuLnNpZGViYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSg1LCAxMSwgMjAsIDAuNTUpO1xufVxuXG4vKiA9PT09PT09IFJFU1BPTlNJVkUgQkVIQVZJT1IgPT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuc2lkZWJhciB7XG4gICAgbGVmdDogLTMwMHB4O1xuICB9XG5cbiAgLnRvZ2dsZS1zaWRlYmFyIC5zaWRlYmFyIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgLnNpZGViYXItbW9iaWxlLW9wZW4gLnNpZGViYXIge1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC50b2dnbGUtc2lkZWJhcjpub3QoLnNpZGViYXItbW9iaWxlLW9wZW4pIC5zaWRlYmFyIHtcbiAgICBsZWZ0OiAtMzAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICNtYWluLFxuICAjZm9vdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMzAwcHg7XG4gIH1cblxuICAudG9nZ2xlLXNpZGViYXIgI21haW4sXG4gIC50b2dnbGUtc2lkZWJhciAjZm9vdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogODBweDtcbiAgfVxuXG4gIC5zaWRlYmFyIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgcGFkZGluZzogMjBweCAxNHB4O1xuICB9XG5cbiAgLnRvZ2dsZS1zaWRlYmFyIC5zaWRlYmFyIHtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIHBhZGRpbmc6IDIwcHggOHB4O1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuXG4gIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gIH1cblxuICAuc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuXG4gIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgc3BhbixcbiAgLnNpZGViYXItbmF2IC5uYXYtbGluayAuYmktY2hldnJvbi1kb3duIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC50b2dnbGUtc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIH1cblxuICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBzcGFuLFxuICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayAuYmktY2hldnJvbi1kb3duLFxuICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlYWRlciAuc2VhcmNoLWJhciB7XG4gICAgbWluLXdpZHRoOiAyNTBweDsgLyogQXF1w60gc8OtIGxlIGRhbW9zIHRhbWHDsW8gZ3JhbmRlICovXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIEVsIHJlc29ydGUgcXVlIGVtcHVqYSBhIGxhIGRlcmVjaGEgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAubGFuZ3VhZ2Utc3dpdGNoZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgfVxufVxuXG5cbi51aS10YWJsZS1kZXRhaWwtcGFuZWwge1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgbGVmdCwgcmdiYSgwLCAyMzQsIDIxMSwgMC4wNiksIHRyYW5zcGFyZW50IDMwJSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTQsIDE4LCAyOCwgMC45OCkgMCUsIHJnYmEoMTAsIDEzLCAyMiwgMC45OSkgMTAwJSk7XG4gICAgcGFkZGluZzogMXJlbSAxcmVtIDAuOXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIzNCwgMjExLCAwLjEyKTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMjUpLFxuICAgICAgMCAxMHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuLnVpLXRhYmxlLWRldGFpbC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjIwcHgsIDFmcikpO1xuICAgIGdhcDogMC45NXJlbTtcbn1cblxuLnVpLXRhYmxlLWRldGFpbC1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgIGdhcDogMC44NXJlbTtcbiAgICBwYWRkaW5nOiAwLjhyZW0gMC45cmVtICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIzNCwgMjExLCAwLjA4KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpKTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpLFxuICAgICAgMCAwIDAgMXB4IHJnYmEoMCwgMjM0LCAyMTEsIDAuMDIpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi51aS10YWJsZS1kZXRhaWwtaXRlbS0tZnVsbCB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbn1cblxuLnVpLXRhYmxlLWRldGFpbC1pdGVtLS1zdGF0dXNjb21wYWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGp1c3RpZnktc2VsZjogc3RyZXRjaDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLnVpLXRhYmxlLWRldGFpbC10ZXh0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnVpLXRhYmxlLWRldGFpbC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjY3cmVtICFpbXBvcnRhbnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogcmdiYSgwLCAyMzQsIDIxMSwgMC44NCkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi51aS10YWJsZS1kZXRhaWwtdmFsdWUge1xuICAgIGNvbG9yOiAjZjRmYmZmO1xuICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZGV0YWlsLXZpZXcgdGQge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IHRvcCBsZWZ0LCByZ2JhKDAsIDIzNCwgMjExLCAwLjA1KSwgdHJhbnNwYXJlbnQgMzIlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxMSwgMTQsIDIyLCAwLjk4KSAwJSwgcmdiYSg3LCAxMCwgMTcsIDAuOTkpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMDgpICFpbXBvcnRhbnQ7XG59XG5cbi50YWJsZS1yZXNwb25zaXZlLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE4LCAyMSwgMzgsIDAuOTYpLCByZ2JhKDgsIDEwLCAxOCwgMC45OCkpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE0KTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDIwcHggNTJweCByZ2JhKDAsIDAsIDAsIDAuMyksXG4gICAgMCAwIDAgMXB4IHJnYmEoNDcsIDEyOCwgMjU1LCAwLjA4KSxcbiAgICAwIDAgMjJweCByZ2JhKDAsIDIyNiwgMjU1LCAwLjEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udGFibGUsXG4uYm9vdHN0cmFwLXRhYmxlIHRhYmxlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi50YWJsZSA+IDpub3QoY2FwdGlvbikgPiAqID4gKiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjE0KTtcbn1cblxuLnRhYmxlIHRoZWFkIHRoLFxuLmJvb3RzdHJhcC10YWJsZSB0aGVhZCB0aCB7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNCwgMzYsIDU4LCAwLjk4KSwgcmdiYSg4LCAxMiwgMjIsIDAuOTgpKTtcbiAgY29sb3I6ICNmM2ZkZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDIzNCwgMjExLCAwLjQyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OlxuICAgIGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMjM0LCAyMTEsIDAuMSksXG4gICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xuICBwYWRkaW5nOiAxcmVtIDFyZW07XG59XG5cbi50YWJsZSB0Ym9keSB0cixcbi5ib290c3RyYXAtdGFibGUgdGJvZHkgdHIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2UsIGJveC1zaGFkb3cgMC4yNXMgZWFzZSwgdHJhbnNmb3JtIDAuMjVzIGVhc2U7XG59XG5cbi50YWJsZSB0Ym9keSB0cjpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDIzNCwgMjExLCAwLjA2KTtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAyMzQsIDIxMSwgMC4xMiksXG4gICAgMCAwIDAgMXB4IHJnYmEoNDcsIDEyOCwgMjU1LCAwLjA0KTtcbn1cblxuLnRhYmxlIHRib2R5IHRkLFxuLmJvb3RzdHJhcC10YWJsZSB0Ym9keSB0ZCB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMjI2LCAyNTUsIDAuMDgpO1xuICBwYWRkaW5nOiAxcmVtIDFyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi50YWJsZS1zdHJpcGVkID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpID4gKiB7XG4gIC0tYnMtdGFibGUtYWNjZW50LWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtcbn1cblxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+ICoge1xuICAtLWJzLXRhYmxlLWFjY2VudC1iZzogcmdiYSgwLCAyMjYsIDI1NSwgMC4wNik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIHtcbiAgcGFkZGluZzogMXJlbSAxLjE1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAyMjYsIDI1NSwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHJnYmEoOCwgMTAsIDE4LCAwLjg2KTtcbn1cblxuLyogPT09PT09PSBOQVYgU1RZTEVTID09PT09PT0gKi9cbi5zaWRlYmFyLW5hdiB7XG4gIHBhZGRpbmc6IDJweDtcbiAgbWFyZ2luOiAycHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDIwcHgpO1xufVxuXG4uc2lkZWJhci1uYXYgbGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbjogMTZweCAwIDEwcHggMTVweDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjYpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBtYXJnaW46IDIwcHggMCAxMHB4IDE1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLyogPT09PT09PSBOQVYgTElOS1MgPT09PT09PSAqL1xuLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgMC4zcyxcbiAgICBjb2xvciAwLjNzLFxuICAgIGJveC1zaGFkb3cgMC4zcyxcbiAgICB0cmFuc2Zvcm0gMC4zcztcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgYm94LXNoYWRvdztcbiAgdGV4dC1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgcmdiYSg0NywgMTI4LCAyNTUsIDAuMTQpLFxuICAgIHJnYmEoMCwgMjI2LCAyNTUsIDAuMSlcbiAgKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMjYsIDI1NSwgMC4yMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlLXNvZnQpO1xufVxuXG4vKiBpY29ub3MgbmF2ICAqL1xuLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcblxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsuY29sbGFwc2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKmN1YW5kbyBubyBlc3RhIHNpbiBzZWxlY2Npb25hciovXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rLmNvbGxhcHNlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDIxLCAzOCwgMC44Nik7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsuY29sbGFwc2VkOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG59XG4vKkhPVkVSKi9cbi5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIsXG5cbi8qIEFjdGl2ZSBzdGF0ZSAqL1xuLnNpZGViYXItbmF2IC5uYXYtbGluazpub3QoLmNvbGxhcHNlZCksXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoNiwgMTgsIDQwLCAwLjQ1KSwgcmdiYSgwLCAyMjYsIDI1NSwgMC4wNykpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tY29sb3ItYWNjZW50LXNvZnQpIDAlLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjA1KSAxMDAlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAyMjYsIDI1NSwgMC4zNCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEljb25zICovXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciBpIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIgaSxcbi5zaWRlYmFyLW5hdiAubmF2LWxpbms6bm90KC5jb2xsYXBzZWQpIGksXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSBpIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rLmNvbGxhcHNlZCBpIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsgLmJpLWNoZXZyb24tZG93biB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluazpub3QoLmNvbGxhcHNlZCkgLmJpLWNoZXZyb24tZG93biB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsgc3BhbiB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgLnNpZGViYXItZW1haWwtdGVtcGxhdGUtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAyOHB4O1xuICBmb250OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgLnNpZGViYXItZW1haWwtdGVtcGxhdGUtbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDdweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjc4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgLnNpZGViYXItZW1haWwtdGVtcGxhdGUtbGluazpob3Zlcixcbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgLnNpZGViYXItZW1haWwtdGVtcGxhdGUtbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMjI2LCAyNTUsIDAuMDYpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IC5zaWRlYmFyLWVtYWlsLXRlbXBsYXRlLWxpbms6aG92ZXI6OmJlZm9yZSxcbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgLnNpZGViYXItZW1haWwtdGVtcGxhdGUtbGluazpmb2N1czo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAyMjYsIDI1NSwgMC45NSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjA1KTtcbn1cblxuXG5cbi8qID09PT09PT0gU1VCTUVOw5ogPT09PT09PSAqL1xuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCB7XG4gIHBhZGRpbmc6IDVweCAwIDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNXB4IDAgNXB4IDE1cHg7XG4gIG1hcmdpbjogMCAwIDhweCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yYWRpdXMtbWQpIHZhcigtLXJhZGl1cy1tZCk7XG4gIG1hcmdpbi10b3A6IC04cHg7IC8qIFB1bGwgdXAgdW5kZXIgdGhlIHBhcmVudCAqL1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAyOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLW1kKSB2YXIoLS1yYWRpdXMtbWQpIDA7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpIHtcbiAgZm9udC1zaXplOiA2cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogN3B4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAyMjYsIDI1NSwgMC43OCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYTpob3Zlcixcbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjA2KTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluayxcbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOjpiZWZvcmUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyOjpiZWZvcmUsXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjk1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMDUpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSBpIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIGkge1xuICBjb2xvcjogcmdiYSgwLCAyMjYsIDI1NSwgMC43OCk7XG4gIGRpc3BsYXk6IG5vbmU7IC8qIEhpZGUgb2xkIGljb24gKi9cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBEYXNoYm9hcmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qISotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiMgSWNvbnMgbGlzdCBwYWdlKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qISovXG4uaWNvbnNsaXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTtcbiAgZ2FwOiAxLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMTVweDtcbn1cblxuLmljb25zbGlzdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMwMTI5NzA7XG4gIHBhZGRpbmc6IDE1cHggMDtcbn1cblxuLmljb25zbGlzdCBpIHtcbiAgbWFyZ2luOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDIuNXJlbTtcbn1cblxuLmljb25zbGlzdCAubGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tYnMtZm9udC1tb25vc3BhY2UpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogIzY2Njtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGLkEuUSBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZmFxIC5iYXNpYyBoNiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG59XG5cbi5mYXEgLmJhc2ljIHAge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIENvbnRhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5jb250YWN0IC5pbmZvLWJveCB7XG4gIHBhZGRpbmc6IDI4cHggMzBweDtcbn1cblxuLmNvbnRhY3QgLmluZm8tYm94IGkge1xuICBmb250LXNpemU6IDM4cHg7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbn1cblxuLmNvbnRhY3QgLmluZm8tYm94IGgzIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAyMHB4IDAgMTBweCAwO1xufVxuXG4uY29udGFjdCAuaW5mby1ib3ggcCB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSAuZXJyb3ItbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIxOCwgNTQsIDUxLCAwLjIpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gLnNlbnQtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM1LCAxMzQsIDU0LCAwLjIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSAubG9hZGluZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIC5sb2FkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDAgMTBweCAtNnB4IDA7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGUtbG9hZGluZyAxcyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogYW5pbWF0ZS1sb2FkaW5nIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIGlucHV0LFxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIHRleHRhcmVhIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gaW5wdXQ6Zm9jdXMsXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSBpbnB1dCB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbn1cblxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIHRleHRhcmVhIHtcbiAgcGFkZGluZzogMTJweCAxNXB4O1xufVxuXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWNvbG9yLWFjY2VudC1zZWNvbmRhcnkpLCB2YXIoLS1jb2xvci1hY2NlbnQpKTtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAxMHB4IDMwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiAwLjRzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGUtbG9hZGluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbmltYXRlLWxvYWRpbmcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgRXJyb3IgNDA0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZXJyb3ItNDA0IHtcbiAgcGFkZGluZzogMzBweDtcbn1cblxuLmVycm9yLTQwNCBoMSB7XG4gIGZvbnQtc2l6ZTogMTgwcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMTUwcHg7XG59XG5cbi5lcnJvci00MDQgaDIge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uZXJyb3ItNDA0IC5idG4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWNvbG9yLWFjY2VudC1zZWNvbmRhcnkpLCB2YXIoLS1jb2xvci1hY2NlbnQpKTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDhweCAzMHB4O1xufVxuXG4uZXJyb3ItNDA0IC5idG46aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuZXJyb3ItNDA0IGltZyB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGb290ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5mb290ZXIge1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg0NywgMTI4LCAyNTUsIDAuMTIpO1xuICBib3gtc2hhZG93OiAwIC0ycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5mb290ZXIgLmNvcHlyaWdodCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmZvb3RlciAuY3JlZGl0cyB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBhY2NlbnQtY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUsIDE4LCAzMiwgMC40MikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQpICFpbXBvcnRhbnQ7XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zb2Z0KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4vKi8qIEhvdmVyICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG59XG5cbi8qIEN1YW5kbyBlc3TDoSBtYXJjYWRvICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1LCAxOCwgMzIsIDAuNDIpO1xufVxuXG5pbnB1dDpmb2N1cyxcbnRleHRhcmVhOmZvY3VzLFxuc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1LCAxOCwgMzIsIDAuNTgpO1xufVxuLyogZXN0aWxvcyBkZSBsb3MgYWxlcnQgKi9cbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXBvcHVwKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1cmZhY2Utc3Ryb25nKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc29mdCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMmVtICFpbXBvcnRhbnQ7XG59XG5cbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItdGl0bGUge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xufVxuZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1odG1sLWNvbnRhaW5lciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWNvbmZpcm0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7IC8qIEF6dWwgbcOhcyBicmlsbGFudGUgeSBlc3TDoW5kYXIgcGFyYSBjb25maXJtYWNpw7NuICovXG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OyAvKiBUZXh0byBibGFuY28gcGFyYSBtw6F4aW1vIGNvbnRyYXN0ZSAqL1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxMHB4IDMwcHggIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWNvbmZpcm06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NmIzICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMCwgMTIzLCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1jYW5jZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmY2YjZiICFpbXBvcnRhbnQ7IC8qIFJvam8gY2xhcm8gcGFyYSBhbHRvIGNvbnRyYXN0ZSBlbiBmb25kbyBvc2N1cm8gKi9cbiAgY29sb3I6ICNmZjZiNmIgIWltcG9ydGFudDsgLyogVGV4dG8gcm9qbyBjbGFybyAqL1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlICFpbXBvcnRhbnQ7XG59XG5cbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItY2FuY2VsOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmI2YiAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCkgIWltcG9ydGFudDtcbn1cblxuZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLXJpbmcge1xuICBib3JkZXI6IDAuMjVlbSBzb2xpZCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbn1cblxuZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzIFtjbGFzc149XCJzd2FsMi1zdWNjZXNzLWxpbmVcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoNDcsIDEyOCwgMjU1LCAwLjI4KSAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWxvYWRlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KSB0cmFuc3BhcmVudCB2YXIoLS1jb2xvci1hY2NlbnQpIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsLWxvYWRpbmctb3ZlcmxheSB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbC1sb2FkaW5nLW92ZXJsYXlcbiAgZGl2OndoZXJlKC5zd2FsMi1wb3B1cCkuc3dhbC1sb2FkaW5nLXBvcHVwIHtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMzVweCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xNCksXG4gICAgMCAxOHB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjU1KSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRklYOiBBVVRPQ09NUExFVEFETyAoQ2hyb21lL0VkZ2UvU2FmYXJpKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogU2VsZWNjaW9uYW1vcyBlbCBlc3RhZG8gJ2F1dG9maWxsJyBkZWwgaW5wdXQgKi9cbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGwsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgLyogMS4gQ0FNQklBUiBFTCBDT0xPUiBERSBMQSBMRVRSQSAqL1xuICAvKiBVc2Ftb3MgZXN0YSBwcm9waWVkYWQgZXNwZWPDrWZpY2EgZGUgV2Via2l0IHBhcmEgZm9yemFyIGVsIGJsYW5jbyAqL1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xuXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHJnYmEoMjIsIDIxLCAzOCwgMC45NSkgaW5zZXQgIWltcG9ydGFudDtcblxuICBmb250LWZhbWlseTogXCJCYXJsb3dcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OyAvKiBPIGxhIGZ1ZW50ZSBxdWUgZWxlZ2lzdGUgKi9cbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwcztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUmVzcG9uc2l2ZSByZWZpbmVtZW50cyAobW9iaWxlL3RhYmxldClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgI21haW4ge1xuICAgIHBhZGRpbmc6IDE2cHggMTRweDtcbiAgfVxuXG4gIC5wYWdldGl0bGUgaDEge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG5cbiAgLmhlYWRlciB7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgfVxuXG4gIC5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0biB7XG4gICAgbWluLXdpZHRoOiA0NHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICB9XG5cbiAgLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIH1cblxuICAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgLnByb2ZpbGUtYXZhdGFyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICB9XG5cbiAgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIC5uYXZiYXItcHJvZmlsZS1zdW1tYXJ5IHtcbiAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICB9XG5cbiAgLmxvZ28gLmxvZ28tdGV4dCB7XG4gICAgbWF4LXdpZHRoOiAxMTBweDtcbiAgfVxuXG4gIC5zaWRlYmFyIHtcbiAgICB3aWR0aDogMjgwcHg7XG4gICAgcGFkZGluZzogMTRweCAxMHB4O1xuICB9XG5cbiAgLnRvZ2dsZS1zaWRlYmFyIC5zaWRlYmFyIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgLnNpZGViYXItbW9iaWxlLW9wZW4gLnNpZGViYXIge1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC50b2dnbGUtc2lkZWJhcjpub3QoLnNpZGViYXItbW9iaWxlLW9wZW4pIC5zaWRlYmFyIHtcbiAgICBsZWZ0OiAtMjgwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gIH1cblxuICBib2R5OjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDg7XG4gIH1cblxuICAjbWFpbiB7XG4gICAgcGFkZGluZzogMTJweCAxMHB4O1xuICB9XG5cbiAgLnBhZ2V0aXRsZSBoMSB7XG4gICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICB9XG5cbiAgLmhlYWRlciAuc2VhcmNoLWJhciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIH1cblxuICAubG9nbyAubG9nby10ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDg0cHg7XG4gIH1cblxuICAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgLnByb2ZpbGUtYXZhdGFyIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWluLXdpZHRoOiAzNHB4O1xuICB9XG5cbiAgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIC5uYXZiYXItcHJvZmlsZS1zdW1tYXJ5IHtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICB9XG5cbiAgLnNpZGViYXIge1xuICAgIHdpZHRoOiAyNjBweDtcbiAgICBsZWZ0OiAtMjYwcHg7XG4gICAgcGFkZGluZzogMTRweCAxMHB4O1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICA4cHggMCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4yMiksXG4gICAgICBpbnNldCAtMXB4IDAgMCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4xKSxcbiAgICAgIDAgMCAwIDFweCByZ2JhKDAsIDIyNiwgMjU1LCAwLjA4KTtcbiAgfVxuXG4gIC50b2dnbGUtc2lkZWJhciAuc2lkZWJhciB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5zaWRlYmFyLW1vYmlsZS1vcGVuIC5zaWRlYmFyIHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudG9nZ2xlLXNpZGViYXI6bm90KC5zaWRlYmFyLW1vYmlsZS1vcGVuKSAuc2lkZWJhciB7XG4gICAgbGVmdDogLTI2MHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICB9XG5cbiAgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIH1cblxuICAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICAgIHBhZGRpbmctbGVmdDogMjhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cblxuICAudGFibGUtcmVzcG9uc2l2ZSxcbiAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyLFxuICAuc3VyZmFjZS1wYW5lbCxcbiAgLnN1cmZhY2UtcGFuZWwtc3Ryb25nLFxuICAuY2FyZCxcbiAgLm1vZGFsLWNvbnRlbnQsXG4gIC5kcm9wZG93bi1tZW51LFxuICAubmF2YmFyIC5kcm9wZG93bi1tZW51LFxuICAuamNvbmZpcm0gLmpjb25maXJtLWJveCxcbiAgZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItcG9wdXApIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDEycHggMzRweCByZ2JhKDAsIDAsIDAsIDAuMjQpLFxuICAgICAgMCAwIDAgMXB4IHJnYmEoNDcsIDEyOCwgMjU1LCAwLjA2KSxcbiAgICAgIDAgMCAxNHB4IHJnYmEoMCwgMjI2LCAyNTUsIDAuMDUpO1xuICB9XG5cbiAgLnRhYmxlIHRoZWFkIHRoLFxuICAuYm9vdHN0cmFwLXRhYmxlIHRoZWFkIHRoLFxuICAudGFibGUgdGJvZHkgdGQsXG4gIC5ib290c3RyYXAtdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuOHJlbSAwLjg1cmVtO1xuICB9XG5cbiAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiB7XG4gICAgcGFkZGluZzogMC44cmVtIDAuOXJlbTtcbiAgfVxufVxuXG4uamNvbmZpcm0gLmpjb25maXJtLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1LCAxMSwgMjAsIDAuNzIpICFpbXBvcnRhbnQ7XG59XG5cbi5qY29uZmlybSAuamNvbmZpcm0tYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZS1zdHJvbmcpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zb2Z0KSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC42KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAyZW0gIWltcG9ydGFudDtcbn1cblxuLmpjb25maXJtIC5qY29uZmlybS10aXRsZS1jIHtcbiAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50O1xufVxuXG4uamNvbmZpcm0gLmpjb25maXJtLXRpdGxlIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuLmpjb25maXJtIC5qY29uZmlybS1jb250ZW50IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU1ICFpbXBvcnRhbnQ7XG59XG5cbi5qY29uZmlybSAuamNvbmZpcm0tYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xufVxuXG4uamNvbmZpcm0gLmpjb25maXJtLWJ1dHRvbnMgLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxMHB4IDMwcHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgIWltcG9ydGFudDtcbn1cblxuLmpjb25maXJtIC5qY29uZmlybS1idXR0b25zIC5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbn1cblxuLmpjb25maXJtIC5qY29uZmlybS1idXR0b25zIC5idG4tZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSkgIWltcG9ydGFudDtcbn1cblxuLmpjb25maXJtIC5qY29uZmlybS1idXR0b25zIC5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZDZiZmYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDE1cHggdmFyKC0tc2hhZG93LWdsb3cpICFpbXBvcnRhbnQ7XG59XG5cbi5qY29uZmlybSAuamNvbmZpcm0tYnV0dG9ucyAuYnRuLWRhbmdlcjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7XG59XG5cbi5qY29uZmlybSAuamNvbmZpcm0tYnV0dG9ucyAuYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0NywgMTI4LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG59XG5cbi5zdXJmYWNlLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zb2Z0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDE4cHggNDRweCByZ2JhKDAsIDAsIDAsIDAuMjQpLFxuICAgIDAgMCAwIDFweCByZ2JhKDQ3LCAxMjgsIDI1NSwgMC4wOCksXG4gICAgMCAwIDE2cHggcmdiYSgwLCAyMjYsIDI1NSwgMC4wNik7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNnB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7XG59XG5cbi8qIHN0eWxlLmNzcyAtIEhhY2lhIGVsIGZpbmFsIGRlbCBhcmNoaXZvICovXG4uc3VyZmFjZS1wYW5lbC1zdHJvbmcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdXJmYWNlLXN0cm9uZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zdHJvbmcpO1xuICAvKiBBw5FBREUgRVNUTyBQQVJBIERBUkxFIEVMIEVGRUNUTyBDUklTVEFMICovXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gIC8qIFNvbWJyYSBtw6FzIHN1YXZlICovXG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuXG4uc3VyZmFjZS1wYW5lbC1zb2Z0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZS1zb2Z0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbXV0ZWQtc29mdCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLnNvZnQtZGl2aWRlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg0NywgMTI4LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJkLFxuLm1vZGFsLWNvbnRlbnQsXG4uZHJvcGRvd24tbWVudSxcbi5uYXZiYXIgLmRyb3Bkb3duLW1lbnUsXG4uamNvbmZpcm0gLmpjb25maXJtLWJveCxcbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXBvcHVwKSB7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxOCwgMjEsIDM4LCAwLjk0KSwgcmdiYSgxMCwgMTIsIDI0LCAwLjk4KSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjI2LCAyNTUsIDAuMSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNnB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxOHB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjI4KSxcbiAgICAwIDAgMCAxcHggcmdiYSg0NywgMTI4LCAyNTUsIDAuMDYpLFxuICAgIDAgMCAxOHB4IHJnYmEoMCwgMjI2LCAyNTUsIDAuMDYpO1xufVxuXG4uY2FyZC1oZWFkZXIsXG4ubW9kYWwtaGVhZGVyLFxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjA4KTtcbn1cblxuLmNhcmQtYm9keSxcbi5tb2RhbC1ib2R5LFxuLmRyb3Bkb3duLWl0ZW0sXG4ubmF2YmFyIC5kcm9wZG93bi1pdGVtIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcbiAgfVxuXG4gICNtYWluIHtcbiAgICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIH1cblxuICAvKiBSZWR1Y2lyIHRhbWHDsW8gZGVsIG1vZGFsIHkgYm90b25lcyBkZSBTd2VldEFsZXJ0IGVuIG3Ds3ZpbCArIENvbnRyYXN0ZSAqL1xuICBkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgZGl2OndoZXJlKC5zd2FsMi1wb3B1cCksXG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICB3aWR0aDogOTIlICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMiwgMjYsIDQzLCAwLjk4KSwgcmdiYSgxMiwgMTUsIDI4LCAwLjk4KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjI1KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC41KSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgbWFyZ2luOiAwLjVyZW0gYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogOTUlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubW9kYWwtaGVhZGVyLCAubW9kYWwtYm9keSwgLm1vZGFsLWZvb3RlciB7XG4gICAgcGFkZGluZzogMC44cmVtICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubW9kYWwtdGl0bGUsXG4gIGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAwIDAuNXJlbSAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgfVxuXG4gIGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItaHRtbC1jb250YWluZXIsXG4gIC5tb2RhbC1ib2R5LFxuICAubW9kYWwtYm9keSBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwLjVyZW0gMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZTBlNmVkICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubW9kYWwtYm9keSAuZm9ybS1jb250cm9sIHtcbiAgICBmb250LXNpemU6IDAuODVyZW0gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItYWN0aW9ucyxcbiAgLm1vZGFsLWZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogMC44cmVtICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1jb25maXJtLFxuICBkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWNhbmNlbCxcbiAgLm1vZGFsLWZvb3RlciAuYnRuIHtcbiAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW0gIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuYm9keS5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tb2RhbCB7XG4gIHotaW5kZXg6IDEwNTU7XG59XG5cbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHotaW5kZXg6IDEwNTA7XG59XG5cbi5tb2RhbC1kaWFsb2cge1xuICB6LWluZGV4OiAxMDU2O1xufVxuXG4ubW9kYWwtZGlhbG9nLXNjcm9sbGFibGUgLm1vZGFsLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMXJlbSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSAubW9kYWwtYm9keSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4iLCIvKiBFc3RpbG9zIGdlbmVyYWxlcyBwYXJhIGxhIHRhYmxhICovXG4uZXN0aWxvc19nZW5lcmFsZXMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcblxuICAgIC8qIEVmZWN0byBkZSBjcmlzdGFsIGVuIGxhIHRhYmxhICovXG4gICAgYmFja2dyb3VuZDogIHJnYig4IDEwIDE4IC8gOTYlKSAhaW1wb3J0YW50O1xuXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE1cHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMSk7IC8qIEJvcmRlIGNpYW4gc3V0aWwgKi9cbiAgICBib3JkZXItcmFkaXVzOiAxNnB4OyAvKiBNw6FzIHJlZG9uZGVhZG8gKi9cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1oZWFkZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1ib2R5LFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRoIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMTJweCAxM3B4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjYsIDM4LCA2MCwgMC45OCksIHJnYmEoOCwgMTIsIDIyLCAwLjk4KSk7XG4gICAgY29sb3I6ICNlYWZjZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuNTIpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHJnYmEoMjQwLCAyNDcsIDI1MCwgMC45Nik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHRhYmxlLWxheW91dDogYXV0bztcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi5vc3AtdGFibGUtdWksXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1oZWFkZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1ib2R5IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC5maXhlZC10YWJsZS1oZWFkZXIgdGFibGUsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLmZpeGVkLXRhYmxlLWJvZHkgdGFibGUsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLmZpeGVkLXRhYmxlLWZvb3RlciB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4taW5saW5lOiAwO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLnRhYmxlIHRoIHtcbiAgICBjb2xvcjogcmdiYSgyNDAsIDI1MiwgMjU1LCAwLjk4KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjgsIDQyLCA2OCwgMC45OCksIHJnYmEoOCwgMTIsIDIyLCAwLjk4KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAyMzQsIDIxMSwgMC41KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciAudGFibGUgdGQge1xuICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQ3LCAyNTAsIDAuOTYpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5LCAxMywgMjIsIDAuMzQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkgIWltcG9ydGFudDtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRoZWFkIHRoIC50aC1pbm5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwLjcycmVtIDFyZW0gIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLnRhYmxlIHRoZWFkIHRoLmRldGFpbCxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciAudGFibGUgdGJvZHkgPiB0cltkYXRhLWluZGV4XSA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICB3aWR0aDogNDZweDtcbiAgICBtaW4td2lkdGg6IDQ2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGJvZHkgdGQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGJvZHkgdGQ6bGFzdC1jaGlsZCxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0aGVhZCB0aDpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMSU7XG59XG5cbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSxcbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyLFxuLnBhaXNlcy10YWJsZS1zaGVsbCAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1oZWFkZXIsXG4ucGFpc2VzLXRhYmxlLXNoZWxsIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC5maXhlZC10YWJsZS1oZWFkZXIgdGFibGUsXG4ucGFpc2VzLXRhYmxlLXNoZWxsIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciAuZml4ZWQtdGFibGUtYm9keSB0YWJsZSxcbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC5maXhlZC10YWJsZS1mb290ZXIgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB0aCxcbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB0ZCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHRleHQtb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLnBhaXNlcy10YWJsZS1zaGVsbCAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLnRhYmxlIHRkOmxhc3QtY2hpbGQsXG4ucGFpc2VzLXRhYmxlLXNoZWxsIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciAudGFibGUgdGg6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDI4JTtcbn1cblxuLnBhaXNlcy10YWJsZS1zaGVsbCAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLnRhYmxlIHRkOm50aC1jaGlsZCg0KSxcbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB0aDpudGgtY2hpbGQoNCkge1xuICAgIHdpZHRoOiAyNCU7XG59XG5cbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSAuYnRuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucGFpc2VzLXRhYmxlLXNoZWxsIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0aGVhZCB0aCAudGgtaW5uZXIge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB0ZXh0LW92ZXJmbG93OiB1bnNldCAhaW1wb3J0YW50O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRib2R5IHRkID4gKixcbi5wYWlzZXMtdGFibGUtc2hlbGwgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRib2R5IHRkIHNwYW4sXG4ucGFpc2VzLXRhYmxlLXNoZWxsIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0Ym9keSB0ZCBkaXYsXG4ucGFpc2VzLXRhYmxlLXNoZWxsIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0Ym9keSB0ZCBhOm5vdCguYnRuKSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHRleHQtb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIGEsXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogcmdiYSgwLCAyMjYsIDI1NSwgMC45MikgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZSwgdGV4dC1zaGFkb3cgMC4ycyBlYXNlO1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQgYTpob3Zlcixcbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMjI2LCAyNTUsIDAuOSk7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyMzQsIDIxMSwgMC4wNykgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4vKiBzY3JvbGJhciBkZSBsYSB0YWJsYSAqL1xuLmVzdGlsb3NfZ2VuZXJhbGVzOjotd2Via2l0LXNjcm9sbGJhcixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBoZWlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDUwYjE0ICFpbXBvcnRhbnQ7XG59XG5cblxuLmVzdGlsb3NfZ2VuZXJhbGVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVsIGZvbmRvIHBvciBkb25kZSBjb3JyZSBsYSBiYXJyYSAqL1xuLmVzdGlsb3NfZ2VuZXJhbGVzOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7IC8qIEdyaXMgbXV5IHN1dGlsICovXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4vKlxuW2lkXj1cInRvb2xiYXJfXCJdIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICBzY3JvbGxiYXItY29sb3I6ICMxMTJlNTUgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5cbltpZF49XCJ0b29sYmFyX1wiXSA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG5baWRePVwidG9vbGJhcl9cIl06Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBoZWlnaHQ6IDhweDtcbn1cblxuW2lkXj1cInRvb2xiYXJfXCJdOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogIzFjNGY3YSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuXG4qL1xuXG4vKiBBanVzdGUgZGUgY29sdW1uYXMgcGFyYSBtw7N2aWxlcyAtIGRlIDIgYSAzIHBvciBmaWxhICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAudWktdGFibGUtZGV0YWlsLWdyaWQsXG4gICAgLm9zcC1yb3ctZGV0YWlsX19ncmlkIHtcbiAgICAgICAgLyogVXNhbW9zIHJlcGVhdCgyLCAxZnIpIHBhcmEgRk9SWkFSIHNpZW1wcmUgMiBjb2x1bW5hcyBjb21vIG3DrW5pbW8gZW4gbcOzdmlsZXMgKi9cbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC51aS10YWJsZS1kZXRhaWwtaXRlbSxcbiAgICAub3NwLXJvdy1kZXRhaWxfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwLjRyZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudWktdGFibGUtZGV0YWlsLWxhYmVsLFxuICAgIC5vc3Atcm93LWRldGFpbF9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiBNb3N0cmFyIHRleHRvIGRlbnRybyBkZWwgYm90w7NuIGRlIGVzdGFkbyBlbiBtw7N2aWwgKGV2aXRhIHF1ZSBzZSB2dWVsdmEgdW4gY8OtcmN1bG8pICovXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC51aS10YWJsZS1kZXRhaWwtaXRlbSAuZXN0YWRvLmJ0bixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLnVpLXRhYmxlLWRldGFpbC1pdGVtIC5lc3RhZG8uYnRuLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAudWktdGFibGUtZGV0YWlsLWl0ZW0gLmVzdGFkby5idG4ge1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNnJlbSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiBQYXJhIHBhbnRhbGxhcyBwZXF1ZcOxYXMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIFtpZF49XCJ0b29sYmFyX1wiXSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBbaWRePVwidG9vbGJhcl9cIl0gYnV0dG9uIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAuZXN0aWxvc19nZW5lcmFsZXMge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0aCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGhlYWQgdGggLnRoLWlubmVyLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0aGVhZCB0aCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogNnB4IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0ZCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGJvZHkgdGQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgVE9PTEJBUiBSRVNQT05TSVZFIEdMT0JBTCAodG9kb3MgbG9zIG3Ds2R1bG9zKVxuICAgQXBsaWNhIGljb24tb25seSBlbiBtw7N2aWwgc2luIGFmZWN0YXIgbMOzZ2ljYSBKUy5cbiAgIFNlIHVzYSAub3NwLXRhYmxlLXVpIChjbGFzZSBhw7FhZGlkYSBwb3IgY3JhdGVfdGFibGVfYm9vc3RyYXBfdGFibGVfZ2VuZXJpYylcbiAgIHkgLm9zcC10YWJsZS10b29sYmFyLWhvc3QgKGNsYXNlIGHDsWFkaWRhIHBvciB1dGlsVGFibGFCb290c3RyYXAuanMpXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyog4pSA4pSAIERlc2t0b3A6IHRvb2xiYXIgZ2VuZXJhbCBjb24gYm90w7NuICsgdGV4dG8g4pSA4pSAICovXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vKiBCw7pzcXVlZGE6IGVzcGFjaW8gZ2VuZXJvc28gZW4gZGVza3RvcCAqL1xuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgMjYwcHg7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2ggaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLyogQm90b25lcyBkZXNrdG9wOiDDrWNvbm8gKyB0ZXh0byDilIDilIAgKi9cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biAub3NwLWJ0bi1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4vKkNVU1RPTVNTU1NTU1NTUyovXG4vKiBCb3RvbmVzIGdlbmVyYWxlcyBwZXJzb25hbGl6YWRvcyAqL1xuLmJ0bi1jdXN0b20sIC5idG4tY3VzdG9tLXRleHQsIC5idG4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwid2ViLWFkbWluaXN0cmF0aXZvcy1cIl0gLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xufVxuXG5baWRePVwid2ViLWFkbWluaXN0cmF0aXZvcy1cIl0gLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuW2lkXj1cIndlYi1hZG1pbmlzdHJhdGl2b3MtXCJdIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuYnMtYmFycyB7XG4gICAgb3JkZXI6IDA7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaCB7XG4gICAgb3JkZXI6IDM7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5icy1iYXJzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5icy1iYXJzOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZ2FwOiAwLjM1cmVtO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgb3JkZXI6IDE7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuW2lkXj1cIndlYi1hZG1pbmlzdHJhdGl2b3MtXCJdIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLnNlYXJjaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXg6IDAgMCAyODBweDtcbiAgICBtaW4td2lkdGg6IDIyMHB4O1xuICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG9yZGVyOiAzO1xufVxuXG5baWRePVwid2ViLWFkbWluaXN0cmF0aXZvcy1cIl0gLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAzOHB4O1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjlyZW0gIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAwLjQ1cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3JkZXI6IDA7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4gLnRleHQsXG5baWRePVwid2ViLWFkbWluaXN0cmF0aXZvcy1cIl0gLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIHNwYW46bm90KC5jYXJldCkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuW2lkXj1cIndlYi1hZG1pbmlzdHJhdGl2b3MtXCJdIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyICNidG5fbnVldm8ge1xuICAgIG9yZGVyOiAtMTtcbn1cblxuW2lkXj1cIndlYi1hZG1pbmlzdHJhdGl2b3MtXCJdIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmV4cG9ydCB7XG4gICAgb3JkZXI6IDI7XG59XG5cbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbltpZF49XCJ3ZWItYWRtaW5pc3RyYXRpdm9zLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4vKiBFc3RpbG8gY29tw7puIHBhcmEgdG9kb3MgbG9zIGJvdG9uZXMgKi9cblxuLmJ0bi1jdXN0b20tdGV4dCxcbi5idG4uYnRuLXByaW1hcnksXG4uYnRuLmJ0bi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTYsIDI4LCA0OCwgMC45OCksIHJnYmEoNywgMTUsIDI4LCAwLjk4KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNlOWY3ZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSksXG4gICAgICAgIDAgMTBweCAyMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG5cbi8qIEhvdmVyIGRlIGJvdG9uZXMgKi9cbi5idG4tY3VzdG9tIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE2LCAyOCwgNDgsIDAuOTgpLCByZ2JhKDcsIDE1LCAyOCwgMC45OCkpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjI2LCAyNTUsIDAuMykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xufVxuXG4uYnRuLWN1c3RvbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAyMjYsIDI1NSwgMC4yNCksIHJnYmEoMCwgMTY4LCAxODksIDAuMjgpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMjYsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE2KSwgMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuXG4uYnRuLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmJ0bi5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjIpLCByZ2JhKDAsIDE2OCwgMTg5LCAwLjI0KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjI2LCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAyMjYsIDI1NSwgMC4xNiksIDAgMTJweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4vKiBCb3RvbmVzIGRlc2hhYmlsaXRhZG9zICovXG4uYnRuOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgIWltcG9ydGFudDtcbn1cblxuLyogQm90w7NuIHBlbGlncm8gKi9cbi5idG4uYnRuLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzOCwgMTQsIDI4LCAwLjk2KSwgcmdiYSgyMSwgMTAsIDE4LCAwLjk2KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMTIwLCAxNjAsIDAuMykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xufVxuXG4uYnRuLmJ0bi1kYW5nZXI6bm90KDpkaXNhYmxlZCkge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMTIwLCAxNjAsIDAuNjgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmY5YWJjICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMTIwLCAxNjAsIDAuMTYpLCAwIDEwcHggMThweCByZ2JhKDAsIDAsIDAsIDAuMTgpICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG5cbn1cblxuLmJ0bi5idG4tZGFuZ2VyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgODYsIDEzMiwgMC4yOCksIHJnYmEoMTgzLCAyNCwgNjMsIDAuNDIpKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMTIwLCAxNjAsIDAuMTgpLCAwIDEycHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDE2MCwgMTg4LCAwLjgyKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLyogQm90w7NuIMOpeGl0byAqL1xuLmJ0bi5idG4tc3VjY2Vzc3tcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDI1NSwgMTM2LCAwLjIpLCByZ2JhKDAsIDE3MiwgMTEwLCAwLjI2KSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjU1LCAxMzYsIDAuNikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAyNTUsIDEzNiwgMC4xNiksIDAgMTBweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCkgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xufVxuXG4uYnRuLmJ0bi1zdWNjZXNzOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDI1NSwgMTM2LCAwLjMpLCByZ2JhKDAsIDE3MiwgMTEwLCAwLjQpKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDI1NSwgMTM2LCAwLjE4KSwgMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4vKiBCb3TDs24gYWR2ZXJ0ZW5jaWEgKi9cbi5idG4uYnRuLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoNDgsIDM1LCAxMiwgMC45NiksIHJnYmEoMjQsIDE4LCA3LCAwLjk2KSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyMDIsIDEwNCwgMC4zMikgIWltcG9ydGFudDtcbn1cblxuXG4uYnRuLmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMTkwLCAwLCAwLjE4KSwgcmdiYSgxODQsIDEzMiwgMCwgMC4yOCkpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAxOTAsIDAsIDAuMTYpLCAwIDEwcHggMThweCByZ2JhKDAsIDAsIDAsIDAuMTgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDE5MCwgMCwgMC42NikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi5idG4uYnRuLXdhcm5pbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAxOTAsIDAsIDAuMjYpLCByZ2JhKDE4NCwgMTMyLCAwLCAwLjM4KSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMTkwLCAwLCAwLjIyKSwgMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjE0LCAxMzIsIDAuODYpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4vKiBCb3TDs24gc2VjdW5kYXJpbyAqL1xuLmJ0bi5idG4tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIwLCAyOCwgNDAsIDAuOTgpLCByZ2JhKDEwLCAxNCwgMjIsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZWVmOWZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAyMjYsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbn1cblxuLmJ0bi5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE0KSwgcmdiYSgwLCAxNjgsIDE4OSwgMC4xOCkpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjI2LCAyNTUsIDAuNCkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8qIEJvdG9uZXMgZGVudHJvIGRlIHRhYmxhcyAqL1xuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4sXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLmJ0biB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNCwgMjIsIDM0LCAwLjk4KSwgcmdiYSg3LCAxMSwgMTgsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjI2LCAyNTUsIDAuMjIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHJnYmEoMjQwLCAyNDcsIDI1MCwgMC45OCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpLFxuICAgICAgICAwIDhweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAyMjYsIDI1NSwgMC4wOCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE0MG1zIGVhc2UsIGJveC1zaGFkb3cgMTQwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2UsIGJhY2tncm91bmQgMTQwbXMgZWFzZSwgY29sb3IgMTQwbXMgZWFzZTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG46aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLmJ0bjpob3Zlcixcbi5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuOmZvY3VzLXZpc2libGUsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLmJ0bjpmb2N1cy12aXNpYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE4KSwgcmdiYSgwLCAxNjgsIDE4OSwgMC4yMikpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjQyKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgMXB4IHJnYmEoMCwgMjI2LCAyNTUsIDAuMTIpLFxuICAgICAgICAwIDEwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5lZGl0YXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmVkaXRhcixcbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuYnRuLXByaW1hcnksXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0bi1wcmltYXJ5LFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS1wcmltYXJ5LFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE4KSwgcmdiYSgwLCAxMjMsIDI1NSwgMC4xNCkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjQyKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZjZmZWZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpLFxuICAgICAgICAwIDAgMCAxcHggcmdiYSgwLCAyMjYsIDI1NSwgMC4wOCksXG4gICAgICAgIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5lZGl0YXI6aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmVkaXRhcjpob3Zlcixcbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuYnRuLXByaW1hcnk6aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDIzNCwgMjExLCAwLjI0KSwgcmdiYSgwLCAxMjMsIDI1NSwgMC4xOCkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIzNCwgMjExLCAwLjU4KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwIDFweCByZ2JhKDAsIDIzNCwgMjExLCAwLjE0KSxcbiAgICAgICAgMCAwIDE4cHggcmdiYSgwLCAyMjYsIDI1NSwgMC4xMiksXG4gICAgICAgIDAgMTBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAucmVtb3Zlcixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAucmVtb3Zlcixcbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuYnRuLWRhbmdlcixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuYnRuLWRhbmdlcixcbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuYnRuLW91dGxpbmUtZGFuZ2VyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tb3V0bGluZS1kYW5nZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoODgsIDE4LCAzNCwgMC45OCksIHJnYmEoMzQsIDExLCAxOCwgMC45OCkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMTI2LCAxNjAsIDAuMzQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmQ4ZTMgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyksXG4gICAgICAgIDAgMCAwIDFweCByZ2JhKDI1NSwgMTI2LCAxNjAsIDAuMDYpLFxuICAgICAgICAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5yZW1vdmVyOmhvdmVyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5yZW1vdmVyOmhvdmVyLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tZGFuZ2VyOmhvdmVyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tZGFuZ2VyOmhvdmVyLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0bi1vdXRsaW5lLWRhbmdlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDkzLCAxNDEsIDAuMjQpLCByZ2JhKDg4LCAxOCwgMzQsIDAuOTIpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDEyNiwgMTYwLCAwLjU4KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgMXB4IHJnYmEoMjU1LCAxMjYsIDE2MCwgMC4xNiksXG4gICAgICAgIDAgMCAxNnB4IHJnYmEoMjU1LCAxMjYsIDE2MCwgMC4xMiksXG4gICAgICAgIDAgMTBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuYnRuLXN1Y2Nlc3MsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0bi1zdWNjZXNzLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS1zdWNjZXNzLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDI1NSwgMTcwLCAwLjE2KSwgcmdiYSgwLCAxNzIsIDExMCwgMC4xOCkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDI1NSwgMTcwLCAwLjQ1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZWJmZmY2ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpLFxuICAgICAgICAwIDAgMCAxcHggcmdiYSgwLCAyNTUsIDE3MCwgMC4wOCksXG4gICAgICAgIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tc3VjY2Vzczpob3Zlcixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuYnRuLXN1Y2Nlc3M6aG92ZXIsXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMjU1LCAxNzAsIDAuMjIpLCByZ2JhKDAsIDE3MiwgMTEwLCAwLjI0KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjU1LCAxNzAsIDAuNjgpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDAgMCAxcHggcmdiYSgwLCAyNTUsIDE3MCwgMC4xNiksXG4gICAgICAgIDAgMCAxOHB4IHJnYmEoMCwgMjU1LCAxNzAsIDAuMTIpLFxuICAgICAgICAwIDEwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgLmJ0bi5idG4tZGFuZ2VyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC5idG4uYnRuLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSg3MiwgMTQsIDI4LCAwLjk4KSwgcmdiYSgyNiwgOCwgMTYsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDEyMCwgMTYwLCAwLjMyKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZkMGRkICFpbXBvcnRhbnQ7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuLmJ0bi1zdWNjZXNzLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC5idG4uYnRuLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMjU1LCAxNzAsIDAuMTgpLCByZ2JhKDAsIDE3MiwgMTEwLCAwLjI0KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjU1LCAxNzAsIDAuNTIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmNWZmZmIgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4uYnRuLXdhcm5pbmcsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgLmJ0bi5idG4td2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDE5MCwgMCwgMC4xOCksIHJnYmEoMTg0LCAxMzIsIDAsIDAuMjIpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDE5MCwgMCwgMC41MikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZjhkYyAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQgLmJ0bixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuYnRuLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC50YWJsZSAuYnRuLXNtLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSAuYnRuLXNtIHtcbiAgICBwYWRkaW5nOiAwLjQycmVtIDAuNzhyZW0gIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAyLjNyZW07XG4gICAgbWluLXdpZHRoOiAyLjNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQgLmJ0bjpub3QoLmJ0bi1wcmltYXJ5KTpub3QoLmJ0bi1zdWNjZXNzKTpub3QoLmJ0bi1kYW5nZXIpOm5vdCguYnRuLXdhcm5pbmcpOm5vdCguYnRuLWluZm8pLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG46bm90KC5idG4tcHJpbWFyeSk6bm90KC5idG4tc3VjY2Vzcyk6bm90KC5idG4tZGFuZ2VyKTpub3QoLmJ0bi13YXJuaW5nKTpub3QoLmJ0bi1pbmZvKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNiwgMjQsIDM2LCAwLjk4KSwgcmdiYSg4LCAxMiwgMjAsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMjYsIDI1NSwgMC4yNikgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS1wcmltYXJ5LFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgICBjb2xvcjogI2M3ZmRmZiAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IHtcbiAgICBjb2xvcjogcmdiYSgyMzIsIDI0NywgMjU1LCAwLjkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpICFpbXBvcnRhbnQ7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuYnRuLW91dGxpbmUtc3VjY2Vzcyxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuYnRuLW91dGxpbmUtc3VjY2VzcyB7XG4gICAgY29sb3I6ICNkOGZmZjAgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS1kYW5nZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0bi1vdXRsaW5lLWRhbmdlciB7XG4gICAgY29sb3I6ICNmZmQwZGQgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4tb3V0bGluZS13YXJuaW5nLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4tb3V0bGluZS13YXJuaW5nIHtcbiAgICBjb2xvcjogI2ZmZjBiOCAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0byBwcmluY2lwYWwgKi9cbi50ZXh0LXByaW5jaXBhbCB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDgwLCAyMDAsIDI1NSwgMC45KSAhaW1wb3J0YW50O1xufVxuXG4uZGF0YVRhYmxlc19maWx0ZXIgaW5wdXQsIC8qaW5wdXQgYXJyaWJhIHRhYmxhKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuLyogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDQ3LCA3MSwgMC45KSAhaW1wb3J0YW50O1xuICovICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGU1ZmYgIWltcG9ydGFudDtcbi8qICAgICBib3gtc2hhZG93OiAwIDAgNXB4ICMwMGYzZmYgIWltcG9ydGFudDtcbiAqLyAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuXG5cbi5kYXRhVGFibGVzX2ZpbHRlciBpbnB1dDo6cGxhY2Vob2xkZXIsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjpwbGFjZWhvbGRlcixcbi5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2UxZTNlNiAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLmRhdGFUYWJsZXNfZmlsdGVyIGlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyB7XG4gIC8qICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNywgNDcsIDcxLCAwLjkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQxNTRmMSAhaW1wb3J0YW50OyAqL1xuICAgIGJveC1zaGFkb3c6IDAgMCA0cHggIzAwZjNmZiAhaW1wb3J0YW50O1xufVxuLypkZXRhaWwgZ3JvdXBzKi9cbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgdGQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTAsIDE2LCAyOCwgMC45NiksIHJnYmEoNywgMTEsIDIwLCAwLjk4KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5kZXRhaWwtdmlldyAuY2FyZCxcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgLmNhcmQtYm9keSxcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgLmRldGFpbC12aWV3LWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5kZXRhaWwtdmlldyxcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgcCxcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgc3Bhbixcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgZGl2LFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5kZXRhaWwtdmlldyB0ZHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgLmRldGFpbC12aWV3IGIsXG4uZXN0aWxvc19nZW5lcmFsZXMgLmRldGFpbC12aWV3IHN0cm9uZyxcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjkyKSAhaW1wb3J0YW50O1xuXG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTAsIDE0LCAyNCwgMC45OCksIHJnYmEoNywgMTIsIDIwLCAwLjk4KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmRyb3Bkb3duLW1lbnUgbGFiZWwsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5kcm9wZG93bi1tZW51IHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnksICNmMGY0ZjgpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5kcm9wZG93bi1tZW51IGxhYmVsOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDIyNiwgMjU1LCAwLjA4KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDIzMywgMjQ3LCAyNTUsIDAuOTgpICFpbXBvcnRhbnQ7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmRyb3Bkb3duLW1lbnUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgYWNjZW50LWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtbmVvbiwgIzAwZTJmZik7XG59XG4uZXN0aWxvc19nZW5lcmFsZXMgLmRldGFpbC12aWV3IHRoIGRpdixcbi5lc3RpbG9zX2dlbmVyYWxlcyAuZGV0YWlsLXZpZXcgdGggc3BhbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyOCwgNDIsIDY4LCAwLjk4KSwgcmdiYSg4LCAxMiwgMjIsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDI0MCwgMjUyLCAyNTUsIDAuOTgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5kZXRhaWwtdmlldyB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5vc3AtdGFibGUtdWkgLmRldGFpbC12aWV3ID4gdGQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogcmdiYSgxODksIDI1NSwgMjQyLCAwLjk1KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjM0LCAyMTEsIDAuMDgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMjQpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDIzNCwgMjExLCAwLjA0KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjE4cyBlYXNlLCBib3gtc2hhZG93IDAuMThzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE4cyBlYXNlO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5kZXRhaWwtaWNvbjpob3Zlcixcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjM0LCAyMTEsIDAuMTQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMzQsIDIxMSwgMC40Mik7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMjM0LCAyMTEsIDAuMSksIDAgMCAxNHB4IHJnYmEoMCwgMjM0LCAyMTEsIDAuMTgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLm9zcC10YWJsZS11aSAuZGV0YWlsLWljb24gLmJpLFxuLm9zcC10YWJsZS11aSAuZGV0YWlsLWljb24gaSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5kZXRhaWwtaWNvbiAuYmktcGx1cy1zcXVhcmUtZmlsbCxcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5iaS1wbHVzLWNpcmNsZSxcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5nbHlwaGljb24tcGx1cyxcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5pY29uLXBsdXMsXG4ub3NwLXRhYmxlLXVpIC5kZXRhaWwtaWNvbiAuYWRkLFxuLm9zcC10YWJsZS11aSAuZGV0YWlsLWljb24gLmZhLXBsdXMsXG4ub3NwLXRhYmxlLXVpIC5kZXRhaWwtaWNvbiAuZmEtY2lyY2xlLXBsdXMge1xuICAgIGNvbG9yOiAjZDZmZmY5ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAyMzQsIDIxMSwgMC4xNSk7XG59XG5cbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5iaS1kYXNoLXNxdWFyZS1maWxsLFxuLm9zcC10YWJsZS11aSAuZGV0YWlsLWljb24gLmJpLWRhc2gtY2lyY2xlLFxuLm9zcC10YWJsZS11aSAuZGV0YWlsLWljb24gLmdseXBoaWNvbi1taW51cyxcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5pY29uLW1pbnVzLFxuLm9zcC10YWJsZS11aSAuZGV0YWlsLWljb24gLnJlbW92ZSxcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5mYS1taW51cyxcbi5vc3AtdGFibGUtdWkgLmRldGFpbC1pY29uIC5mYS1jaXJjbGUtbWludXMge1xuICAgIGNvbG9yOiAjN2NmZmQ3ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMjU1LCAxMzYsIDAuMTgpO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1ib2R5IHRyW2RhdGEtaGFzLWRldGFpbC12aWV3PVwidHJ1ZVwiXSB0ZDpmaXJzdC1jaGlsZCAuZGV0YWlsLWljb24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjM0LCAyMTEsIDAuMTQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMzQsIDIxMSwgMC4zNCk7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkgdHJbZGF0YS1oYXMtZGV0YWlsLXZpZXc9XCJ0cnVlXCJdIHRkOmZpcnN0LWNoaWxkIC5kZXRhaWwtaWNvbjpob3Zlcixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkgdHJbZGF0YS1oYXMtZGV0YWlsLXZpZXc9XCJ0cnVlXCJdIHRkOmZpcnN0LWNoaWxkIC5kZXRhaWwtaWNvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAyMzQsIDIxMSwgMC4yMik7XG59XG5cbkBzdXBwb3J0cyBzZWxlY3RvciguZGV0YWlsLWljb246aGFzKC5iaS1kYXNoLXNxdWFyZS1maWxsKSkge1xuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkgdGQ6Zmlyc3QtY2hpbGQgLmRldGFpbC1pY29uOmhhcyguYmktZGFzaC1zcXVhcmUtZmlsbCksXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtYm9keSB0ZDpmaXJzdC1jaGlsZCAuZGV0YWlsLWljb246aGFzKC5iaS1kYXNoLWNpcmNsZSksXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtYm9keSB0ZDpmaXJzdC1jaGlsZCAuZGV0YWlsLWljb246aGFzKC5nbHlwaGljb24tbWludXMpLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkgdGQ6Zmlyc3QtY2hpbGQgLmRldGFpbC1pY29uOmhhcyguaWNvbi1taW51cyksXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtYm9keSB0ZDpmaXJzdC1jaGlsZCAuZGV0YWlsLWljb246aGFzKC5yZW1vdmUpLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkgdGQ6Zmlyc3QtY2hpbGQgLmRldGFpbC1pY29uOmhhcyguZmEtbWludXMpLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWJvZHkgdGQ6Zmlyc3QtY2hpbGQgLmRldGFpbC1pY29uOmhhcyguZmEtY2lyY2xlLW1pbnVzKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjM0LCAyMTEsIDAuMTgpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjM0LCAyMTEsIDAuNDIpO1xuICAgICAgICBjb2xvcjogI2Q2ZmZmOSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAyMzQsIDIxMSwgMC4xOCksIDAgMCAxMHB4IHJnYmEoMCwgMjM0LCAyMTEsIDAuMTIpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG4gICAgfVxufVxuXG4ub3NwLXJvdy1kZXRhaWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCByaWdodCwgcmdiYSgwLCAyMzQsIDIxMSwgMC4wOCksIHRyYW5zcGFyZW50IDQwJSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTIsIDE4LCAzMCwgMC45OCkgMCUsIHJnYmEoOCwgMTQsIDI0LCAwLjk4KSAxMDAlKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAyMzQsIDIxMSwgMC4zNSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMjUpO1xufVxuXG4ub3NwLXJvdy1kZXRhaWxfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG59XG5cbi5vc3Atcm93LWRldGFpbF9fZXllYnJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zNXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiByZ2JhKDE4MCwgMTkwLCAyMTAsIDAuOSk7XG59XG5cbi5vc3Atcm93LWRldGFpbF9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMjM0LCAyMTEsIDAuMik7XG59XG5cbi5vc3Atcm93LWRldGFpbF9fc3RhdHVzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMjUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMjM0LCAyMTEsIDAuMSk7XG59XG5cbi5vc3Atcm93LWRldGFpbF9fc3RhdHVzLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAyMzQsIDIxMSwgMC4xNSk7XG4gICAgY29sb3I6ICNkNmZmZjk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIzNCwgMjExLCAwLjQpO1xufVxuXG4ub3NwLXJvdy1kZXRhaWxfX3N0YXR1cy5pcy1pbmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICBjb2xvcjogcmdiYSgyMzAsIDI0MCwgMjU1LCAwLjc1KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG5cbi5vc3Atcm93LWRldGFpbF9fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIyMHB4LCAxZnIpKTtcbiAgICBnYXA6IDFyZW07XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5vc3Atcm93LWRldGFpbF9faXRlbSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDAuNHJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDEuMTVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE4LCAyNiwgNDIsIDAuODUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMTgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xufVxuXG4ub3NwLXJvdy1kZXRhaWxfX2l0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQsIDM0LCA1NCwgMC45NSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIzNCwgMjExLCAwLjM1KTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cblxuLm9zcC1yb3ctZGV0YWlsX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiByZ2JhKDAsIDIzNCwgMjExLCAwLjk1KTtcbn1cblxuLm9zcC1yb3ctZGV0YWlsX192YWx1ZSB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICNmOGZiZmY7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi8qYnRuc3VibWl0IGRlIHVwbG9hZEZpbGUqL1xuLmJ0bkd1YXJkYXJULFxuI21vZGFsX2NhcmdhciAuYnRuLW91dGxpbmUtc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBlNjc2ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMGU2NzYgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICBwYWRkaW5nOiA4cHggMjBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50O1xufVxuLmJ0bkd1YXJkYXJUOmhvdmVyLFxuI21vZGFsX2NhcmdhciAuYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyMzAsIDExOCwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgwLCAyMzAsIDExOCwgMC4yKTtcbn1cbi8qbW9kYWwgdXBsb2FkIGZpbGUqL1xuI21vZGFsX2NhcmdhciAubW9kYWwtY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZS1zdHJvbmcsICMwZDE1MjIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNvZnQsIHJnYmEoMCwgMjI5LCAyNTUsIDAuMTUpKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC42KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnksICNmMGY0ZjgpICFpbXBvcnRhbnQ7XG59XG5cbiNtb2RhbF9jYXJnYXIgLm1vZGFsLWhlYWRlcixcbiNtb2RhbF9jYXJnYXIgLm1vZGFsLWZvb3RlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItc29mdCwgcmdiYSgwLCAyMjksIDI1NSwgMC4xNSkpICFpbXBvcnRhbnQ7XG59XG5cblxuI21vZGFsX2NhcmdhciAuYnRuLWNsb3NlIHtcbiAgICBmaWx0ZXI6IGludmVydCgxKSBncmF5c2NhbGUoMTAwJSkgYnJpZ2h0bmVzcygyMDAlKTtcbn1cblxuI21vZGFsX2NhcmdhciBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7IC8qc2VsZWNjaW9uYXJBcmNoaXZvKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1hY2NlbnQsICMwMGU1ZmYpICFpbXBvcnRhbnQ7XG59XG5cblxuLypidG5TYXZlKi9cblxuICAgIC5tb2RhbC1ib2R5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDc1ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnksICNmMGY0ZjgpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG5cbi5idG5SZXNldFR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSwgIzhiOWJiNCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnksICM4YjliYjQpICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmJ0blJlc2V0VDpob3ZlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSwgI2YwZjRmOCkgIWltcG9ydGFudDtcbn1cblxuXG5cbi8qIGlucHV0cyB5IHNlbGVjdHMgKi9cbi5mb3JtLWNvbnRyb2wsIC5mb3JtLXNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDAgMjI5IDI1NSAvIDI2JSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzLCAuZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LCAjMDBlNWZmKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDIyOSwgMjU1LCAwLjE1KSAhaW1wb3J0YW50O1xufVxuXG4uaW5wdXQtZ3JvdXB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMSwgMjUsIDQxLCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAgIzAwZjNmZiFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcblxufVxuLypkcm9wZG93bnMgZGUgbW9kYWxlcyovXG5cbi5tb2RhbCAuZm9ybS1zZWxlY3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDQ3LCA3MSwgMC45NSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwMGYzZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmM2ZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNlOWY3ZmYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMGYzZmYnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdNMiA1bDYgNiA2LTYnLyUzZSUzYy9zdmclM2VcIikgIWltcG9ydGFudDtcbn1cblxuLm1vZGFsIC5mb3JtLXNlbGVjdDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBkMjUzOCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzAwZjNmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMCwgMjQzLCAyNTUsIDAuMykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWwgLmZvcm0tc2VsZWN0IG9wdGlvbixcbi5tb2RhbCAuZm9ybS1zZWxlY3Qgb3B0Z3JvdXAge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwZDI1MzggIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfZW1haWxzIC5tb2RhbC1ib2R5IGlucHV0LmZvcm0tY29udHJvbDo6cGxhY2Vob2xkZXIsXG4jbW9kYWxfZW1haWxzIC5zd2FsMi1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDIyNSwgMjM1LCAyNDUsIDAuNzgpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfZW1haWxzIC5tb2RhbC1ib2R5IGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dCB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuI21vZGFsX2VtYWlscyAubW9kYWwtYm9keSBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuI21vZGFsX2VtYWlscyAubW9kYWwtYm9keSBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfZW1haWxzIC5tb2RhbC1ib2R5IGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDpkaXNhYmxlZDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDIyNSwgMjM4LCAyNTUsIDAuODIpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfZW1haWxzIC5tb2RhbC1ib2R5IGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDpkaXNhYmxlZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMjI1LCAyMzgsIDI1NSwgMC44MikgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbiNtb2RhbF9lbWFpbHMgLm1vZGFsLWJvZHkgaW5wdXQudWktYXV0b2NvbXBsZXRlLWlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuI21vZGFsX2VtYWlscyAubW9kYWwtYm9keSBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6ZGlzYWJsZWQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDIyNSwgMjM4LCAyNTUsIDAuODIpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfZW1haWxzIC5tb2RhbC1ib2R5IGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNtb2RhbF9lbWFpbHMgLm1vZGFsLWJvZHkgaW5wdXQudWktYXV0b2NvbXBsZXRlLWlucHV0OmRpc2FibGVkOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMjI1LCAyMzgsIDI1NSwgMC44MikgIWltcG9ydGFudDtcbn1cblxuI21vZGFsX2VtYWlscyAubW9kYWwtYm9keSBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTEsIDI1LCA0MSwgMC42KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzAwZjNmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDIyNSwgMjM4LCAyNTUsIDAuODIpICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHJnYmEoMjI1LCAyMzgsIDI1NSwgMC44MikgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbiNtb2RhbF9lbWFpbHMgLnN3YWwyLWNvbnRhaW5lciAjc3dhbF9pbmxpbmVfaW5wdXQuc3dhbDItaW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2Yjc3ODUgIWltcG9ydGFudDtcbn1cblxuI21vZGFsX2VtYWlscyAuc3dhbDItY29udGFpbmVyICNzd2FsX2lubGluZV9pbnB1dC5zd2FsMi1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNWY1ZjVmICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnBhZ2UtZW1haWxzLWluZGV4IC51aS1hdXRvY29tcGxldGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwZDI1MzggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmM2ZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDE2cHggcmdiYSgwLCAyNDMsIDI1NSwgMC4yNSkgIWltcG9ydGFudDtcbn1cblxuYm9keS5wYWdlLWVtYWlscy1pbmRleCAjZmlsdHJvR3J1cG8gaW5wdXQudWktYXV0b2NvbXBsZXRlLWlucHV0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExLCAyNSwgNDEsIDAuNikgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmM2ZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuYm9keS5wYWdlLWVtYWlscy1pbmRleCAjZmlsdHJvR3J1cG8gaW5wdXQudWktYXV0b2NvbXBsZXRlLWlucHV0OjpwbGFjZWhvbGRlcixcbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggI2ZpbHRyb0dydXBvIGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggI2ZpbHRyb0dydXBvIGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggI2ZpbHRyb0dydXBvIGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMSwgMjUsIDQxLCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjNmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDIyNSwgMjM4LCAyNTUsIDAuODIpICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHJnYmEoMjI1LCAyMzgsIDI1NSwgMC44MikgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggI2ZpbHRyb0dydXBvIGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDpkaXNhYmxlZDo6cGxhY2Vob2xkZXIsXG5ib2R5LnBhZ2UtZW1haWxzLWluZGV4ICNmaWx0cm9HcnVwbyBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6ZGlzYWJsZWQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG5ib2R5LnBhZ2UtZW1haWxzLWluZGV4ICNmaWx0cm9HcnVwbyBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6ZGlzYWJsZWQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDIyNSwgMjM4LCAyNTUsIDAuODIpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnBhZ2UtZW1haWxzLWluZGV4IC51aS1hdXRvY29tcGxldGUgLnVpLW1lbnUtaXRlbS13cmFwcGVyIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnBhZ2UtZW1haWxzLWluZGV4IC51aS1hdXRvY29tcGxldGUgLnVpLW1lbnUtaXRlbS13cmFwcGVyLnVpLXN0YXRlLWFjdGl2ZSxcbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggLnVpLWF1dG9jb21wbGV0ZSAudWktbWVudS1pdGVtLXdyYXBwZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnBhZ2UtZW1haWxzLWluZGV4IC51aS1hdXRvY29tcGxldGUgLnVpLW1lbnUtaXRlbS13cmFwcGVyLmNvbWJvLW9wdGlvbi1zZWxlY3RlZCxcbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggLnVpLWF1dG9jb21wbGV0ZSAudWktbWVudS1pdGVtLXdyYXBwZXIuY29tYm8tb3B0aW9uLXNlbGVjdGVkLnVpLXN0YXRlLWFjdGl2ZSxcbmJvZHkucGFnZS1lbWFpbHMtaW5kZXggLnVpLWF1dG9jb21wbGV0ZSAudWktbWVudS1pdGVtLXdyYXBwZXIuY29tYm8tb3B0aW9uLXNlbGVjdGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMywgMjQyLCAyNTUsIDAuOTgpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxMDJhNDMgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTk2LCAyMjEsIDI1NSwgMC45NSkgIWltcG9ydGFudDtcbn1cblxuYm9keS5wYWdlLWVtYWlscy1pbmRleCAudWktYXV0b2NvbXBsZXRlIC51aS1tZW51LWl0ZW0td3JhcHBlci5jb21iby1vcHRpb24tc2VsZWN0ZWQgLmNvbWJvLXBpbGwtc2VsZWN0ZWQge1xuICAgIGNvbG9yOiAjMWQ1ZmI4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2RjZWFmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogI2I5ZDVmZiAhaW1wb3J0YW50O1xufVxuXG4jYnRuX251ZXZvX2ZpbHRyb19jb3JyZW8sXG4jYnRuX2lyX2NhcmdhX21hc2l2YSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMSwgMjUsIDQxLCAwLjkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjNmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZTlmN2ZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDE0cHggcmdiYSgwLCAyNDMsIDI1NSwgMC4zNSkgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDZweCByZ2JhKDAsIDI0MywgMjU1LCAwLjQpO1xufVxuXG4jYnRuX251ZXZvX2ZpbHRyb19jb3JyZW86aG92ZXIsXG4jYnRuX2lyX2NhcmdhX21hc2l2YTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNywgNDcsIDcxLCAwLjk1KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzAwZjNmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDE4cHggcmdiYSgwLCAyNDMsIDI1NSwgMC41NSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5tb2RhbC1mb3JtLXNlY3Rpb24tdGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAyNDMsIDI1NSwgMC4yNSk7XG4gICAgY29sb3I6IHJnYmEoMjIyLCAyNDIsIDI1NSwgMC45KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5leGNlbC11cGxvYWQtY2FyZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAyNDMsIDI1NSwgMC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTQsIDM0LCA1MiwgMC45KSAwJSwgcmdiYSgxMSwgMjUsIDQxLCAwLjc1KSAxMDAlKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAyNDMsIDI1NSwgMC4wOCksIDAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uZXhjZWwtdXBsb2FkLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5leGNlbC11cGxvYWQtaGVhZCBoNiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZXhjZWwtdXBsb2FkLWhlYWQgc21hbGwge1xuICAgIGNvbG9yOiByZ2JhKDIwNiwgMjMwLCAyNDQsIDAuOCk7XG59XG5cbi5leGNlbC11cGxvYWQtdGVtcGxhdGUtYnRuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZXhjZWwtdXBsb2FkLWlucHV0LXdyYXAge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5leGNlbC1kcm9wem9uZSB7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMCwgMjQzLCAyNTUsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogMTZweCAxNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAyMywgMzYsIDAuNjUpO1xuICAgIGNvbG9yOiByZ2JhKDIzMCwgMjQ3LCAyNTUsIDAuOTUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLmV4Y2VsLWRyb3B6b25lIGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgY29sb3I6ICMwMGYzZmY7XG59XG5cbi5leGNlbC1kcm9wem9uZSAuZXhjZWwtZHJvcHpvbmUtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLmV4Y2VsLWRyb3B6b25lIHNtYWxsIHtcbiAgICBjb2xvcjogcmdiYSgxOTAsIDIxOSwgMjM2LCAwLjg2KTtcbn1cblxuLmV4Y2VsLWRyb3B6b25lOmhvdmVyLFxuLmV4Y2VsLWRyb3B6b25lOmZvY3VzLFxuLmV4Y2VsLWRyb3B6b25lLmlzLWRyYWdvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICMwMGYzZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4xNCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgMjQzLCAyNTUsIDAuMTgpO1xufVxuXG4uZXhjZWwtdXBsb2FkLW1ldGEge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmV4Y2VsLXVwbG9hZC1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMjE0LCAyMzgsIDI1MSwgMC45NSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5leGNlbC11cGxvYWQtZmlsZS1uYW1lIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5leGNlbC11cGxvYWQtcHJldmlldyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmV4Y2VsLXVwbG9hZC1wcmV2aWV3IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAyMywgMzYsIDAuNzUpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4yNSkgIWltcG9ydGFudDtcbn1cblxuI2VtYWlsTW9kYWxQcmV2aWV3VGFibGUgdGgsXG4jc3ViZ3J1cG9QcmV2aWV3VGFibGUgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMTIpO1xuICAgIGNvbG9yOiAjZGZmNWZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpO1xufVxuXG4jZW1haWxNb2RhbFByZXZpZXdUYWJsZSB0ZCxcbiNzdWJncnVwb1ByZXZpZXdUYWJsZSB0ZCB7XG4gICAgY29sb3I6ICNmNWZiZmY7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjEyKTtcbn1cblxuI2VtYWlsTW9kYWxQcmV2aWV3VGFibGUsXG4jc3ViZ3J1cG9QcmV2aWV3VGFibGUge1xuICAgIC0tYnMtdGFibGUtY29sb3I6ICNmNWZiZmY7XG4gICAgLS1icy10YWJsZS1iZzogcmdiYSgxMCwgMjMsIDM2LCAwLjkpO1xuICAgIC0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjogI2Y1ZmJmZjtcbiAgICAtLWJzLXRhYmxlLXN0cmlwZWQtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gICAgLS1icy10YWJsZS1ob3Zlci1jb2xvcjogI2ZmZmZmZjtcbiAgICAtLWJzLXRhYmxlLWhvdmVyLWJnOiByZ2JhKDAsIDI0MywgMjU1LCAwLjEpO1xufVxuXG4jZW1haWxNb2RhbFByZXZpZXdUYWJsZSB0aCxcbiNzdWJncnVwb1ByZXZpZXdUYWJsZSB0aCxcbiNlbWFpbE1vZGFsUHJldmlld1RhYmxlIHRkLFxuI3N1YmdydXBvUHJldmlld1RhYmxlIHRkIHtcbiAgICBjb2xvcjogI2Y1ZmJmZiAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfZW1haWxzIC5tb2RhbC1mb290ZXIsXG4jbW9kYWxfY2FyZ2FyIC5tb2RhbC1mb290ZXIsXG4jbW9kYWxfZ3J1cG8gLm1vZGFsLWZvb3RlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsIDczLCAxMDMpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoODAsIDIwMCwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAtNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG59XG4vKm1vZGFsICovXG5cblxuLm1vZGFsLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDExLCAyNSwgNDEsIDAuOTUpIDAlLCByZ2JhKDM4LCA3MywgMTAzLCAwLjUpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMjQzLCAyNTUsIDAuMykgIWltcG9ydGFudDsgLyogTMOtbmVhIGNpYW4gYWJham8gKi9cbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWwtdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSg4MCwgMjAwLCAyNTUsIDAuOSkgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG5cbi5tb2RhbC1oZWFkZXIgLmJ0bi1jbG9zZSB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoMjAwJSkgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwLjg7XG5cbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigzOCwgNzMsIDEwMykgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmM2ZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDI1cHggcmdiYSgwLCAyNDMsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWwtYm9keSBpbnB1dC5mb3JtLWNvbnRyb2wsXG4ubW9kYWwtYm9keSBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExLCAyNSwgNDEsIDAuNikgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDI0MywgMjU1LCAwLjczKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi5tb2RhbC1ib2R5IGlucHV0LmZvcm0tY29udHJvbDpmb2N1cyxcbi5tb2RhbC1ib2R5IHNlbGVjdC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTEsIDI1LCA0MSwgMC45KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjpyZ2JhKDAsIDI0MywgMjU1LCAwLjczKSFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAyNDMsIDI1NSwgMC4zKSAhaW1wb3J0YW50O1xufVxuLm1vZGFsLWJvZHkgaW5wdXQuZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMjE0LCAyMzMsIDI1NSwgMC43MikgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbi5tb2RhbC1ib2R5IGlucHV0LnVpLWF1dG9jb21wbGV0ZS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWwtYm9keSBpbnB1dC51aS1hdXRvY29tcGxldGUtaW5wdXQ6ZGlzYWJsZWQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSgyMjUsIDIzOCwgMjU1LCAwLjc4KSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLm1vZGFsLWJvZHkgbGFiZWwge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cblxuXG4ubW9kYWwtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExLCAyNSwgNDEsIDAuNSkgIWltcG9ydGFudDsgLyogVW4gcG9jbyBtw6FzIG9zY3VybyAqL1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDI0MywgMjU1LCAwLjMpICFpbXBvcnRhbnQ7IC8qIEzDrW5lYSBzZXBhcmFkb3JhICovXG59XG5cblxuLm1vZGFsLWZvb3RlciAuYnRuLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzRlNWVlICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNjNGU1ZWUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDE5NiwgMjI5LCAyMzgsIDAuMyk7XG59XG5cbi5tb2RhbC1mb290ZXIgLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTk2LCAyMjksIDIzOCwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTk2LCAyMjksIDIzOCwgMC44KSwgaW5zZXQgMCAwIDEwcHggcmdiYSgxOTYsIDIyOSwgMjM4LCAwLjUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLm1vZGFsLWZvb3RlciAuYnRuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwZmY4OCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDBmZjg4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAyNTUsIDEzNiwgMC4zKTtcbn1cblxuI21vZGFsX2l0ZW1zIC5tb2RhbC1mb290ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoOCwgMTgsIDMwLCAwLjk4KSAwJSwgcmdiYSgxMiwgMjIsIDM1LCAwLjk4KSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDI0MywgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG4jbW9kYWxfaXRlbXMgLmJ0bi1jbG9zZSB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoMjAwJSk7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cblxuLyogIChBVVRPRklMTCkgZGVsb3MgaW5wdXQgICovXG5pbnB1dDotd2Via2l0LWF1dG9maWxsLFxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAzMHB4IHJnYigxMSwgMjUsIDQxKSBpbnNldCAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAyNDMsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgNTAwMHMgZWFzZS1pbi1vdXQgMHM7XG4gICAgY2FyZXQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUmVzcG9uc2l2ZSBmaXhlcyBmb3IgdGFibGVzIGFuZCBhY3Rpb24gdG9vbGJhcnNcbiAgIFNDT1BFOiBBcGxpY2EgYSBUT0RPUyBsb3MgbcOzZHVsb3MgY29uIC5vc3AtdGFibGUtdWlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAvKiDilIDilIAgVG9vbGJhciB0YWJsZXQ6IGZsZXggaG9yaXpvbnRhbCwgc2luIGRlc2JvcmRhbWllbnRvIOKUgOKUgCAqL1xuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIsXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5jb2x1bW5zLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIH1cblxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGZsZXg6IDAgMCAyNDBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5jb2x1bW5zIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2ggaW5wdXQsXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2ggLmZvcm0tY29udHJvbCxcbiAgICAub3NwLXRhYmxlLXVpIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJ0bkd1YXJkYXJULFxuICAgIC5idG5SZXNldFQsXG4gICAgI21vZGFsX2NhcmdhciAuYnRuLW91dGxpbmUtc3VjY2VzcyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1mb290ZXIgLmJ0biB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDZweCAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmV4Y2VsLXVwbG9hZC1oZWFkIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuZXhjZWwtdXBsb2FkLXRlbXBsYXRlLWJ0biB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBUSVBPR1JBRsONQSBERSBUQUJMQSBFTiBNw5NWSUxcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGgsXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB0aCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIgLnRhYmxlIHRoIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6MnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRkLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciAudGFibGUgdGQsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB0ZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiA3cHggNXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSB0ci5kZXRhaWwtdmlldyA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIFRPT0xCQVI6IFVOQSBTT0xBIEZJTEEgRU4gTcOTVklMXG4gICAgICAgQm9vdHN0cmFwIFRhYmxlIHVzYSBmbG9hdC1zdGFydCAvIGZsb2F0LWVuZCBkZSBCb290c3RyYXAgNS5cbiAgICAgICBBdW5xdWUgZWwgcGFkcmUgc2VhIGZsZXgsIGxvcyBmbG9hdHMgZGVsIGhpam8gc2UgYW51bGFuXG4gICAgICAgYXV0b23DoXRpY2FtZW50ZSDigJQgcGVybyBCb290c3RyYXAgbG9zIHBvbmUgY29uICFpbXBvcnRhbnQsXG4gICAgICAgcG9yIGxvIHF1ZSBoYXkgcXVlIGFudWxhcmxvcyBleHBsw61jaXRhbWVudGUgYXF1w60uXG4gICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhcixcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiA0cHggIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgICAgIHBhZGRpbmc6IDAgMCA0cHggMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIEFudWxhciBjbGVhcmZpeCBkZSBCb290c3RyYXAgVGFibGUgKi9cbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyOjphZnRlcixcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIEFudWxhciBmbG9hdHMgZGUgQm9vdHN0cmFwIDUgKGZsb2F0LXN0YXJ0LCBmbG9hdC1lbmQpIGRlbnRybyBkZWwgdG9vbGJhciAqL1xuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmZsb2F0LXN0YXJ0LFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmZsb2F0LWVuZCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5mbG9hdC1zdGFydCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5mbG9hdC1lbmQge1xuICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIFRvZG9zIGxvcyBoaWpvcyBkaXJlY3RvczogZmxleCBpdGVtcyBzaW4gZmxvYXQgbmkgbWFyZ2VuIGV4dHJhICovXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+ICosXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+ICoge1xuICAgICAgICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjbGVhcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC8qIGJzLWJhcnM6IGNvbnRpZW5lIGxvcyBib3RvbmVzIGRlbCAjdG9vbGJhcl9pdGVtcyAoTnVldm8vRWxpbWluYXIvRXN0YWRvKSAqL1xuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJzLWJhcnMsXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnMtYmFycyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG9yZGVyOiAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnMtYmFyczplbXB0eSxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5icy1iYXJzOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIENvbHVtbnMgdG9nZ2xlICovXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIEV4cG9ydCAqL1xuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmV4cG9ydCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5leHBvcnQge1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBCT1RPTkVTIFRPT0xCQVI6IElDT04tT05MWSBFTiBNw5NWSUxcbiAgICAgICBQcm9ibGVtYSBkZSBlc3BlY2lmaWNpZGFkOiBlbCBzZWxlY3RvciBkZXNrdG9wXG4gICAgICAgICBbaWRePVwid2ViLWFkbWluaXN0cmF0aXZvcy1cIl0gLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuXG4gICAgICAgdGllbmUgWzEsMywwXS4gVXNhbW9zIFtpZF49XCJ3ZWItXCJdIHBhcmEgaWd1YWxhciBbMSwzLDBdXG4gICAgICAgeSBnYW5hciBwb3Igb3JkZW4gKGVzdGUgYmxvcXVlIHZpZW5lIERFU1BVw4lTIGVuIGVsIGFyY2hpdm8pLlxuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIFtpZF49XCJ3ZWItXCJdIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bixcbiAgICBbaWRePVwid2ViLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIGJ1dHRvbixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIHtcbiAgICAgICAgd2lkdGg6IDM2cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXg6IDAgMCAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAvKiBSZXNwZXRhciBjbGFzZSAuZC1ub25lIGlueWVjdGFkYSBwb3IgSlMgcGFyYSBvY3VsdGFyIGJvdG9uZXMgYnVsayBjdWFuZG8gbm8gaGF5IHNlbGVjY2nDs24gKi9cbiAgICBbaWRePVwidG9vbGJhcl9cIl0gYnV0dG9uLmQtbm9uZSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uZC1ub25lLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5kLW5vbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLyogPGk+IGRlbnRybyBkZSBib3RvbmVzIGRlbCB0b29sYmFyOiBtYW50ZW5lciB0YW1hw7FvICovXG4gICAgW2lkXj1cIndlYi1cIl0gLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIGksXG4gICAgW2lkXj1cIndlYi1cIl0gLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIGksXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIGJ1dHRvbiBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAvKiBDYXJldCBkcm9wZG93biBvY3VsdG8gKi9cbiAgICBbaWRePVwid2ViLVwiXSAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlcixcbiAgICBbaWRePVwid2ViLVwiXSAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlcixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlcixcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5kcm9wZG93bi1tZW51LFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgICB9XG5cbiAgICAvKiDilIDilIAgw41jb25vcyB2aWEgPGk+IEZvbnQgQXdlc29tZTogeWEgaW55ZWN0YWRvcyBwb3IgYm90b25lcygpIGRlIHV0aWxNYXguanMg4pSA4pSAXG4gICAgICAgI2J0bl9udWV2byAg4oaSIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj5cbiAgICAgICAjYnRuX3JlbW92ZV9hbGwg4oaSIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoLWFsdFwiPlxuICAgICAgICNidG5fZXN0YWRvX2FsbCDihpIgPGkgY2xhc3M9XCJmYXMgZmEtc3luYy1hbHRcIj5cbiAgICAgICBFbCBmb250LXNpemU6MCBvY3VsdGEgZWwgdGV4dG8geSBlbCBzZWxlY3RvciBkZSA8aT4gcmVzdGF1cmEgZWwgaWNvbm8uXG4gICAgICAgTk8gc2UgbmVjZXNpdGEgOjpiZWZvcmUgeWEgcXVlIGVsIDxpPiB5YSBleGlzdGUgZW4gZWwgRE9NLiAqL1xuXG4gICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgICAgQsOaU1FVRURBOiBMVVBBIENPTEFQU0FEQSBFTiBNw5NWSUxcbiAgICAgICBFbCAuc2VhcmNoIHRpZW5lIGZsb2F0LWVuZCAoQm9vdHN0cmFwIDUpIOKAlCB5YSBhbnVsYWRvIGFycmliYS5cbiAgICAgICBTZSBjb2xhcHNhIGEgMzbDlzM2cHggY29uIMOtY29ubyBTVkcgZGUgbHVwYS5cbiAgICAgICBBbCBoYWNlciBmb2N1cywgc2UgZXhwYW5kZSB5IG11ZXN0cmEgZWwgaW5wdXQuXG4gICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2gsXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2gge1xuICAgICAgICBmbGV4OiAwIDAgMzZweCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDM2cHggIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoOCwgMTAsIDE4LCAwLjkpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjI1KTtcbiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG9yZGVyOiAxMDtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2UsIG1heC13aWR0aCAwLjJzIGVhc2UsIGZsZXgtYmFzaXMgMC4ycyBlYXNlO1xuICAgIH1cblxuICAgIC8qIMONY29ubyBsdXBhIFNWRyBjb21vIDo6YmVmb3JlICovXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2g6OmJlZm9yZSxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBkPSdNMTEuNzQyIDEwLjM0NGwzLjM4NyAzLjM4Ny0xLjM5OCAxLjM5OC0zLjM4Ny0zLjM4N2E2IDYgMCAxMTEuMzk4LTEuMzk4ek02LjUgMTFBNC41IDQuNSAwIDEwNi41IDJhNC41IDQuNSAwIDAwMCA5eicgZmlsbD0nJTIzRTlGN0ZGJy8lM0UlM0Mvc3ZnJTNFXCIpXG4gICAgICAgICAgICBjZW50ZXIgLyAxNnB4IDE2cHggbm8tcmVwZWF0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cztcbiAgICB9XG5cbiAgICAvKiBBanVzdGFyIHdyYXBwZXJzIGludGVybm9zIGRlbCBpbnB1dCAqL1xuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoIC5pbnB1dC1ncm91cCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaCAuc2VhcmNoLWlubmVyLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoIC5pbnB1dC1ncm91cCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaCAuc2VhcmNoLWlubmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIElucHV0OiBpbnZpc2libGUgcGVybyBmdW5jaW9uYWwgKGNsaWNrIGxvIGV4cGFuZGUgdsOtYSA6Zm9jdXMtd2l0aGluKSAqL1xuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2ggLmZvcm0tY29udHJvbCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjpwbGFjZWhvbGRlcixcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIGZvY3VzLXdpdGhpbjogZXhwYW5kaXIgeSBtb3N0cmFyIGNhbXBvICovXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2g6Zm9jdXMtd2l0aGluLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiBtaW4oMTgwcHgsIGNhbGMoMTAwdncgLSAxNjBweCkpICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMTMwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaDpmb2N1cy13aXRoaW46OmJlZm9yZSxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaDpmb2N1cy13aXRoaW46OmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2g6Zm9jdXMtd2l0aGluIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2g6Zm9jdXMtd2l0aGluIC5mb3JtLWNvbnRyb2wsXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2g6Zm9jdXMtd2l0aGluIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciA+IC5zZWFyY2g6Zm9jdXMtd2l0aGluIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xuICAgICAgICBjYXJldC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwIDAuNnJlbSAwIDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxMiwgMTYsIDI4LCAwLjk4KSwgcmdiYSg4LCAxMCwgMTgsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyNiwgMjU1LCAwLjIyKSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIEx1cGEgcGVxdWXDsWEgYWwgZXhwYW5kaXIgKi9cbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyID4gLnNlYXJjaDpmb2N1cy13aXRoaW46OmFmdGVyLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgPiAuc2VhcmNoOmZvY3VzLXdpdGhpbjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBkPSdNMTEuNzQyIDEwLjM0NGwzLjM4NyAzLjM4Ny0xLjM5OCAxLjM5OC0zLjM4Ny0zLjM4N2E2IDYgMCAxMTEuMzk4LTEuMzk4ek02LjUgMTFBNC41IDQuNSAwIDEwNi41IDJhNC41IDQuNSAwIDAwMCA5eicgZmlsbD0nJTIzRTlGN0ZGJy8lM0UlM0Mvc3ZnJTNFXCIpXG4gICAgICAgICAgICBjZW50ZXIgLyAxM3B4IDEzcHggbm8tcmVwZWF0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBCT1RPTkVTIERFIEFDQ0nDk04gRU4gVEFCTEE6IElDT04tT05MWSBFTiBNw5NWSUxcbiAgICAgICBWMSAodXRpbE1heC5qcyk6IHRleHRvIGVzIHRleHQgbm9kZSDihpIgZm9udC1zaXplOjAgbG8gb2N1bHRhXG4gICAgICAgVjIgKHV0aWxUYWJsYUJvb3RzdHJhcFYyLmpzKTogdGV4dG8gZW4gLnVpLXRhYmxlLWFjdGlvbi1sYWJlbFxuICAgICAgICAgIHkgY2xhc2UgLnVpLXRhYmxlLW1vYmlsZS1pY29uLW9ubHkgc2UgYcOxYWRlIHZpYSBKU1xuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuXG4gICAgLyogVjE6IG9jdWx0YXIgdGV4dG8gZGUgLmVkaXRhci8ucmVtb3ZlciB2aWEgZm9udC1zaXplOjAgKi9cbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmVkaXRhcixcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLnJlbW92ZXIsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5lZGl0YXIsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5yZW1vdmVyLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAuZWRpdGFyLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0ZCAucmVtb3ZlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiA0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDMycHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiDDjWNvbm8gPGk+IGRlbnRybyBkZSBib3TDs24gZGUgYWNjacOzbjogcmVzdGF1cmFyIHRhbWHDsW8gKi9cbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmVkaXRhciBpLFxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAucmVtb3ZlciBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuZWRpdGFyIGksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5yZW1vdmVyIGksXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5lZGl0YXIgaSxcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGQgLnJlbW92ZXIgaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLyogVjI6IG9jdWx0YXIgbGFiZWwgZGUgdGV4dG8gKi9cbiAgICAudWktdGFibGUtbW9iaWxlLWljb24tb25seSAudWktdGFibGUtYWN0aW9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIFYyOiB0YW1hw7FvIGRlbCBib3TDs24gZW4gbW9kbyBtb2JpbGUgaWNvbi1vbmx5ICovXG4gICAgLnVpLXRhYmxlLW1vYmlsZS1pY29uLW9ubHkge1xuICAgICAgICBmb250LXNpemU6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMzJweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVpLXRhYmxlLW1vYmlsZS1pY29uLW9ubHkgaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiBCb3RvbmVzIGdlbsOpcmljb3MgZW4gY2VsZGFzICovXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHRkIC5idG4sXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4ge1xuICAgICAgICBmb250LXNpemU6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMzJweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1jb250YWluZXIgdGQgLmJ0biBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB0ZCAuYnRuIGksXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIC5idG4gaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiDilIDilIAgI3Rvb2xiYXJfaXRlbXM6IGZpbGEgaG9yaXpvbnRhbCDilIDilIAgKi9cbiAgICBbaWRePVwidG9vbGJhcl9cIl0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogTWFya2V0aW5nIHNoZWxsczogcGVybWl0aXIgcXVlIGVsIHRvb2xiYXIgc2UgZW52dWVsdmEgeSBubyBxdWVkZVxuICAgICAgIGF0cmFwYWRvIGVuIHVuIHNjcm9sbCBob3Jpem9udGFsIHF1ZSBvY3VsdGEgZWwgZHJvcGRvd24gZGUgZGVzY2FyZ2EuICovXG4gICAgI3RhYmxlSWQgW2lkXj1cInRvb2xiYXJfXCJdIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93LXg6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgI3RhYmxlSWQgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhcixcbiAgICAjdGFibGVJZCAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS10b29sYmFyIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93LXg6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDZweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICN0YWJsZUlkIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmRyb3Bkb3duLW1lbnUsXG4gICAgI3RhYmxlSWQgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtdG9vbGJhciAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIG1heC13aWR0aDogbWluKDMyMHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oNTV2aCwgMzYwcHgpO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB6LWluZGV4OiAyMDAwO1xuICAgIH1cblxuICAgIC8qIFNjcm9sbCBob3Jpem9udGFsIGVuIHRhYmxhICovXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtY29udGFpbmVyIC50YWJsZSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIgLnRhYmxlIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGF1dG87XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtYm9keSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1ib2R5IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIH1cblxuICAgIC8qIERldGFpbCB2aWV3ICovXG4gICAgLm9zcC1yb3ctZGV0YWlsIHtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICB9XG5cbiAgICAub3NwLXJvdy1kZXRhaWxfX2hlYWRlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICB9XG5cbiAgICAub3NwLXJvdy1kZXRhaWxfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIH1cblxuICAgIC5vc3Atcm93LWRldGFpbF9fc3RhdHVzIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICB9XG5cbiAgICAub3NwLXJvdy1kZXRhaWxfX2dyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEwMHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgfVxuXG4gICAgLm9zcC1yb3ctZGV0YWlsX19pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMC42NXJlbSAwLjc1cmVtO1xuICAgICAgICBnYXA6IDAuMnJlbTtcbiAgICB9XG5cbiAgICAub3NwLXJvdy1kZXRhaWxfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgIH1cblxuICAgIC5vc3Atcm93LWRldGFpbF9fdmFsdWUge1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgfVxufVxuXG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTAsIDIwLCAzMywgMC45NCksIHJnYmEoNywgMTYsIDI3LCAwLjk4KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMTBweCAxMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24tZGV0YWlsLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiA+IC5wYWdpbmF0aW9uIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24tZGV0YWlsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNnB4IDhweDtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gPiAucGFnaW5hdGlvbiB7XG4gICAgZ2FwOiA0cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2LCAxNCwgMjQsIDAuNzYpO1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtbGluayxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gPiAucGFnaW5hdGlvbiB1bC5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICAgIG1pbi13aWR0aDogMzRweDtcbiAgICBtaW4taGVpZ2h0OiAzNHB4O1xuICAgIHBhZGRpbmc6IDAuMzJyZW0gMC42MnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYsIDE0LCAyNCwgMC45OCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDIyOSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZDdlYWY0ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOXB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpLCAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXIsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uIC5wYWdlLWxpbms6Zm9jdXMsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24gdWwucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiA+IC5wYWdpbmF0aW9uIHVsLnBhZ2luYXRpb24gLnBhZ2UtbGluazpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyMjksIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjI5LCAyNTUsIDAuMzQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAyMjksIDI1NSwgMC4xNCksIDAgNnB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbiAucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5rLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiA+IC5wYWdpbmF0aW9uIHVsLnBhZ2luYXRpb24gbGkucGFnZS1pdGVtLmFjdGl2ZSA+IGEucGFnZS1saW5rLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiA+IC5wYWdpbmF0aW9uIHVsLnBhZ2luYXRpb24gbGkuYWN0aXZlID4gYS5wYWdlLWxpbmsge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMjE0LCAyMzYsIDAuOTUpLCByZ2JhKDAsIDE2OCwgMTg5LCAwLjk2KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjE0LCAyMzYsIDAuOTUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMzEwMTkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IHJnYmEoMCwgMjE0LCAyMzYsIDAuMTQpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtaXRlbS5kaXNhYmxlZCAucGFnZS1saW5rLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiA+IC5wYWdpbmF0aW9uIHVsLnBhZ2luYXRpb24gbGkuZGlzYWJsZWQgPiBhLnBhZ2UtbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA3KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDIzMywgMjQ3LCAyNTUsIDAuMzQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbiAucGFnZS1pdGVtIC5wYWdlLWxpbms6Zm9jdXMtdmlzaWJsZSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gPiAucGFnaW5hdGlvbiB1bC5wYWdpbmF0aW9uIC5wYWdlLWxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCAyMjksIDI1NSwgMC4xNiksIDAgMCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtaXRlbTpub3QoLmFjdGl2ZSk6bm90KC5kaXNhYmxlZCkgLnBhZ2UtbGluayxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gPiAucGFnaW5hdGlvbiB1bC5wYWdpbmF0aW9uIGxpOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSA+IGEucGFnZS1saW5rIHtcbiAgICBjb2xvcjogI2Q3ZWFmNCAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uIC5wYWdlLWl0ZW06bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIC5wYWdlLWxpbms6aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24gdWwucGFnaW5hdGlvbiBsaTpub3QoLmFjdGl2ZSk6bm90KC5kaXNhYmxlZCkgPiBhLnBhZ2UtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbi1pbmZvLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saXN0IHtcbiAgICBjb2xvcjogI2Q5ZWJmNyAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpc3QgLmJ0bixcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2UtbGlzdCAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBtaW4taGVpZ2h0OiAzNHB4O1xuICAgIHBhZGRpbmc6IDAuM3JlbSAwLjdyZW07XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxMCwgMTUsIDI2LCAwLjk4KSwgcmdiYSg2LCAxMCwgMTgsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHJnYmEoMjM2LCAyNTAsIDI1NSwgMC45NCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyksXG4gICAgICAgIDAgNnB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMThzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE4cyBlYXNlLCBib3gtc2hhZG93IDAuMThzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2U7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2UtbGlzdCAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saXN0IC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpc3QgLmRyb3Bkb3duLXRvZ2dsZS5zaG93LFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saXN0IC5kcm9wZG93bi10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMjM0LCAyMTEsIDAuMTYpLCByZ2JhKDAsIDE2OCwgMTg5LCAwLjIpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMzQsIDIxMSwgMC4zNikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwIDFweCByZ2JhKDAsIDIzNCwgMjExLCAwLjA4KSxcbiAgICAgICAgMCAxMHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5kcm9wZG93bi1tZW51LFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saXN0IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDgsIDEyLCAyMiwgMC45OCksIHJnYmEoNCwgOCwgMTUsIDAuOTkpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjM0LCAyMTEsIDAuMjIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjQ1KSAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5kcm9wZG93bi1pdGVtLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAuZHJvcGRvd24tbWVudSBsaSA+IGEsXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5kcm9wZG93bi1tZW51IGxpID4gc3BhbiB7XG4gICAgY29sb3I6ICNkZmVlZmEgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4ub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5kcm9wZG93bi1pdGVtOmhvdmVyLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAuZHJvcGRvd24taXRlbTpmb2N1cyxcbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLmRyb3Bkb3duLW1lbnUgbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDIzNCwgMjExLCAwLjE0KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5rLFxuLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbiAucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGluayB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjlyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC45cmVtO1xufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24ge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiA+IC5wYWdpbmF0aW9uLWRldGFpbCxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtbGluayxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24gdWwucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgICAgICAgbWluLXdpZHRoOiAzNnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuNjVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDlweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24taW5mbyxcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpc3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpc3QgLmJ0bixcbiAgICAub3NwLXRhYmxlLXVpIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpc3QgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAuMzVyZW0gMC43cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgW2lkXj1cIndlYi1hZG1pbmlzdHJhdGl2b3MtXCJdIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biB7XG4gICAgICAgIHdpZHRoOiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24ge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHg7XG4gICAgfVxuXG4gICAgLm9zcC10YWJsZS11aSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnaW5hdGlvbiB7XG4gICAgICAgIGdhcDogNHB4O1xuICAgIH1cblxuICAgIC5vc3AtdGFibGUtdWkgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtbGluayxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uID4gLnBhZ2luYXRpb24gdWwucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgICAgICAgbWluLXdpZHRoOiAzNHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAzNHB4O1xuICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMC41NXJlbTtcbiAgICB9XG59XG5cbi51aS13aWRnZXQtY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZS1zdHJvbmcsICMwZDE1MjIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSwgI2YwZjRmOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc29mdCwgcmdiYSgwLCAyMjksIDI1NSwgMC4xNSkpICFpbXBvcnRhbnQ7XG59XG5cbi51aS13aWRnZXQtY29udGVudCBhIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjZjBmNGY4KSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTU9EQUwgREUgQ09ORklSTUFDScOTTiAoU1dFRVRBTEVSVDIpXG4gICBNZWpvcmEgZGUgbG9zIGNvbG9yZXMgZGUgbG9zIGJvdG9uZXMgZGVudHJvIGRlIGxvcyBtb2RhbGVzIGRlIGFsZXJ0YVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQ29udGVuZWRvciBkZWwgTW9kYWwgKHBhcmEgY29uc2lzdGVuY2lhIGNvbiBlbCBkaXNlw7FvIGRhcmsgcHJlbWl1bSkgKi9cbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXBvcHVwKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxMywgMTksIDMxLCAwLjk4KSwgcmdiYSg3LCAxMSwgMTgsIDAuOTgpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjI2LCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMjVweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC44KSwgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2U5ZjdmZiAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDIyNiwgMjU1LCAwLjE1KSAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWh0bWwtY29udGFpbmVyIHtcbiAgICBjb2xvcjogcmdiYSgyNDAsIDI0NywgMjUwLCAwLjg1KSAhaW1wb3J0YW50O1xufVxuXG4vKiBCb3TDs24gQWNlcHRhciAvIENvbmZpcm1hciAoRXN0aWxvIFByaW1hcnkgQnJpbGxhbnRlKSAqL1xuZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbi5zd2FsMi1jb25maXJtLFxuZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbi5zd2FsMi1jb25maXJtLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE0MCwgMjU1LCAwLjg1KSwgcmdiYSgwLCA5NSwgMjAwLCAwLjk1KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDE4MCwgMjU1LCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpLCBcbiAgICAgICAgMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC42NXJlbSAxLjhyZW0gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMykgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZSAhaW1wb3J0YW50O1xufVxuXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uLnN3YWwyLWNvbmZpcm06aG92ZXIsXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uLnN3YWwyLWNvbmZpcm0uYnRuLXByaW1hcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMTYwLCAyNTUsIDAuOTUpLCByZ2JhKDAsIDExMCwgMjIwLCAwLjk1KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjAwLCAyNTUsIDAuOCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBcbiAgICAgICAgMCAwIDE1cHggcmdiYSgwLCAxNDAsIDI1NSwgMC40KSwgXG4gICAgICAgIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjQpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogQm90w7NuIENhbmNlbGFyIChFc3RpbG8gT3V0bGluZSAvIFNlY3VuZGFyaW8gRWxlZ2FudGUpICovXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uLnN3YWwyLWNhbmNlbCxcbmRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBidXR0b24uc3dhbDItY2FuY2VsLmJ0bi1kYW5nZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMzAsIDQwLCA1NiwgMC44KSwgcmdiYSgxNiwgMjQsIDM2LCAwLjkpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogcmdiYSgyNDAsIDI0NywgMjUwLCAwLjkpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpLCAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC42NXJlbSAxLjhyZW0gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2UgIWltcG9ydGFudDtcbn1cblxuZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbi5zd2FsMi1jYW5jZWw6aG92ZXIsXG5kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uLnN3YWwyLWNhbmNlbC5idG4tZGFuZ2VyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgODYsIDEzMiwgMC4xNSksIHJnYmEoMTgzLCAyNCwgNjMsIDAuMjUpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDEyMCwgMTYwLCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBcbiAgICAgICAgMCAwIDEycHggcmdiYSgyNTUsIDg2LCAxMzIsIDAuMyksIFxuICAgICAgICAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRklYOiBTQ1JPTEwgREUgTU9EQUxFUyBFTiBNw5NWSUxFU1xuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIFxuICAgIC5tb2RhbCB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoICFpbXBvcnRhbnQ7IFxuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgIH1cbiAgICBcbiAgICAubW9kYWwtZGlhbG9nIHtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICBcbiAgICAubW9kYWwtZGlhbG9nLXNjcm9sbGFibGUge1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDFyZW0pICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSAubW9kYWwtY29udGVudCB7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMXJlbSkgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlIC5tb2RhbC1ib2R5IHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gOHJlbSkgIWltcG9ydGFudDtcbiAgICAgICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qIEVzdGlsb3MgcGFyYSBlbCBjb250ZW5lZG9yIGRlIFdoYXRzQXBwICovXHJcbi53aGF0c2FwcC1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiAyMHB4O1xyXG4gICAgcmlnaHQ6IDE1cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjVEMzY2OyAvKiBDb2xvciBkZSBmb25kbyBkZSBXaGF0c0FwcCAqL1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIHotaW5kZXg6IDI7IC8qIEFzZWd1cmEgcXVlIFdoYXRzQXBwIGVzdMOpIGVuY2ltYSBkZSBUZWxlZ3JhbSAqL1xyXG59XHJcblxyXG4vKiBFc3RpbG9zIHBhcmEgZWwgY29udGVuZWRvciBkZSBUZWxlZ3JhbSAqL1xyXG4udGVsZWdyYW0tY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogNjVweDsgLyogQWp1c3RhIGxhIHBvc2ljacOzbiBwYXJhIHF1ZSBlc3TDqSBkZWJham8gZGUgV2hhdHNBcHAgKi9cclxuICAgIHJpZ2h0OiAxNnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwODhjYzsgLyogQ29sb3IgZGUgZm9uZG8gZGUgVGVsZWdyYW0gKi9cclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICB6LWluZGV4OiAxOyAvKiBBc2VndXJhIHF1ZSBUZWxlZ3JhbSBlc3TDqSBkZWJham8gZGUgV2hhdHNBcHAgKi9cclxufVxyXG5cclxuLyogRXN0aWxvcyBwYXJhIGVsIGVubGFjZSBkZSBXaGF0c0FwcCB5IFRlbGVncmFtICovXHJcbi53aGF0c2FwcC1saW5rLCAudGVsZWdyYW0tbGluayB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogI2ZmZjsgLyogQ29sb3IgZGVsIHRleHRvICovXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLyogRXN0aWxvcyBwYXJhIGVsIMOtY29ubyBkZSBXaGF0c0FwcCB5IFRlbGVncmFtICovXHJcbi53aGF0c2FwcC1pY29uLCAudGVsZWdyYW0taWNvbiB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7IC8qIFRhbWHDsW8gZGVsIMOtY29ubyAqL1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgQ29sb3I6I2ZmZjtcclxufVxyXG5cclxuLyogRXN0aWxvcyBwYXJhIGVsIHRleHRvIGRlIFdoYXRzQXBwIHkgVGVsZWdyYW0gKi9cclxuLndoYXRzYXBwLXRleHQsIC50ZWxlZ3JhbS10ZXh0IHtcclxuICAgIGZvbnQtc2l6ZToxNHB4O1xyXG59XHJcblxyXG4ud2hhdHNhcHAtdGV4dHtcclxuICAgIGNvbG9yOiNmZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogT2N1bHRhciBsb3MgY29udHJvbGVzIGRlIG7Dum1lcm8gZW4gQ2hyb21lLCBTYWZhcmksIEVkZ2UgeSBPcGVyYSAqL1xyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLyogT2N1bHRhciBsb3MgY29udHJvbGVzIGRlIG7Dum1lcm8gZW4gRmlyZWZveCAqL1xyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG59XHJcblxyXG5cclxuLmVtcHJlc2Ege1xyXG4gICAgZm9udC1mYW1pbHk6ICdCcmFkbGV5IEhhbmQgSVRDJywgY3Vyc2l2ZTtcclxuICAgIGZvbnQtc2l6ZTogMjVweDtcclxufVxyXG5cclxuLmlkSW5ncmVkaWVudGVzIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvICBUaGluJywgY3Vyc2l2ZTtcclxuICAgIGZvbnQtc2l6ZTogMjVweDtcclxufVxyXG5cclxuLmlkQ29udGVuaWRvIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtZmFtaWx5OiAnYXJpYWwgIFRoaW4nLCBjdXJzaXZlO1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG5cclxufVxyXG5cclxuLmJhbm5lckl0ZW0ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNTAwcHg7XHJcbn1cclxuLmJhbm5lckl0ZW0gaW1nIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaW1nLW5vcm1hbGl6YWRhe1xyXG4gICAgd2lkdGg6IDM1MHB4O1xyXG4gICAgaGVpZ2h0OiAyODBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuLmlkUHJlY2lvIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtZmFtaWx5OiAnYXJpYWwgIFRoaW4nLCBjdXJzaXZlO1xyXG4gICAgZm9udC1zaXplOiAzNXB4O1xyXG4gICAgYW5pbWF0aW9uOiBibGluayAxLjVzIGluZmluaXRlO1xyXG59XHJcblxyXG4vKkBrZXlmcmFtZXMgYmxpbmsgeyovXHJcbi8qICAgIDAlLCAxMDAlIHsqL1xyXG4vKiAgICAgICAgb3BhY2l0eTogMTsqL1xyXG4vKiAgICB9Ki9cclxuLyogICAgNTAlIHsqL1xyXG4vKiAgICAgICAgb3BhY2l0eTogMDsqL1xyXG4vKiAgICB9Ki9cclxuLyp9Ki8vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4jIFJlc3BvbnNpdmUgYWRqdXN0bWVudHMgZm9yIGZsb2F0aW5nIGFjdGlvbnMgYW5kIG1lZGlhIGJsb2Nrc1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcclxuICAgIC5iYW5uZXJJdGVtIHtcclxuICAgICAgICBoZWlnaHQ6IGNsYW1wKDIyMHB4LCA0NXZ3LCAzODBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmltZy1ub3JtYWxpemFkYSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgYXNwZWN0LXJhdGlvOiA1IC8gNDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XHJcbiAgICAud2hhdHNhcHAtY29udGFpbmVyLFxyXG4gICAgLnRlbGVncmFtLWNvbnRhaW5lciB7XHJcbiAgICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAudGVsZWdyYW0tY29udGFpbmVyIHtcclxuICAgICAgICBib3R0b206IDYwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLndoYXRzYXBwLXRleHQsXHJcbiAgICAudGVsZWdyYW0tdGV4dCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAud2hhdHNhcHAtaWNvbixcclxuICAgIC50ZWxlZ3JhbS1pY29uIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5lbXByZXNhIHtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmlkUHJlY2lvIHtcclxuICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICB9XHJcbn1cclxuIiwiLmV4cGlyYXRpb24tY2FyZC13cmFwcGVyIHtcclxuICAgIG1heC13aWR0aDogNzYwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0byAxLjVyZW07XHJcbn1cclxuXHJcbi5leHBpcmF0aW9uLWNhcmQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDVyZW07XHJcbiAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4MCwgMjAwLCAyNTUsIDAuMzUpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5LCAzMiwgNTMsIDAuOTIpLCByZ2JhKDIwLCA1OCwgOTIsIDAuNzgpKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTRweCAzMnB4IHJnYmEoMiwgMTAsIDIxLCAwLjM1KSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG59XHJcblxyXG4uZXhwaXJhdGlvbi1jYXJkX19pY29uIHtcclxuICAgIHdpZHRoOiA0NnB4O1xyXG4gICAgaGVpZ2h0OiA0NnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxNzAsIDI1NSwgMC4xNSk7XHJcbiAgICBjb2xvcjogIzdhZTJmZjtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjIsIDIyNiwgMjU1LCAwLjM1KTtcclxufVxyXG5cclxuLmV4cGlyYXRpb24tY2FyZF9fY29udGVudCB7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5leHBpcmF0aW9uLWNhcmRfX3RpdGxlIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4uZXhwaXJhdGlvbi1jYXJkX19jb3VudGRvd24ge1xyXG4gICAgbWFyZ2luOiAwLjJyZW0gMCAwO1xyXG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG59XHJcblxyXG4uZXhwaXJhdGlvbi1jYXJkX19jb3VudGRvd24uaXMtZXhwaXJlZCB7XG4gICAgY29sb3I6ICNmZmIwYmIgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDEyMCwgMTQ1LCAwLjcpICFpbXBvcnRhbnQ7XG59XG5cbi5leHBpcmF0aW9uLW5hdmJhciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNDVyZW07XG4gICAgcGFkZGluZzogMC4zNXJlbSAwLjdyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4MCwgMjAwLCAyNTUsIDAuMjgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoOSwgMzIsIDUzLCAwLjkyKSwgcmdiYSgyMCwgNTgsIDkyLCAwLjc4KSk7XG4gICAgY29sb3I6ICNlNmY4ZmY7XG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBtYXgtd2lkdGg6IG1pbig1NnZ3LCAzNjBweCk7XG59XG5cbi5leHBpcmF0aW9uLW5hdmJhciBpIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBjb2xvcjogIzdhZTJmZjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuI2NvbnRhZG9yLWV4cGlyYWNpb24tbmF2YmFyIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5kcm9wZG93bi1oZWFkZXIgI2V4cGlyYXRpb24tbmF2YmFyLWl0ZW0gLmV4cGlyYXRpb24tbmF2YmFyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cclxuI3NlY2Npb24taW5pY2lhbC5mdWxsLWhlaWdodDpub3QoLmQtbm9uZSkge1xyXG4gICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDE0MHB4KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbiNzZWNjaW9uLWluaWNpYWwuZnVsbC1oZWlnaHQuZC1ub25lIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1zaGVsbCB7XHJcbiAgICBtYXgtd2lkdGg6IDEwODBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4uc3Vic2NyaXB0aW9uLWhlcm8ge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg4LCAyNywgNDUsIDAuOTIpLCByZ2JhKDIyLCA1NywgOTEsIDAuNzgpKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoODAsIDIwMCwgMjU1LCAwLjIyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XHJcbiAgICBwYWRkaW5nOiAyLjI1cmVtIDEuNXJlbTtcclxuICAgIGJveC1zaGFkb3c6IDAgMjBweCA0NXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1oZXJvIC5sZWFkIHtcclxuICAgIG1heC13aWR0aDogNjgwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1jdGEtYnRuIHtcclxuICAgIG1pbi13aWR0aDogMjEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbn1cclxuXHJcbi5zdWJzY3JpcHRpb24tcGxhbi1jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDBkZWcsIHJnYmEoOCwgMjcsIDQ1LCAwLjk1KSwgcmdiYSgxOCwgNDksIDc4LCAwLjgpKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoODAsIDIwMCwgMjU1LCAwLjI0KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDE4cHggMzZweCByZ2JhKDAsIDAsIDAsIDAuMjgpO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1wbGFuLWNhcmRfX2hlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMTc0LCAyNTUsIDAuMTUpLCByZ2JhKDAsIDI0MywgMjU1LCAwLjA0KSk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg4MCwgMjAwLCAyNTUsIDAuMik7XHJcbiAgICBwYWRkaW5nOiAwLjk1cmVtIDFyZW07XHJcbn1cclxuXHJcbi5zdWJzY3JpcHRpb24tcGxhbi1jYXJkX190aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG59XHJcblxyXG4uc3Vic2NyaXB0aW9uLXBsYW4tY2FyZF9fbWV0YSB7XHJcbiAgICBjb2xvcjogI2Q5ZjJmZjtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1wbGFuLWNhcmRfX3ByaWNlIHtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiAjN2FlMmZmO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1wbGFuLWNhcmRfX2ZlYXR1cmVzIHtcclxuICAgIG1hcmdpbi10b3A6IDAuNzVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgbWF4LWhlaWdodDogMjIwcHg7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgcGFkZGluZy1yaWdodDogMC40cmVtO1xyXG59XHJcblxyXG4uc3Vic2NyaXB0aW9uLXBsYW4tY2FyZF9fZmVhdHVyZXMgbGkge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDIyNiwgMjU1LCAwLjA4KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTIyLCAyMjYsIDI1NSwgMC4xNik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgcGFkZGluZzogMC42NXJlbSAwLjc1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMC41NXJlbTtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1wbGFuLWNhcmRfX2ZlYXR1cmVzIHN0cm9uZyB7XHJcbiAgICBjb2xvcjogI2U1ZjhmZjtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1wbGFuLWNhcmRfX2ZlYXR1cmVzIHNtYWxsIHtcclxuICAgIGNvbG9yOiByZ2JhKDIyOSwgMjQ4LCAyNTUsIDAuOCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnN1YnNjcmlwdGlvbi1wbGFuLWNhcmRfX2J1dHRvbiB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuI2luZm8tcGxhbi1zZWxlY2Npb25hZG8uc3Vic2NyaXB0aW9uLXNlbGVjdGVkLXBsYW4ge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4MCwgMjAwLCAyNTUsIDAuMyk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCByZ2JhKDExLCA0MCwgNjQsIDAuOSksIHJnYmEoMTcsIDYzLCA5NywgMC43MikpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGNvbG9yOiAjZTZmOGZmO1xyXG4gICAgbWFyZ2luOiAxcmVtIGF1dG8gMDtcclxuICAgIG1heC13aWR0aDogOTgwcHg7XHJcbn1cclxuXHJcbi5zdWJzY3JpcHRpb24tc2VsZWN0ZWQtcGxhbiAuYnRuIHtcclxuICAgIGNvbG9yOiAjOWNkZmZmICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4jdmlzdGEtdHJlcyAuc3Vic2NyaXB0aW9uLXBheW1lbnQtcGFuZWwge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0MGRlZywgcmdiYSg4LCAyNywgNDUsIDAuOTUpLCByZ2JhKDE5LCA1NCwgODYsIDAuODIpKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoODAsIDIwMCwgMjU1LCAwLjIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxuICAgIGJveC1zaGFkb3c6IDAgMThweCAzNnB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcbn1cclxuXHJcbi5zdWJzY3JpcHRpb24tcGF5bWVudC1idG4ge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIG1pbi1oZWlnaHQ6IDU2cHg7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLmV4cGlyYXRpb24tY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDAuOXJlbSAxcmVtO1xuICAgIH1cblxuICAgIC5leHBpcmF0aW9uLWNhcmRfX2NvdW50ZG93biB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICB9XG5cbiAgICAuZXhwaXJhdGlvbi1uYXZiYXIge1xuICAgICAgICBtYXgtd2lkdGg6IDQ4dnc7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yOHJlbSAwLjU1cmVtO1xuICAgIH1cblxuICAgIC5zdWJzY3JpcHRpb24taGVybyB7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAxcmVtO1xuICAgIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEFQUC5TQ1NTIOKAlCBPUkRFTiBDT1JSRUNUT1xyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyogLS0tIEZyYW1ld29ya3MgYmFzZSAtLS0gKi9cclxuQGltcG9ydCBcImJvb3RzdHJhcFwiO1xyXG5AaW1wb3J0IFwiYW5pbWF0ZS5jc3MvYW5pbWF0ZS5taW4uY3NzXCI7XHJcbkBpbXBvcnQgXCJib290c3RyYXAtaWNvbnMvZm9udC9ib290c3RyYXAtaWNvbnMuY3NzXCI7XHJcbkBpbXBvcnQgXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9jc3MvYWxsLm1pbi5jc3NcIjtcclxuXHJcbi8qIC0tLSBQbHVnaW5zIGRlIHRhYmxhcyAtLS0gKi9cclxuQGltcG9ydCBcImJvb3RzdHJhcC10YWJsZS9kaXN0L2Jvb3RzdHJhcC10YWJsZS5taW4uY3NzXCI7XHJcbkBpbXBvcnQgXCJib290c3RyYXAtdGFibGUvZGlzdC9leHRlbnNpb25zL3Jlb3JkZXItcm93cy9ib290c3RyYXAtdGFibGUtcmVvcmRlci1yb3dzLm1pbi5jc3NcIjtcclxuXHJcbi8qIC0tLSBqUXVlcnkgVUkgLS0tICovXHJcbkBpbXBvcnQgXCJqcXVlcnktdWkvdGhlbWVzL2Jhc2UvYWxsLmNzc1wiO1xyXG5cclxuLyogLS0tIEFsZXJ0YXMgJiBOb3RpZmljYWNpb25lcyAtLS0gKi9cclxuQGltcG9ydCBcInN3ZWV0YWxlcnQyL2Rpc3Qvc3dlZXRhbGVydDIubWluLmNzc1wiO1xyXG5AaW1wb3J0IFwidG9hc3RyL2J1aWxkL3RvYXN0ci5taW4uY3NzXCI7XHJcbkBpbXBvcnQgXCJqcXVlcnktY29uZmlybS9jc3MvanF1ZXJ5LWNvbmZpcm0uY3NzXCI7XHJcblxyXG4vKiAtLS0gRWRpdG9yZXMgLS0tICovXHJcbkBpbXBvcnQgXCJmcm9hbGEtZWRpdG9yL2Nzcy9mcm9hbGFfZWRpdG9yLnBrZ2QubWluLmNzc1wiO1xyXG5cclxuLyogLS0tIEljb25vcyBleHRyYXMgLS0tICovXHJcbkBpbXBvcnQgXCJib3hpY29ucy9jc3MvYm94aWNvbnMubWluLmNzc1wiO1xyXG5AaW1wb3J0IFwicmVtaXhpY29uL2ZvbnRzL3JlbWl4aWNvbi5jc3NcIjtcclxuXHJcbi8qIC0tLSBVdGlsaWRhZGVzIHkgV2lkZ2V0cyAtLS0gKi9cclxuQGltcG9ydCBcImZsYXRwaWNrci9kaXN0L2ZsYXRwaWNrci5jc3NcIjtcclxuQGltcG9ydCBcImxlYWZsZXQvZGlzdC9sZWFmbGV0LmNzc1wiO1xyXG5cclxuLyogLS0tIFBpY2tyIChDb2xvciBQaWNrZXIpIC0tLSAqL1xyXG5AaW1wb3J0IFwiQHNpbW9ud2VwL3BpY2tyL2Rpc3QvdGhlbWVzL2NsYXNzaWMubWluLmNzc1wiO1xyXG5cclxuLyogLS0tIEVzdGlsb3MgcGVyc29uYWxpemFkb3MgZGVsIHByb3llY3RvIC0tLSAqL1xyXG5AaW1wb3J0IFwic3R5bGUuY3NzXCI7XHJcbkBpbXBvcnQgXCJ0YWJsZXMuY3NzXCI7XHJcbkBpbXBvcnQgXCJ2aXN0YXMuY3NzXCI7XHJcbkBpbXBvcnQgXCJzdWJzY3JpcHRpb24tZXhwaXJhdGlvbi5jc3NcIjtcclxuIiwiLyogQmFzZSBnbG9iYWwgZGUgYW5pbWFjaW9uZXMgcGFyYSBsYXMgdmlzdGFzIHDDumJsaWNhcyBkZSBNYXJrZXRpbmcuICovXG5cbi8qIFV0aWxpZGFkZXMgY29tcGFydGlkYXM7IGNhZGEgdmlzdGEgZGVjaWRlIHF1w6kgZWZlY3RvIHVzYXIuICovXG4ubWFya2V0aW5nLWFuaW1hdGlvbi1kZWxheS0xIHsgYW5pbWF0aW9uLWRlbGF5OiAuMDhzICFpbXBvcnRhbnQ7IH1cbi5tYXJrZXRpbmctYW5pbWF0aW9uLWRlbGF5LTIgeyBhbmltYXRpb24tZGVsYXk6IC4xNnMgIWltcG9ydGFudDsgfVxuLm1hcmtldGluZy1hbmltYXRpb24tZGVsYXktMyB7IGFuaW1hdGlvbi1kZWxheTogLjI0cyAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgYm9keS5tYXJrZXRpbmctcHVibGljIC5wcmV2aWV3LWNhcmQsXG4gICAgYm9keS5tYXJrZXRpbmctcHVibGljIC5wcmV2aWV3LWNhcmQgPiAqLFxuICAgIGJvZHkubWFya2V0aW5nLXB1YmxpYyBbY2xhc3MqPVwiYW5pbWF0ZV9fXCJdIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIubW9kYWxTdHlsZSAubW9kYWwtY29udGVudFxue1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigzOCwgNzMsIDEwMykgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmM2ZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDI1cHggcmdiYSgwLCAyNDMsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWxTdHlsZSAubW9kYWwtaGVhZGVyXG57XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDExLCAyNSwgNDEsIDAuOTUpIDAlLCByZ2JhKDM4LCA3MywgMTAzLCAwLjUpIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDI0MywgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG59XG5cbi5tb2RhbFN0eWxlIC5tb2RhbC10aXRsZVxue1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA2cHggcmdiYSg4MCwgMjAwLCAyNTUsIDAuOSksXG4gICAgMCAwIDE0cHggcmdiYSg4MCwgMjAwLCAyNTUsIDAuNykgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4ubW9kYWxTdHlsZSAuYnRuLWNsb3NlXG57XG4gICAgZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoMjAwJSk7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4ubW9kYWxTdHlsZSAudGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDQ3LCA3MSwgMC44NSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5tb2RhbFN0eWxlIC50YWJsZSB0aCxcbi5tb2RhbFN0eWxlIC50YWJsZSB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4MCwgMjAwLCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7IC8qIFJlamlsbGEgc3V0aWwgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGNvbG9yOiAjZTlmN2ZmICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xufVxuXG4ubW9kYWxTdHlsZSAudGFibGUgdGhlYWQgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTUwLCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMGYzZmYgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tb2RhbFN0eWxlIC50YWJsZSB0Ym9keSB0aCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm1vZGFsU3R5bGUgLnRhYmxlIHRib2R5IHRyOmhvdmVyIHRkLFxuLm1vZGFsU3R5bGUgLnRhYmxlIHRib2R5IHRyOmhvdmVyIHRoLFxuLm1vZGFsLWNvbnRlbnQgLnRhYmxlIHRib2R5IHRyOmhvdmVyIHRoXG57XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4xNSkgIWltcG9ydGFudDsgLyogTcOhcyBicmlsbGFudGUgYWwgcGFzYXIgbW91c2UgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb2RhbFN0eWxlIC5uYXYtdGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoODAsIDIwMCwgMjU1LCAwLjIpO1xufVxuXG4ubW9kYWxTdHlsZSAubmF2LWxpbmsge1xuICAgIGNvbG9yOiAjYTBjMGQwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5tb2RhbFN0eWxlIC5uYXYtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICMwMGYzZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4wNSk7XG59XG5cbi5tb2RhbFN0eWxlIC5uYXYtbGluay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwZjNmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC41KSByZ2JhKDAsIDI0MywgMjU1LCAwLjUpIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAyNDMsIDI1NSwgMC40KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuXG4ubW9kYWxTdHlsZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExLCAyNSwgNDEsIDAuOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjNmZjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1vZGFsU3R5bGUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubW9kYWxTdHlsZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfinJQnO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzAwZjNmZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubW9kYWxTdHlsZSAuY2FyZCxcbi5tb2RhbFN0eWxlIC5jYXJkLWJvZHksXG4ubW9kYWxTdHlsZSAudGFiLWNvbnRlbnQsXG4ubW9kYWxTdHlsZSAudGFiLXBhbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWxTdHlsZSAuY2FyZC10aXRsZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjMDBmM2ZmO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ubW9kYWxTdHlsZSAuYnRuXG57XG4gICAgYm9yZGVyLXdpZHRoOiAycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgcGFkZGluZzogNnB4IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi5tb2RhbFN0eWxlIC5idG4tb3V0bGluZS1zdWNjZXNzXG57XG4gICAgY29sb3I6ICMwMGZmODggIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwMGZmODggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDI1NSwgMTM2LCAwLjMpO1xufVxuXG4ubW9kYWxTdHlsZSAuYnRuLW91dGxpbmUtc3VjY2Vzczpob3Zlclxue1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCAxMzYsIDAuMTUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDI1NSwgMTM2LCAwLjgpLCBpbnNldCAwIDAgMTBweCByZ2JhKDAsIDI1NSwgMTM2LCAwLjUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLm1vZGFsU3R5bGUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeVxuXG57XG4gICAgY29sb3I6ICNjNGU1ZWUgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNjNGU1ZWUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDE5NiwgMjI5LCAyMzgsIDAuMyk7XG59XG5cbi5tb2RhbFN0eWxlIC5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXJcbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5NiwgMjI5LCAyMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDE5NiwgMjI5LCAyMzgsIDAuOCksIGluc2V0IDAgMCAxMHB4IHJnYmEoMTk2LCAyMjksIDIzOCwgMC41KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5yZXF1aXJlZFN0eWxle1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWxTdHlsZSAubW9kYWwtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExLCAyNSwgNDEsIDAuNSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAyNDMsIDI1NSwgMC4zKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBSZXNwb25zaXZlIG1vZGFsIHRhYnMgYW5kIHRhYmxlIG92ZXJmbG93XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLm1vZGFsU3R5bGUgLm5hdi10YWJzIHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICB9XG5cbiAgICAubW9kYWxTdHlsZSAubmF2LXRhYnMgLm5hdi1pdGVtIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLm1vZGFsU3R5bGUgLnRhYmxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgLm1vZGFsU3R5bGUgLmJ0biB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tb2RhbFN0eWxlIC5tb2RhbC1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5tb2RhbFN0eWxlIC5tb2RhbC1mb290ZXIgLmJ0biB7XG4gICAgICAgIGZsZXg6IDEgMSAxODBweDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAgIC5tb2RhbFN0eWxlIC5tb2RhbC1mb290ZXIgLmJ0biB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICB9XG5cbiAgICAubW9kYWxTdHlsZSAudGFibGUgdGgsXG4gICAgLm1vZGFsU3R5bGUgLnRhYmxlIHRkIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgfVxufVxuIiwiLm5hdmJhci1sb2NhbGUtc3dpdGNoLFxuLmF1dGgtbG9naW4tbG9jYWxlLWJhciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBtaW4td2lkdGg6IDEyNnB4O1xufVxuXG4uYXV0aC1sb2dpbi1sb2NhbGUtYmFyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG4uYXV0aC1sb2dpbi1sb2NhbGUtc3dpdGNoLFxuLm5hdmJhci1sb2NhbGUtc3dpdGNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtc2hlbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE2LCAyMzQsIDI1NSwgMC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSgyLCAxNiwgMjksIDAuMTgpO1xuICAgIG1pbi1oZWlnaHQ6IDQycHg7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5sb2NhbGUtc2VsZWN0LXNoZWxsOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTE2LCAyMzQsIDI1NSwgMC42Mik7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDM0cHggcmdiYSgyLCAxNiwgMjksIDAuMjQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuI2tpdC1sb2NhbGUtc2VsZWN0LmZvcm0tc2VsZWN0LXNtLFxuLmxvY2FsZS1zZWxlY3QtZW5oYW5jZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTI2cHg7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5sb2NhbGUtc2VsZWN0LWxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAwLjQ1cmVtO1xuICAgIHBhZGRpbmc6IDAgMnJlbSAwIDIuM3JlbTtcbiAgICBjb2xvcjogI2U4ZmJmZjtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5sb2NhbGUtc2VsZWN0LWxhYmVsOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+MkFwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwLjg1cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cbi5sb2NhbGUtc2VsZWN0LWxhYmVsOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDAuOTVyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDAuNXJlbTtcbiAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDIzMiwgMjUxLCAyNTUsIDAuODYpO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDIzMiwgMjUxLCAyNTUsIDAuODYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjUlKSByb3RhdGUoNDVkZWcpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5sb2NhbGUtc2VsZWN0LXNoZWxsLmlzLW9wZW4gLmxvY2FsZS1zZWxlY3QtbGFiZWw6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1JSkgcm90YXRlKDIyNWRlZyk7XG59XG5cbi5sb2NhbGUtc2VsZWN0LWxhYmVsW2RhdGEtbG9jYWxlXj1cImVuXCJdOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+HuvCfh7hcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3QtbGFiZWxbZGF0YS1sb2NhbGVePVwiZXNcIl06OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLwn4eq8J+HuFwiO1xufVxuXG4ubG9jYWxlLXNlbGVjdC1sYWJlbFtkYXRhLWxvY2FsZV49XCJwdFwiXTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIvCfh6fwn4e3XCI7XG59XG5cbi5sb2NhbGUtc2VsZWN0LWxhYmVsW2RhdGEtbG9jYWxlXj1cImZyXCJdOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+Hq/Cfh7dcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3QtbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgMC41NXJlbSk7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDExNiwgMjM0LCAyNTUsIDAuMjYpO1xuICAgIGJhY2tncm91bmQ6IHJnYigxOCAxNyAzMik7XG4gICAgYm94LXNoYWRvdzogMCAyMnB4IDM4cHggcmdiYSgyLCAxNiwgMjksIDAuMyk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlLCB2aXNpYmlsaXR5IDAuMnMgZWFzZTtcbiAgICB6LWluZGV4OiAyNTtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtc2hlbGwuaXMtb3BlbiAubG9jYWxlLXNlbGVjdC1tZW51IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ubG9jYWxlLXNlbGVjdC1vcHRpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuOHJlbTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2U4ZmJmZjtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMC44NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xufVxuXG4ubG9jYWxlLXNlbGVjdC1vcHRpb246aG92ZXIsXG4ubG9jYWxlLXNlbGVjdC1vcHRpb24uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjEgMzIgNzMgLyA4MSUpO1xuICAgIGNvbG9yOiAjNzVlYWZmO1xufVxuXG4ubG9jYWxlLXNlbGVjdC1vcHRpb24tZmxhZyB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubG9jYWxlLXNlbGVjdC1vcHRpb24tZmxhZzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIvCfjJBcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtb3B0aW9uW2RhdGEtbG9jYWxlXj1cImVuXCJdIC5sb2NhbGUtc2VsZWN0LW9wdGlvbi1mbGFnOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+HuvCfh7hcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtb3B0aW9uW2RhdGEtbG9jYWxlXj1cImVzXCJdIC5sb2NhbGUtc2VsZWN0LW9wdGlvbi1mbGFnOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+HqvCfh7hcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtb3B0aW9uW2RhdGEtbG9jYWxlXj1cInB0XCJdIC5sb2NhbGUtc2VsZWN0LW9wdGlvbi1mbGFnOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+Hp/Cfh7dcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtb3B0aW9uW2RhdGEtbG9jYWxlXj1cImZyXCJdIC5sb2NhbGUtc2VsZWN0LW9wdGlvbi1mbGFnOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi8J+Hq/Cfh7dcIjtcbn1cblxuLmxvY2FsZS1zZWxlY3Qtb3B0aW9uLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmJhci1sb2NhbGUtc3dpdGNoLFxuICAgIC5hdXRoLWxvZ2luLWxvY2FsZS1iYXIge1xuICAgICAgICBtaW4td2lkdGg6IDgycHg7XG4gICAgfVxuXG4gICAgLmxvY2FsZS1zZWxlY3Qtc2hlbGwge1xuICAgICAgICBtaW4taGVpZ2h0OiAzOHB4O1xuICAgIH1cblxuICAgICNraXQtbG9jYWxlLXNlbGVjdC5mb3JtLXNlbGVjdC1zbSxcbiAgICAubG9jYWxlLXNlbGVjdC1lbmhhbmNlZCB7XG4gICAgICAgIG1pbi13aWR0aDogODJweDtcbiAgICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgIH1cblxuICAgIC5sb2NhbGUtc2VsZWN0LWxhYmVsIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAgMS44NXJlbSAwIDEuODVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICB9XG5cbiAgICAubG9jYWxlLXNlbGVjdC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogMC42cmVtO1xuICAgIH1cblxuICAgIC5sb2NhbGUtc2VsZWN0LWxhYmVsOjphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAwLjc1cmVtO1xuICAgIH1cblxuICAgIC5sb2NhbGUtc2VsZWN0LW1lbnUge1xuICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/