@charset "UTF-8";

/* =============================================================================
 * LoginPro — UI/UX 2026 (login moderno, fluido, animato, theme-aware)
 * -----------------------------------------------------------------------------
 * Porta il linguaggio visivo di DatiPro 2026 sulle pagine d'accesso LoginPro:
 * aurora animata, card "glass", input fluidi, bottoni con gradiente/glow,
 * toggle tema chiaro/scuro. Self-contained su design token --dp-* (light in
 * :root, dark in html[data-theme="dark"]) così funziona senza ricompilare lo
 * SCSS legacy di LoginPro. Sorgente speculare: resources/sass/login2026.scss.
 *
 * LIGHT  = viola chiaro DatiPro.   DARK = verde acqua + navy (firma del tema scuro).
 * ============================================================================= */

:root {
  --dp-bg: #eef1f6;
  --dp-surface: #ffffff;
  --dp-text: #111827;
  --dp-text-title: #0f172a;
  --dp-border: #e2e6ee;
  --dp-accent: #a78bfa;
  --dp-accent-strong: #7c6ff0;
  --dp-accent-strong-rgb: 124, 111, 240;
  --dp-accent-2: #c4b5fd;
  --dp-danger: #f05050;
  --dp-success: #22b700;
  --dp-radius-sm: 8px;
  --dp-radius: 12px;
  --dp-radius-lg: 18px;
  --dp-radius-pill: 999px;
  --dp-shadow-sm: 0 1px 2px rgba(20, 35, 60, .06), 0 1px 3px rgba(20, 35, 60, .10);
  --dp-shadow: 0 10px 30px rgba(20, 35, 60, .10), 0 4px 12px rgba(20, 35, 60, .06);
  --dp-shadow-lg: 0 30px 70px rgba(20, 35, 60, .18), 0 12px 28px rgba(20, 35, 60, .10);
  --dp-transition: 170ms cubic-bezier(.4, 0, .2, 1);
  --dp-transition-slow: 280ms cubic-bezier(.4, 0, .2, 1);
  /* macchie aurora di sfondo */
  --dp-aurora-1: rgba(124, 111, 240, .30);
  --dp-aurora-2: rgba(167, 139, 250, .26);
  --dp-aurora-3: rgba(196, 181, 253, .24);
  --dp-aurora-4: rgba(124, 111, 240, .18);
  --dp-canvas: #e9eef6;
  --dp-input-bg: #ffffff;
  --dp-input-text: #0f172a;
  --dp-input-placeholder: rgba(15, 23, 42, .56);
  --dp-input-autofill-bg: #f6f8ff;
}

html[data-theme=dark] {
  --dp-bg: #0a1f37;
  --dp-surface: #0d2440;
  --dp-text: #cfd6e1;
  --dp-text-title: #eaf0f7;
  --dp-border: #1d3c60;
  --dp-accent: #2fd6bd;
  --dp-accent-strong: #20c7b4;
  --dp-accent-strong-rgb: 32, 199, 180;
  --dp-accent-2: #2aa8e0;
  --dp-danger: #f05050;
  --dp-success: #22b700;
  --dp-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .30);
  --dp-shadow: 0 14px 38px rgba(0, 0, 0, .45), 0 6px 16px rgba(0, 0, 0, .30);
  --dp-shadow-lg: 0 36px 80px rgba(0, 0, 0, .55), 0 14px 30px rgba(0, 0, 0, .40);
  --dp-aurora-1: rgba(20, 184, 166, .55);
  --dp-aurora-2: rgba(0, 126, 196, .45);
  --dp-aurora-3: rgba(20, 184, 166, .42);
  --dp-aurora-4: rgba(13, 138, 125, .40);
  --dp-canvas: #071a2f;
  --dp-input-bg: rgba(7, 26, 47, .82);
  --dp-input-text: #f4f8ff;
  --dp-input-placeholder: rgba(218, 228, 240, .66);
  --dp-input-autofill-bg: #dfe9f8;
}

/* Loader condiviso LoginPro/DatiPro: un solo linguaggio visivo per area
 * autenticata, login e azioni che richiedono una nuova pagina. */

#onloadwaitingpopup {
  position: fixed !important;
  inset: 0;
  z-index: 99999;
  display: flex !important;
  width: auto;
  height: auto;
  align-items: center;
  justify-content: center;
  pointer-events: all;
  background: radial-gradient(520px 360px at 50% 42%, rgba(var(--dp-accent-strong-rgb), 0.16), transparent 72%), rgba(238, 241, 246, 0.76);
  backdrop-filter: blur(5px);
  opacity: 0;
  animation: dpPageLoaderEnter 0.18s ease 0.14s forwards;
  transition: opacity 0.18s ease, visibility 0.18s ease;
}

#onloadwaitingpopup.is-active {
  animation-delay: 0s;
}

#onloadwaitingpopup.is-leaving {
  pointer-events: none;
  opacity: 0;
  animation: none;
}

.dp-page-loader__surface {
  display: inline-flex;
  min-width: 132px;
  align-items: center;
  gap: 12px;
  padding: 13px 17px;
  border: 1px solid rgba(var(--dp-accent-strong-rgb), 0.2);
  border-radius: var(--dp-radius-lg);
  color: #334155;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 42px rgba(38, 56, 74, 0.18);
}

.dp-page-loader__ring {
  display: block;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  box-sizing: border-box;
  border: 3px solid rgba(var(--dp-accent-strong-rgb), 0.18);
  border-top-color: var(--dp-accent-strong);
  border-radius: 50%;
  animation: dpPageLoaderSpin 0.78s linear infinite;
}

.dp-page-loader__label {
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0.01em;
}

.dp-inline-spinner,
.fa-spinner.fa-spin,
.fa-spinner.fa-pulse {
  display: inline-block !important;
  flex: 0 0 1em;
  width: 1em !important;
  height: 1em !important;
  box-sizing: border-box;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -0.12em;
  animation: dpPageLoaderSpin 0.72s linear infinite !important;
}

.fa-spinner.fa-spin::before,
.fa-spinner.fa-pulse::before {
  content: "" !important;
}

html[data-theme=dark] #onloadwaitingpopup {
  background: radial-gradient(520px 360px at 50% 42%, rgba(var(--dp-accent-strong-rgb), 0.18), transparent 72%), rgba(7, 26, 47, 0.74);
}

html[data-theme=dark] .dp-page-loader__surface {
  color: #e7f6f4;
  background: rgba(18, 45, 70, 0.95);
  box-shadow: 0 16px 46px rgba(0, 0, 0, 0.32);
}

@keyframes dpPageLoaderEnter {
  to {
    opacity: 1;
  }
}

@keyframes dpPageLoaderSpin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  #onloadwaitingpopup {
    opacity: 1;
    animation: none;
    transition: none;
  }

  #onloadwaitingpopup.is-leaving {
    opacity: 0;
  }

  .dp-page-loader__ring,
  .dp-inline-spinner,
  .fa-spinner.fa-spin,
  .fa-spinner.fa-pulse {
    animation: none !important;
  }
}

html:not([data-theme=dark]) .loginform,
html:not([data-theme=dark]) .loginform .omega__blockform__title,
html:not([data-theme=dark]) .loginform .omega__form__label,
html:not([data-theme=dark]) .loginform .omega__checkbox__label,
html:not([data-theme=dark]) .loginform p,
html:not([data-theme=dark]) .loginform span:not(.check):not(.color--white),
html:not([data-theme=dark]) .loginform .form-control,
html:not([data-theme=dark]) .loginform .omega__form__input {
  color: var(--dp-input-text) !important;
  -webkit-text-fill-color: var(--dp-input-text) !important;
}

html:not([data-theme=dark]) .loginform .omega__btn__bluelight,
html:not([data-theme=dark]) .loginform .omega__btn__bluelight * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* ----------------------------------------------------------------------------
 * Canvas + aurora animata (dietro a tutto)
 * -------------------------------------------------------------------------- */

html {
  background: var(--dp-canvas);
}

body.omega__body {
  position: relative;
  min-height: 100vh;
  color: var(--dp-text);
  background: transparent !important;
  -webkit-font-smoothing: antialiased;
  transition: color var(--dp-transition);
}

body.omega__body::before {
  content: "";
  position: fixed;
  inset: -25%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(58% 55% at 16% 18%, var(--dp-aurora-1), transparent 66%), radial-gradient(55% 52% at 86% 20%, var(--dp-aurora-2), transparent 66%), radial-gradient(60% 58% at 52% 102%, var(--dp-aurora-3), transparent 70%), radial-gradient(50% 48% at 78% 78%, var(--dp-aurora-4), transparent 70%);
  animation: dpAurora 22s ease-in-out infinite alternate;
  will-change: transform;
  transition: background 0.4s ease;
}

@keyframes dpAurora {
  0% {
    transform: translate3d(-8%, -6%, 0) scale(1.08) rotate(-3deg);
  }

  50% {
    transform: translate3d(6%, 5%, 0) scale(1.18) rotate(5deg);
  }

  100% {
    transform: translate3d(10%, 8%, 0) scale(1.22) rotate(10deg);
  }
}

/* Velo per leggibilità extra in dark */

html[data-theme=dark] body.omega__body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(120% 90% at 50% 40%, transparent 40%, rgba(4, 14, 28, 0.55));
}

/* la UI sta sopra l'aurora */

body.omega__body .c-wrapper,
body.omega__body .c-body,
body.omega__body .c-main,
body.omega__body .container-fluid,
body.omega__body #ui-view {
  position: relative;
  z-index: 1;
}

/* ----------------------------------------------------------------------------
 * Contenitore + card login
 * -------------------------------------------------------------------------- */

.loginform__container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 90px);
  padding: 32px 16px;
}

.omega__blockform.loginform {
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  padding: 38px 34px 34px;
  background: var(--dp-surface);
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-lg);
  backdrop-filter: saturate(140%) blur(2px);
  overflow: hidden;
  animation: dpCardIn 0.55s cubic-bezier(0.16, 1, 0.3, 1) both;
  transition: box-shadow var(--dp-transition), border-color var(--dp-transition), transform var(--dp-transition), background var(--dp-transition);
}

/* sottile barra accent in cima alla card */

.omega__blockform.loginform::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--dp-accent-strong), var(--dp-accent) 55%, var(--dp-accent-2));
  opacity: 0.9;
}

/* glow soffuso interno in dark */

html[data-theme=dark] .omega__blockform.loginform {
  background-color: rgba(13, 36, 64, 0.94);
  border-color: rgba(47, 214, 189, 0.26);
  background-image: radial-gradient(120% 120% at 0% 0%, rgba(32, 199, 180, 0.12), transparent 46%), radial-gradient(120% 120% at 100% 100%, rgba(0, 126, 196, 0.1), transparent 52%);
  background-repeat: no-repeat;
}

@keyframes dpCardIn {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.985);
  }

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

/* ----------------------------------------------------------------------------
 * Header card (logo + titolo)
 * -------------------------------------------------------------------------- */

.loginform__header {
  padding: 0;
  margin-bottom: 26px;
  text-align: center;
  animation: dpFadeUp 0.6s 0.08s both;
}

.loginform__logo {
  max-width: 280px;
  width: 100%;
  height: auto;
  margin: 0 auto 6px;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.12));
}

.loginform__header .omega__blockform__title {
  position: relative;
  display: inline-block;
  margin: 16px 0 0;
  padding: 14px 0 0;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--dp-text-title);
  border-top: 0 !important;
}

.loginform__header .omega__blockform__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  width: 46px;
  height: 3px;
  border-radius: var(--dp-radius-pill);
  background: linear-gradient(90deg, var(--dp-accent-strong), var(--dp-accent));
  transform: translateX(-50%);
}

/* ----------------------------------------------------------------------------
 * Body / form
 * -------------------------------------------------------------------------- */

.omega__blockform__body {
  animation: dpFadeUp 0.6s 0.16s both;
}

.loginform .form-group {
  margin-bottom: 18px;
}

.loginform .omega__form__label {
  display: block;
  margin-bottom: 7px;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--dp-text-title);
  text-align: left !important;
}

.loginform .omega__form__input,
.loginform input.form-control,
.loginform select.form-control,
.loginform textarea.form-control {
  width: 100%;
  height: auto;
  padding: 12px 14px;
  font-size: 14.5px;
  color: var(--dp-input-text) !important;
  -webkit-text-fill-color: var(--dp-input-text) !important;
  caret-color: var(--dp-accent-strong);
  background: var(--dp-input-bg);
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius) !important;
  box-shadow: none;
  transition: border-color var(--dp-transition), box-shadow var(--dp-transition), background-color var(--dp-transition), transform var(--dp-transition);
}

.loginform .omega__form__input::-moz-placeholder, .loginform input.form-control::-moz-placeholder {
  color: var(--dp-input-placeholder) !important;
  opacity: 1;
  -webkit-text-fill-color: var(--dp-input-placeholder) !important;
}

.loginform .omega__form__input::placeholder,
.loginform input.form-control::placeholder {
  color: var(--dp-input-placeholder) !important;
  opacity: 1;
  -webkit-text-fill-color: var(--dp-input-placeholder) !important;
}

.loginform .omega__form__input:hover,
.loginform input.form-control:hover {
  border-color: rgba(var(--dp-accent-strong-rgb), 0.45);
}

.loginform .omega__form__input:focus,
.loginform input.form-control:focus,
.loginform select.form-control:focus {
  outline: none;
  color: var(--dp-input-text) !important;
  -webkit-text-fill-color: var(--dp-input-text) !important;
  background: var(--dp-input-bg);
  border-color: var(--dp-accent-strong);
  box-shadow: 0 0 0 4px rgba(var(--dp-accent-strong-rgb), 0.15);
  transform: translateY(-1px);
}

html[data-theme=dark] .loginform .omega__form__input,
html[data-theme=dark] .loginform input.form-control,
html[data-theme=dark] .loginform select.form-control,
html[data-theme=dark] .loginform textarea.form-control {
  color: var(--dp-input-text) !important;
  -webkit-text-fill-color: var(--dp-input-text) !important;
  background: var(--dp-input-bg);
  border-color: rgba(47, 214, 189, 0.24);
}

html[data-theme=dark] .loginform .omega__form__input::-moz-placeholder, html[data-theme=dark] .loginform input.form-control::-moz-placeholder {
  color: var(--dp-input-placeholder) !important;
  -webkit-text-fill-color: var(--dp-input-placeholder) !important;
}

html[data-theme=dark] .loginform .omega__form__input::placeholder,
html[data-theme=dark] .loginform input.form-control::placeholder {
  color: var(--dp-input-placeholder) !important;
  -webkit-text-fill-color: var(--dp-input-placeholder) !important;
}

html[data-theme=dark] .loginform .omega__form__input:focus,
html[data-theme=dark] .loginform input.form-control:focus,
html[data-theme=dark] .loginform select.form-control:focus {
  background: rgba(10, 31, 55, 0.96);
  color: var(--dp-input-text) !important;
  -webkit-text-fill-color: var(--dp-input-text) !important;
  border-color: #2fd6bd;
  box-shadow: 0 0 0 4px rgba(47, 214, 189, 0.18);
}

/* Chrome/autofill: mantiene testo leggibile anche quando il browser forza sfondi chiari. */

.loginform input.form-control:-webkit-autofill,
.loginform input.form-control:-webkit-autofill:hover,
.loginform input.form-control:-webkit-autofill:focus,
.loginform input.omega__form__input:-webkit-autofill,
.loginform input.omega__form__input:-webkit-autofill:hover,
.loginform input.omega__form__input:-webkit-autofill:focus {
  color: var(--dp-input-text) !important;
  -webkit-text-fill-color: var(--dp-input-text) !important;
  caret-color: var(--dp-accent-strong);
  border-color: rgba(var(--dp-accent-strong-rgb), 0.38) !important;
  box-shadow: 0 0 0 1000px var(--dp-input-bg) inset, 0 0 0 4px rgba(var(--dp-accent-strong-rgb), 0.1) !important;
  -webkit-transition: background-color 9999s ease-out 0s, color 9999s ease-out 0s;
  transition: background-color 9999s ease-out 0s, color 9999s ease-out 0s;
}

html[data-theme=dark] .loginform input.form-control:-webkit-autofill,
html[data-theme=dark] .loginform input.form-control:-webkit-autofill:hover,
html[data-theme=dark] .loginform input.form-control:-webkit-autofill:focus,
html[data-theme=dark] .loginform input.omega__form__input:-webkit-autofill,
html[data-theme=dark] .loginform input.omega__form__input:-webkit-autofill:hover,
html[data-theme=dark] .loginform input.omega__form__input:-webkit-autofill:focus {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  caret-color: #0f172a;
  border-color: rgba(47, 214, 189, 0.45) !important;
  box-shadow: 0 0 0 1000px var(--dp-input-autofill-bg) inset, 0 0 0 4px rgba(47, 214, 189, 0.18) !important;
}

/* ----------------------------------------------------------------------------
 * Bottoni
 * -------------------------------------------------------------------------- */

.loginform .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 18px;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: var(--dp-radius) !important;
  transition: background-color var(--dp-transition), border-color var(--dp-transition), color var(--dp-transition), box-shadow var(--dp-transition), transform var(--dp-transition), filter var(--dp-transition);
}

.loginform .width--100,
.loginform .w-100 {
  width: 100%;
}

.loginform .margintop-10 {
  margin-top: 12px;
}

/* primario: gradiente accent + glow, con shimmer all'hover */

.loginform .omega__btn__bluelight {
  position: relative;
  margin-top: 6px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--dp-accent-strong), var(--dp-accent)) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 8px 20px rgba(var(--dp-accent-strong-rgb), 0.3);
  overflow: hidden;
}

.loginform .omega__btn__bluelight span,
.loginform .omega__btn__bluelight i {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.loginform .omega__btn__bluelight::after {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  transform: skewX(-18deg);
  transition: left 0.6s ease;
}

.loginform .omega__btn__bluelight:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
  box-shadow: 0 12px 28px rgba(var(--dp-accent-strong-rgb), 0.42);
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.loginform .omega__btn__bluelight:hover::after {
  left: 130%;
}

.loginform .omega__btn__bluelight:active {
  transform: translateY(0);
  box-shadow: 0 6px 14px rgba(var(--dp-accent-strong-rgb), 0.3);
}

html:not([data-theme=dark]) .loginform .omega__btn__bluelight {
  background: linear-gradient(135deg, #7c6ff0, #a78bfa) !important;
  border: 1px solid rgba(124, 111, 240, 0.45) !important;
  box-shadow: 0 8px 20px rgba(124, 111, 240, 0.24);
}

html:not([data-theme=dark]) .loginform .omega__btn__bluelight:hover {
  background: linear-gradient(135deg, #8b5cf6, #c4b5fd) !important;
  border-color: rgba(167, 139, 250, 0.8) !important;
  box-shadow: 0 12px 28px rgba(124, 111, 240, 0.34) !important;
  filter: none;
}

/* secondario: outline morbido */

.loginform .omega__btn__white {
  color: var(--dp-accent-strong) !important;
  -webkit-text-fill-color: var(--dp-accent-strong) !important;
  background: var(--dp-surface) !important;
  border: 1px solid var(--dp-accent-strong) !important;
  box-shadow: var(--dp-shadow-sm);
}

.loginform .omega__btn__white span,
.loginform .omega__btn__white i {
  color: var(--dp-accent-strong) !important;
  -webkit-text-fill-color: var(--dp-accent-strong) !important;
}

.loginform .omega__btn__white:hover {
  transform: translateY(-1px);
  color: var(--dp-accent-strong) !important;
  -webkit-text-fill-color: var(--dp-accent-strong) !important;
  border-color: var(--dp-accent-strong) !important;
  background: rgba(var(--dp-accent-strong-rgb), 0.06) !important;
  box-shadow: var(--dp-shadow-sm);
}

.loginform .omega__btn__white:active {
  transform: translateY(0);
}

.loginform .omega--center {
  text-align: center;
}

/* link generici dentro la card */

.loginform a:not(.btn) {
  color: var(--dp-accent-strong);
  font-weight: 600;
  text-decoration: none;
  transition: color var(--dp-transition);
}

.loginform a:not(.btn):hover {
  color: var(--dp-accent);
  text-decoration: underline;
}

/* checkbox "ricordami" */

.loginform .omega__checkbox__label {
  color: var(--dp-text);
}

/* ----------------------------------------------------------------------------
 * Toggle tema (sole/luna) — fisso in alto a destra
 * -------------------------------------------------------------------------- */

.dp-theme-toggle {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: var(--dp-text-title);
  background: var(--dp-surface);
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius-pill);
  box-shadow: var(--dp-shadow-sm);
  cursor: pointer;
  transition: color var(--dp-transition), border-color var(--dp-transition), background-color var(--dp-transition), transform var(--dp-transition), box-shadow var(--dp-transition);
}

.dp-theme-toggle:hover {
  color: var(--dp-accent-strong);
  border-color: var(--dp-accent-strong);
  transform: translateY(-1px);
  box-shadow: var(--dp-shadow);
}

.dp-theme-toggle:active {
  transform: translateY(0) scale(0.95);
}

/* Nessun bordo residuo dopo il click col mouse: outline solo per navigazione da tastiera */

.dp-theme-toggle:focus {
  outline: none;
}

.dp-theme-toggle:focus:not(:focus-visible) {
  color: var(--dp-text-title);
  border-color: var(--dp-border);
  box-shadow: var(--dp-shadow-sm);
  transform: none;
}

.dp-theme-toggle:focus-visible {
  outline: 2px solid var(--dp-accent-strong);
  outline-offset: 2px;
}

.dp-theme-toggle i {
  font-size: 19px;
  transition: opacity 0.3s ease, transform 0.3s ease, filter 0.3s ease;
}

/* Sole (mostrato in dark): rotazione fluida + bagliore viola come la piattaforma */

.dp-theme-toggle .dp-icon-sun {
  display: none;
}

.dp-theme-toggle .dp-icon-moon {
  display: inline-block;
}

html[data-theme=dark] .dp-theme-toggle .dp-icon-sun {
  display: inline-block;
}

html[data-theme=dark] .dp-theme-toggle .dp-icon-moon {
  display: none;
}

html[data-theme=dark] .dp-theme-toggle:hover .dp-icon-sun {
  transform: rotate(35deg) scale(1.1);
  filter: drop-shadow(0 0 7px rgba(124, 111, 240, 0.7));
}

/* Luna (mostrata in light): oscillazione + bagliore celeste */

.dp-theme-toggle:hover .dp-icon-moon {
  transform: rotate(-18deg) scale(1.1);
  filter: drop-shadow(0 0 6px rgba(150, 205, 255, 0.9));
}

/* ----------------------------------------------------------------------------
 * Footer minimale sotto al login
 * -------------------------------------------------------------------------- */

body.omega__body .omega__footer,
body.omega__body footer {
  position: relative;
  z-index: 1;
  color: var(--dp-text);
  background: transparent !important;
  border: 0 !important;
}

/* alert / messaggi flash dentro la card-zone */

.loginform .invalid-feedback,
.loginform .text-danger,
.loginform .help-block {
  color: var(--dp-danger);
  font-size: 12.5px;
}

/* ----------------------------------------------------------------------------
 * Animazioni condivise + accessibilità
 * -------------------------------------------------------------------------- */

@keyframes dpFadeUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

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

@media (max-width: 520px) {
  .omega__blockform.loginform {
    padding: 30px 22px 26px;
    border-radius: var(--dp-radius);
  }

  .loginform__container {
    min-height: calc(100vh - 70px);
    padding: 20px 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.omega__body::before {
    animation: none;
  }

  .omega__blockform.loginform,
  .loginform__header,
  .omega__blockform__body {
    animation: none;
  }

  .loginform .btn,
  .loginform .omega__form__input {
    transition: none;
  }
}


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