/* Genel stiller */
body {
  margin: 0;
  padding: 0;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f8f9fa;
}

/* Index sayfası özel body stili */
.index-body {
  background: linear-gradient(180deg, #f5f7fa 0%, #c3cfe2 100%);
  min-height: 100vh;
}

/* Navbar stilleri - sticky ile içerik doküman akışında kalır, overlay olmaz */
.navbar {
  background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
  padding: 15px 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  flex-wrap: wrap;
}

/* Responsive görünüm kontrolleri */
.desktop-view {
  display: none;
}

.tablet-view {
  display: none;
}

.mobile-view {
  display: flex;
}

/* Büyük (1200px ve üzeri) */
@media (min-width: 1200px) {
  .desktop-view {
    display: flex;
  }
  .tablet-view {
    display: none;
  }
  .mobile-view {
    display: none;
  }
}

/* Orta (768px - 1199px) */
@media (min-width: 768px) and (max-width: 1199px) {
  .desktop-view {
    display: none;
  }
  .tablet-view {
    display: flex;
  }
  .mobile-view {
    display: none;
  }
}

/* Küçük (767px ve altı) */
@media (max-width: 767px) {
  .navbar {
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 15px;
  }
  .desktop-view {
    display: none;
  }
  .tablet-view {
    display: none;
  }
  .mobile-view {
    display: flex;
  }
}

.logo .logo-text {
  color: white;
  font-size: 24px;
  margin: 0;
  letter-spacing: 1px;
  font-weight: 700;
  text-shadow: 0 2px 4px rgba(0,0,0,0.1);
  display: block;
}

/* About/Contact ve kullanıcı adı + çıkış arasında tutarlı boşluk (çok dilli navbar) */
.nav-links {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 1.15rem;
  row-gap: 0.25rem;
}

.nav-links a {
  color: white;
  text-decoration: none;
  margin-left: 0;
  font-weight: 600;
  transition: all 0.3s;
  position: relative;
  padding: 5px 0;
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: white;
  transition: width 0.3s;
}

.nav-links a:hover::after {
  width: 100%;
}

/* Navbar: About | Contact ve kullanıcı | Çıkış — çok dilli satırlarda bitişik okuma (ör. HI) önlenir */
.nav-inline-sep {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  user-select: none;
  pointer-events: none;
  align-self: center;
  padding: 0 0.2rem;
  flex-shrink: 0;
}
.nav-inline-sep--auth {
  opacity: 0.95;
}

.auth-buttons {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 12px;
}

.auth-buttons a,
.auth-buttons button.register-btn {
  text-decoration: none;
  margin-left: 0;
  padding: 8px 16px;
  border-radius: 20px;
  transition: all 0.3s;
  font-weight: 600;
}

.login-btn {
  color: white;
  background-color: rgba(255,255,255,0.2);
}

.login-btn:hover {
  background-color: rgba(255,255,255,0.3);
}

.register-btn {
  background-color: white;
  color: #ff6b6b;
}

.register-btn:hover {
  background-color: #f8f9fa;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Hamburger dropdown */
.hamburger {
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.hamburger i {
  color: white;
  font-size: 20px;
  background-color: rgba(255,255,255,0.2);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 767px) {
  .hamburger i {
    font-size: 24px;
    width: 42px;
    height: 42px;
  }
}

.hamburger .dropdown-menu {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: white;
  min-width: 250px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transition: all 0.3s ease;
  z-index: 1000;
}

.hamburger .dropdown-menu.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

/* Mobilde hamburger dropdown sayfadan taşmasın - max-height + scroll */
@media (max-width: 767px) {
  .hamburger .dropdown-menu {
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

.hamburger .dropdown-menu a {
  display: block;
  padding: 12px 20px;
  color: #333;
  text-decoration: none;
}

.hamburger .dropdown-menu a:hover {
  background-color: #f8f9fa;
  color: #ff6b6b;
}

/* Mobil Auth Butonları */
.mobile-auth-links {
  padding: 15px;
  border-bottom: 1px solid #e9ecef;
  margin-bottom: 10px;
}

.mobile-auth-btn {
  display: block !important;
  width: 100% !important;
  margin-bottom: 10px !important;
  padding: 10px 15px !important;
  border-radius: 25px !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
  text-align: center !important;
  border: none !important;
  background: linear-gradient(45deg, #667eea, #764ba2) !important;
  color: white !important;
  box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3) !important;
}

.mobile-auth-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4) !important;
  color: white !important;
  text-decoration: none !important;
}

.mobile-auth-btn i {
  margin-right: 8px;
}

/* Dil seçimi */
.language-selector {
  position: relative;
  margin-left: 15px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 5px;
}

.language-selector i {
  color: white;
  font-size: 18px;
  cursor: pointer;
  background-color: rgba(255,255,255,0.2);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: middle;
}

.language-code {
  color: white;
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
  user-select: none;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  line-height: 36px;
}

.language-selector .dropdown-menu {
  position: absolute;
  top: 50px;
  right: 0;
  background-color: white;
  min-width: 150px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transition: all 0.3s ease;
  z-index: 1000;
}

.language-selector .dropdown-menu.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.language-selector .dropdown-menu a {
  display: block;
  padding: 10px 15px;
  color: #333;
  text-decoration: none;
  font-size: 14px;
}

.language-selector .dropdown-menu a:hover {
  background-color: #f8f9fa;
  color: #ff6b6b;
}

.language-selector .dropdown-menu a.active {
  background-color: #ff6b6b;
  color: white;
}

.language-flag {
  margin-right: 8px;
}

/* Index sayfası özel stiller */
.colorful-card {
  background: white;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  padding: 2.5rem;
  margin-top: 2rem;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.colorful-card:hover {
  transform: translateY(-5px);
}

.colorful-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #ff9a9e 0%, #fad0c4 100%);
}

.floating-element {
  position: absolute;
  border-radius: 50%;
  opacity: 0.1;
  z-index: 0;
}

.floating-1 {
  width: 100px;
  height: 100px;
  background-color: #ff9a9e;
  top: -50px;
  right: -50px;
  animation: float 6s ease-in-out infinite;
}

.floating-2 {
  width: 150px;
  height: 150px;
  background-color: #4facfe;
  bottom: -75px;
  left: -75px;
  animation: float 8s ease-in-out infinite;
}

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

/* Form stilleri */
.form-label {
  font-weight: 600;
  color: #4a5568;
  margin-bottom: 0.5rem;
}

.form-select, .form-control {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.75rem;
  transition: all 0.3s;
}

.form-select:focus, .form-control:focus {
  border-color: #4299e1;
  box-shadow: 0 0 0 0.2rem rgba(66, 153, 225, 0.25);
}

.btn-colorful {
  background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
  color: white;
  border: none;
  border-radius: 30px;
  padding: 0.75rem 2rem;
  font-weight: 600;
  transition: all 0.3s;
  box-shadow: 0 4px 15px rgba(255, 154, 158, 0.3);
}

.btn-colorful:hover {
  transform: translateY(-3px);
  box-shadow: 0 7px 20px rgba(255, 154, 158, 0.4);
}

/* Genel container */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

/* Navbar artık position: sticky olduğu için body padding-top GEREKMEZ.
   Sticky navbar doküman akışında kalır, içerik otomatik altında başlar. */

/* Form grupları */
.form-group {
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
}

/* ============================================
   COMPACT SIDEBAR STYLES (Orta/Küçük Ekranlar)
   ============================================ */
.compact-sidebar {
  display: flex;
  justify-content: center;
}

.compact-card {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  border-left: 3px solid #6f42c1;
  width: 100%;
  max-width: 100%;
}

.compact-title {
  color: #6f42c1;
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 0.75rem;
  text-align: center;
}

.compact-items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.compact-item {
  display: flex;
  align-items: center;
  font-size: 0.8rem;
  color: #495057;
  padding: 0.3rem 0.55rem;
  background: #f8f9fa;
  border-radius: 20px;
  flex: 0 1 auto;
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
}

.compact-item:active,
.compact-item:hover {
  transform: scale(0.96);
  box-shadow: 0 1px 6px rgba(0,0,0,0.13);
  filter: brightness(0.93);
}

.compact-item i {
  font-size: 0.75rem;
}

.compact-item .compact-chevron {
  font-size: 0.65rem;
  margin-left: 0.35rem;
  opacity: 0.7;
  transition: opacity 0.2s;
}

.compact-item:active .compact-chevron,
.compact-item:hover .compact-chevron {
  opacity: 1;
}

.compact-text {
  white-space: nowrap;
  font-weight: 500;
}

/* Orta ekranlar için (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .compact-sidebar {
    display: flex;
  }
  
  .compact-card {
    padding: 1.25rem 1.5rem;
  }
  
  .compact-title {
    font-size: 1rem;
  }
  
  .compact-item {
    font-size: 0.85rem;
    padding: 0.35rem 0.65rem;
    border-radius: 20px;
  }
  
  /* Form kartını küçült */
  .colorful-card {
    padding: 2rem 2.25rem;
    margin-top: 1.5rem;
  }
  
  /* Container padding'i azalt */
  .container-fluid.px-4 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  
  /* Form başlıklarını küçült */
  .colorful-card h2 {
    font-size: 1.75rem;
    margin-bottom: 1rem;
  }
  
  .colorful-card p {
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
  }
  
  /* Form gruplarını küçült */
  .form-group {
    margin-bottom: 0.85rem;
  }
  
  .form-label {
    font-size: 0.9rem;
    margin-bottom: 0.4rem;
  }
  
  .form-select, .form-control {
    padding: 0.65rem;
    font-size: 0.9rem;
  }
  
  /* Butonları küçült */
  .btn-colorful {
    padding: 0.65rem 1.5rem;
    font-size: 0.9rem;
  }
}

/* Küçük ekranlar için (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
  .compact-sidebar {
    display: flex;
  }
  
  .compact-card {
    padding: 1rem 1.25rem;
  }
  
  .compact-title {
    font-size: 0.9rem;
  }
  
  .compact-item {
    font-size: 0.75rem;
    padding: 0.3rem 0.5rem;
    border-radius: 20px;
  }
  
  /* Form kartını daha da küçült */
  .colorful-card {
    padding: 1.5rem 1.75rem;
    margin-top: 1rem;
  }
  
  /* Container padding'i daha da azalt */
  .container-fluid.px-4 {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  
  /* Form başlıklarını küçült */
  .colorful-card h2 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }
  
  .colorful-card p {
    font-size: 0.85rem;
    margin-bottom: 1.25rem;
  }
  
  /* Form gruplarını küçült */
  .form-group {
    margin-bottom: 0.75rem;
  }
  
  .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
  }
  
  .form-select, .form-control {
    padding: 0.6rem;
    font-size: 0.85rem;
  }
  
  /* Butonları küçült */
  .btn-colorful {
    padding: 0.6rem 1.25rem;
    font-size: 0.85rem;
  }
}

/* Çok küçük ekranlar için (max-width: 575px) */
@media (max-width: 575px) {
  .compact-sidebar {
    display: flex;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .compact-card {
    padding: 0.85rem 1rem;
  }
  
  .compact-title {
    font-size: 0.85rem;
    margin-bottom: 0.6rem;
  }
  
  .compact-items {
    gap: 0.4rem;
  }
  
  .compact-item {
    font-size: 0.7rem;
    padding: 0.25rem 0.4rem;
    border-radius: 18px;
  }
  
  .compact-item i {
    font-size: 0.7rem;
  }
  
  /* Form kartını en küçük boyut */
  .colorful-card {
    padding: 1.25rem 1.5rem;
    margin-top: 0.75rem;
  }
  
  /* Container padding'i minimum */
  .container-fluid.px-4 {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }
  
  /* Form başlıklarını küçült */
  .colorful-card h2 {
    font-size: 1.35rem;
    margin-bottom: 0.6rem;
  }
  
  .colorful-card p {
    font-size: 0.8rem;
    margin-bottom: 1rem;
  }
  
  /* Form gruplarını küçült */
  .form-group {
    margin-bottom: 0.65rem;
  }
  
  .form-label {
    font-size: 0.8rem;
    margin-bottom: 0.3rem;
  }
  
  .form-select, .form-control {
    padding: 0.55rem;
    font-size: 0.8rem;
  }
  
  /* Butonları küçült */
  .btn-colorful {
    padding: 0.55rem 1rem;
    font-size: 0.8rem;
  }
}

/* Result card */
.result-card {
  background: white;
  border-radius: 20px;
  padding: 2rem;
  margin-top: 2rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  position: relative;
  overflow: hidden;
}

.result-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #4facfe 0%, #00f2fe 100%);
}

.result-card h5 {
  color: #3182ce;
  margin-top: 1.5rem;
  font-weight: 600;
}

.result-card h4 {
  color: #3182ce;
}

.result-card pre {
  background-color: #f7fafc;
  padding: 1rem;
  border-radius: 10px;
  border-left: 4px solid #4299e1;
  overflow-x: auto;
}

/* ============================================
   DASHBOARD PAGE STYLES
   ============================================ */
.dashboard-container {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  min-height: 100vh !important;
  padding: 2rem 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.dashboard-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.profile-section {
  background: linear-gradient(45deg, #667eea, #764ba2);
  color: white;
  border-radius: 15px;
  padding: 2rem;
  margin-bottom: 2rem;
}

.birth-record-card {
  background: white;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
  border-left: 4px solid #667eea;
}

.birth-record-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

/* Dashboard boş slot - yeni harita ekle kartı */
.birth-record-card.add-new-card {
  min-height: 220px;
  border-left: 4px dashed #667eea;
  color: inherit;
}

.birth-record-card.add-new-card:hover {
  background: rgba(102, 126, 234, 0.05);
  border-left-color: #764ba2;
}

.btn-calculate {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  color: white;
  padding: 8px 20px;
  transition: all 0.3s ease;
}

.btn-calculate:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
  color: white;
}

.btn-logout {
  background: linear-gradient(45deg, #ff6b6b, #ee5a24);
  border: none;
  border-radius: 25px;
  color: white;
  padding: 10px 25px;
  transition: all 0.3s ease;
}

.btn-logout:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(255, 107, 107, 0.4);
  color: white;
}

.record-limit {
  background: linear-gradient(45deg, #ffecd2, #fcb69f);
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.no-records {
  text-align: center;
  color: #6c757d;
  padding: 3rem;
}

/* Dashboard kullanıcı bilgi kartı */
.account-info-card {
  background: #ffffff;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
  border-left: 4px solid #667eea;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
}

.account-info-details {
  flex: 1 1 auto;
  min-width: 0;
}

.account-info-row {
  color: #333;
  margin-bottom: 0.45rem;
  word-break: break-word;
}

.account-info-row:last-child {
  margin-bottom: 0;
}

.account-info-icon {
  color: #667eea;
  width: 18px;
  margin-right: 0.5rem;
  text-align: center;
}

.account-info-label {
  font-weight: 600;
  color: #555;
  margin-right: 0.35rem;
}

.account-info-value {
  color: #222;
}

.account-info-member {
  color: #6c757d;
  font-size: 0.9rem;
}

.account-info-action {
  align-self: flex-end;
  margin-left: auto;
}

@media (max-width: 575.98px) {
  .account-info-card {
    flex-direction: column;
    align-items: stretch;
  }
  .account-info-action {
    margin-left: 0;
    text-align: right;
  }
}

.floating-icon {
  position: absolute;
  color: rgba(255,255,255,0.3);
  animation: float 3s ease-in-out infinite;
}

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

/* ============================================
   EMAIL VERIFICATION PAGE STYLES
   ============================================ */
.verification-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.email-icon {
  font-size: 4rem;
  color: #667eea;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.btn-custom {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.btn-custom:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
}

/* ============================================
   LOGIN PAGE STYLES
   ============================================ */
.login-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.btn-login {
  background: linear-gradient(45deg, #4facfe, #00f2fe);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.3s ease;
}

.btn-login:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(79, 172, 254, 0.4);
}

.password-toggle {
  background: linear-gradient(45deg, #4facfe, #00f2fe);
  border: none;
  border-radius: 20px;
  color: white;
  font-size: 12px;
  padding: 5px 15px;
}

.alert-success {
  background: linear-gradient(45deg, #56ab2f, #a8e6cf);
  border: none;
  border-radius: 10px;
  color: white;
}

/* ============================================
   REGISTER PAGE STYLES
   ============================================ */
.register-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.btn-register {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.3s ease;
}

.btn-register:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
}

/* Kayıt formu anlık doğrulama geri bildirimi */
.register-field-wrapper {
  position: relative;
}
.register-field-feedback {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin-top: 0.25rem;
  min-height: 1.4rem;
}
.register-field-feedback .register-field-icon {
  flex-shrink: 0;
  font-size: 1rem;
  margin-top: 0.1rem;
}
.register-field-feedback .register-field-message {
  font-size: 0.8rem;
  line-height: 1.35;
}
.register-field-feedback.is-invalid .register-field-message {
  color: var(--bs-danger, #dc3545);
}
.register-field-feedback.is-valid .register-field-message {
  color: var(--bs-success, #198754);
}
.register-field-feedback .register-email-forgot {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  opacity: 0.9;
}
.register-field-feedback .register-email-forgot a {
  color: #667eea;
  text-decoration: underline;
}

.star-decoration {
  position: absolute;
  color: rgba(255,255,255,0.3);
  animation: twinkle 2s infinite;
}

@keyframes twinkle {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.8; }
}

/* ============================================
   RESEND VERIFICATION PAGE STYLES
   ============================================ */
.resend-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.btn-resend {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.btn-resend:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
}

/* ============================================
   SHARED GRADIENT & UTILITY STYLES
   ============================================ */
.title-gradient {
  background: linear-gradient(45deg, #667eea, #764ba2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Login sayfası için mavi gradient */
body.login-page .title-gradient {
  background: linear-gradient(45deg, #4facfe, #00f2fe);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Genel form kontrol stilleri */
body:not(.index-body) .form-control {
  border-radius: 10px;
  border: 2px solid #e9ecef;
  padding: 12px 15px;
  transition: all 0.3s ease;
}

body:not(.index-body) .form-control:focus {
  border-color: #667eea;
  box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
}

body.login-page .form-control:focus {
  border-color: #4facfe;
  box-shadow: 0 0 0 0.2rem rgba(79, 172, 254, 0.25);
}

/* ============================================
   VEDIC CHART PAGE RESPONSIVE STYLES
   ============================================ */

/* Büyük ekranlarda haritayı sınırla */
@media (min-width: 992px) {
  .chart-responsive {
    max-width: 600px !important;
  }
}

/* Tablet ve mobilde tüm öğeleri hizala */
@media (max-width: 991px) {
  /* Harita container'ı */
  #chart-container {
    max-width: 100% !important;
    width: 100% !important;
  }
  
  /* Harita sütunu - merkeze hizala */
  .col-lg-8.mb-4 {
    display: flex !important;
    justify-content: center !important;
    padding: 0 15px !important;
  }
  
  /* Kart sütunu - merkeze hizala */
  .col-lg-4.mb-4 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 0 15px !important;
  }
  
  /* Kartları container genişliği ile sınırla */
  .col-lg-4.mb-4 .card {
    width: 100% !important;
    max-width: 100% !important;
  }
  
  /* Chart type seçici kartı da aynı genişlikte */
  .col-md-6 .card {
    max-width: 100% !important;
  }
}

/* ============================================
   SONUC PAGE STYLES (Results Page)
   ============================================ */
.results-container {
    max-width: 1200px;
    margin: 120px auto 60px;
    padding: 0 20px;
}

.section-box {
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    margin-bottom: 30px;
    overflow: hidden;
}

.section-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 20px 30px;
    font-size: 1.4rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 12px;
}

.section-content {
    padding: 30px;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

/* ============================================
   3 SÜTUNLU DÜZEN: Sol Sidebar | Harita | Sağ Sidebar
   Sidebar'lar harita yüksekliğinde, kutular eşit bölünmüş
   ============================================ */

/* Ana row - sidebar'ların harita ile aynı yükseklikte olması için */
.chart-sidebar-row {
    display: flex;
    align-items: stretch;
}

/* Desktop: Sidebar'lar tam yükseklikte görünsün */
@media (min-width: 992px) {
    .chart-sidebar-row {
        min-height: 520px;
    }
    
    .chart-sidebar-row > .col-lg-3 {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .chart-sidebar-row > .col-lg-6 {
        display: flex !important;
        flex-direction: column !important;
    }
}

/* Varsayılan: Siz ve Hayat / index kutular — yükseklik içeriğe göre; dynamic sayfalarda taşma/sıkışma olmasın */
.sidebar-wrapper {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
}

/* Sidebar başlığı */
.sidebar-wrapper > h5 {
    flex-shrink: 0;
    margin-bottom: 0 !important;
    padding-bottom: 8px;
}

/* Varsayılan: kartlar arası boşluk, içerik kadar yükseklik */
.sidebar-boxes {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    min-height: 0;
    height: auto;
}

.sidebar-boxes > a {
    flex: 0 0 auto;
    min-height: 0;
    display: flex;
    margin: 0;
    padding: 0;
    overflow: visible;
    border: none;
}

.sidebar-box {
    flex: 0 0 auto;
    min-height: 0;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    border-radius: 8px;
    margin: 0;
    padding: 10px 12px;
    box-sizing: border-box;
    overflow: visible;
    transition: all 0.25s ease;
    cursor: pointer;
}
.sidebar-box:hover {
    filter: brightness(0.94);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border-left-width: 5px !important;
    transform: translateX(3px);
}

.sidebar-box > div {
    overflow: visible;
    white-space: normal;
    word-wrap: break-word;
    word-break: break-word;
    width: 100%;
    line-height: 1.45;
}

.sidebar-box > div:first-child {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
}

/* Sadece harita 3 sütununda: kutular sütun yüksekliğine bölünsün, taşan kısalsın (vedic / chart_display) */
@media (min-width: 992px) {
    .chart-sidebar-row .sidebar-wrapper {
        height: 100%;
    }
    .chart-sidebar-row .sidebar-boxes {
        flex: 1 1 auto;
        height: 100%;
        gap: 0;
    }
    .chart-sidebar-row .sidebar-boxes > a {
        flex: 1 1 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .chart-sidebar-row .sidebar-box {
        flex: 1 1 auto;
        min-height: 0;
        height: 100%;
        border-radius: 0 !important;
        padding: 6px 10px;
        overflow: hidden;
        justify-content: center;
    }
    .chart-sidebar-row .sidebar-box > div {
        overflow: hidden;
    }
    .chart-sidebar-row .sidebar-box > div:first-child {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* Dynamic detay: üç sütun üst hizalama, orta sütun kısa olsa sol/sağ notlar aşağı doğru büyüsün, alta çakışma azalsın */
@media (min-width: 992px) {
    .dynamic-sidebar-row {
        align-items: flex-start;
    }
}

/* 992px-1199px: sadece harita yan sütunları — font küçült, önizleme gizle */
@media (min-width: 992px) and (max-width: 1199px) {
    .chart-sidebar-row .sidebar-wrapper > h5 {
        font-size: 0.9rem !important;
        padding-bottom: 6px;
    }
    .chart-sidebar-row .sidebar-box {
        padding: 5px 8px;
    }
    .chart-sidebar-row .sidebar-box > div:first-child {
        font-size: 0.75rem !important;
    }
    .chart-sidebar-row .sidebar-box > div:nth-child(2) {
        font-size: 0.65rem !important;
        margin-top: 2px !important;
    }
    .chart-sidebar-row .sidebar-box > div:nth-child(3) {
        font-size: 0.6rem !important;
        margin-top: 1px !important;
    }
    .chart-sidebar-row .sidebar-box > div:nth-child(4) {
        display: none !important;
    }
}

.info-card {
    background: #f8f9fa;
    padding: 15px 20px;
    border-radius: 8px;
    border-left: 4px solid #667eea;
}

.info-label {
    font-size: 0.85rem;
    color: #666;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.info-value {
    font-size: 1.1rem;
    color: #333;
    font-weight: 500;
}

.dasha-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin-top: 20px;
}

.dasha-table thead {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
    color: white;
}

.dasha-table th {
    padding: 15px 20px;
    text-align: left;
    font-weight: 600;
    font-size: 0.95rem;
}

.dasha-table th:first-child {
    border-radius: 8px 0 0 0;
}

.dasha-table th:last-child {
    border-radius: 0 8px 0 0;
}

.dasha-table tbody tr {
    border-bottom: 1px solid #e9ecef;
    transition: background 0.2s;
}

.dasha-table tbody tr:hover {
    background: #f8f9fa;
}

.dasha-table tbody tr.current-dasha {
    background: #fff3cd;
    font-weight: 600;
}

.dasha-table tbody tr.current-dasha td {
    border-left: 4px solid #ffc107;
}

.dasha-table tbody tr.clickable-row {
    cursor: pointer;
    transition: all 0.2s;
}

.dasha-table tbody tr.clickable-row:hover {
    background: #e3f2fd;
    transform: translateX(5px);
}

.dasha-table td {
    padding: 15px 20px;
    color: #495057;
}

.planet-name {
    font-weight: 600;
    color: #667eea;
    font-size: 1.05rem;
}

.duration-badge {
    display: inline-block;
    background: #e7f3ff;
    color: #0066cc;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 500;
}

.placeholder-section {
    background: #f8f9fa;
    padding: 40px;
    text-align: center;
    color: #6c757d;
    border-radius: 8px;
    border: 2px dashed #dee2e6;
}

.placeholder-section i {
    font-size: 3rem;
    margin-bottom: 15px;
    opacity: 0.5;
}

.back-button {
    margin-top: 30px;
    text-align: center;
}

/* Neecha Bhanga Table Styles */
.neecha-bhanga-table {
    margin-top: 30px;
}

.neecha-bhanga-table h2 {
    color: #667eea;
    font-size: 1.5rem;
    margin-bottom: 20px;
    text-align: center;
}

.neecha-bhanga-table .table {
    font-size: 0.9rem;
}

.neecha-bhanga-table .table th {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: white;
    font-weight: 600;
    text-align: center;
    vertical-align: middle;
    font-size: 0.85rem;
}

.neecha-bhanga-table .table td {
    vertical-align: middle;
    text-align: center;
}

.neecha-bhanga-table .table-danger {
    background-color: #ffe6e6 !important;
}

.neecha-bhanga-table .table-warning {
    background-color: #fff8e1 !important;
}

.neecha-bhanga-table ul {
    text-align: left;
    padding-left: 20px;
}

/* Planetary Analysis Table Styles */
.planetary-analysis-table {
    margin-top: 30px;
}

.planetary-analysis-table h2 {
    color: #667eea;
    font-size: 1.5rem;
    margin-bottom: 20px;
    text-align: center;
}

.planetary-analysis-table .table {
    font-size: 0.9rem;
}

.planetary-analysis-table .table th {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    font-weight: 600;
    text-align: center;
    vertical-align: middle;
}

.planetary-analysis-table .table td {
    vertical-align: middle;
    text-align: center;
}

.divisional-analysis-table {
    margin-top: 30px;
}

/* Responsive Styles for Sonuc Page */
@media (max-width: 768px) {
    /* Results container - mobilde tam genişlik */
    .results-container {
        padding: 0 10px;
        margin-left: 0;
        margin-right: 0;
    }
    
    .dasha-table {
        font-size: 0.85rem;
        width: 100% !important;
        table-layout: fixed;
    }
    
    .dasha-table th,
    .dasha-table td {
        padding: 8px 6px;
    }
    
    /* Mobilde Süre sütununu (4. sütun) gizle */
    .dasha-table th:nth-child(4),
    .dasha-table td:nth-child(4) {
        display: none;
    }
    
    /* Kalan 3 sütun için genişlik */
    .dasha-table th:nth-child(1),
    .dasha-table td:nth-child(1) {
        width: 30%;
    }
    .dasha-table th:nth-child(2),
    .dasha-table td:nth-child(2),
    .dasha-table th:nth-child(3),
    .dasha-table td:nth-child(3) {
        width: 35%;
    }
    
    /* Dasha yorum kartları - mobilde tam genişlik */
    .results-container .card {
        margin-left: -5px;
        margin-right: -5px;
        border-radius: 8px !important;
    }
    
    .results-container .card-body {
        padding: 12px !important;
    }
    
    .results-container .card-body .p-4,
    .results-container .card-body > div[style*="padding"] {
        padding: 10px !important;
        margin: 0 -5px;
    }
    
    .results-container .card-header {
        padding: 12px !important;
    }
    
    .results-container .card-header h4,
    .results-container .card-header h5 {
        font-size: 1rem !important;
        line-height: 1.4;
    }
    
    .results-container .card-body p {
        font-size: 0.95rem !important;
        line-height: 1.7 !important;
        text-align: left !important;
    }
    
    /* Section box - mobilde tam genişlik */
    .section-box {
        margin-left: -10px;
        margin-right: -10px;
        border-radius: 0 !important;
    }
    
    .section-content {
        padding: 12px !important;
    }
    
    /* Antardasha tablosu (Bootstrap table) - Durum sütununu gizle */
    .results-container .table-responsive .table th:nth-child(4),
    .results-container .table-responsive .table td:nth-child(4) {
        display: none;
    }
    
    .results-container .table-responsive .table {
        width: 100% !important;
        table-layout: fixed;
    }
    
    .results-container .table-responsive .table th,
    .results-container .table-responsive .table td {
        padding: 8px 6px;
        font-size: 0.85rem;
    }
    
    /* Kalan 3 sütun eşit genişlik */
    .results-container .table-responsive .table th:nth-child(1),
    .results-container .table-responsive .table td:nth-child(1) {
        width: 28%;
    }
    .results-container .table-responsive .table th:nth-child(2),
    .results-container .table-responsive .table td:nth-child(2),
    .results-container .table-responsive .table th:nth-child(3),
    .results-container .table-responsive .table td:nth-child(3) {
        width: 36%;
    }
    
    /* Mobilde yatay taşmayı önle - sayfalar üst üste binmesin */
    .menu-page-container {
        overflow-x: hidden;
    }
    
    /* Transit ve diğer sayfalar - mobilde container tam genişlik */
    .menu-page-container .container {
        max-width: 100% !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    
    /* Transit sayfası - mobilde kartları genişlet */
    .menu-page-container .card {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 8px !important;
    }
    
    .menu-page-container .card-body {
        padding: 12px !important;
    }
    
    .menu-page-container .card-header {
        padding: 12px !important;
    }
    
    .menu-page-container .card-header h5 {
        font-size: 0.95rem !important;
    }
    
    .menu-page-container .card-body p,
    .menu-page-container .card-body li {
        font-size: 0.92rem !important;
        line-height: 1.65 !important;
        text-align: left !important;
    }
    
    .menu-page-container .card-body p[style*="padding: 12px"],
    .menu-page-container .card-body p[style*="padding:12px"] {
        padding: 10px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    .menu-page-container .card-body h6 {
        font-size: 0.9rem !important;
    }
    
    .menu-page-container .card-body ul {
        padding-left: 18px !important;
        margin-left: 0 !important;
    }
    
    .mobile-full-width .card-body ul {
        padding-left: 20px !important;
        margin-left: 0 !important;
    }
    
    /* Panchang sayfası - mobilde kartları genişlet */
    .panchang-card {
        margin-left: -10px !important;
        margin-right: -10px !important;
        border-radius: 8px !important;
    }
    
    .panchang-card-header {
        padding: 12px 15px !important;
    }
    
    .panchang-card-header h4 {
        font-size: 1rem !important;
    }
    
    .panchang-card-header p {
        font-size: 0.85rem !important;
    }
    
    .panchang-card-body {
        padding: 12px !important;
    }
    
    .panchang-card-body .p-4 {
        padding: 10px !important;
    }
    
    .panchang-card-body p {
        font-size: 0.9rem !important;
        line-height: 1.6 !important;
        text-align: left !important;
    }
    
    .section-header {
        font-size: 1.1rem;
        padding: 15px 20px;
    }
    
    .planetary-analysis-table .table {
        font-size: 0.75rem;
    }
    
    .planetary-analysis-table h2 {
        font-size: 1.2rem;
    }
    
    .neecha-bhanga-table .table {
        font-size: 0.75rem;
    }
    
    .neecha-bhanga-table h2 {
        font-size: 1.2rem;
    }
    
    .neecha-bhanga-table .table th {
        font-size: 0.7rem;
        padding: 8px 4px;
    }
    
    .neecha-bhanga-table .table td {
        padding: 8px 4px;
    }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qy9EO1FBQ0ksMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7SUFDakM7O0lBRUEsZ0RBQWdEO0lBQ2hEO1FBQ0kseUJBQXlCO1FBQ3pCLDBCQUEwQjtRQUMxQiw2QkFBNkI7SUFDakM7O0lBRUE7UUFDSSx3QkFBd0I7SUFDNUI7O0lBRUE7UUFDSSx3QkFBd0I7SUFDNUI7O0lBRUE7UUFDSSw2QkFBNkI7SUFDakM7O0lBRUE7O1FBRUksNkJBQTZCO1FBQzdCLDRCQUE0QjtRQUM1QiwyQkFBMkI7SUFDL0I7O0lBRUE7O1FBRUksd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6QiwwQkFBMEI7SUFDOUI7O0lBRUE7UUFDSSw0QkFBNEI7SUFDaEM7O0lBRUE7UUFDSSw2QkFBNkI7UUFDN0IseUJBQXlCO0lBQzdCOztJQUVBO1FBQ0ksNkJBQTZCO1FBQzdCLHlCQUF5QjtJQUM3Qjs7SUFFQSxpREFBaUQ7SUFDakQ7UUFDSSw2QkFBNkI7UUFDN0IsOEJBQThCO1FBQzlCLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLDBCQUEwQjtJQUM5Qjs7SUFFQTtRQUNJLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLHdCQUF3QjtJQUM1Qjs7SUFFQTtRQUNJLHdCQUF3QjtJQUM1Qjs7SUFFQTtRQUNJLDRCQUE0QjtRQUM1QiwyQkFBMkI7UUFDM0IsMkJBQTJCO0lBQy9COztJQUVBO1FBQ0ksaUJBQWlCO1FBQ2pCLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLGlCQUFpQjtRQUNqQixnQkFBZ0I7SUFDcEI7O0lBRUE7UUFDSSxnQkFBZ0I7SUFDcEI7QUFDSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJvbnRlbmQvLi9zcmMvc3R5bGUuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIEdlbmVsIHN0aWxsZXIgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbn1cblxuLyogSW5kZXggc2F5ZmFzxLEgw7Z6ZWwgYm9keSBzdGlsaSAqL1xuLmluZGV4LWJvZHkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjVmN2ZhIDAlLCAjYzNjZmUyIDEwMCUpO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLyogTmF2YmFyIHN0aWxsZXJpIC0gc3RpY2t5IGlsZSBpw6dlcmlrIGRva8O8bWFuIGFrxLHFn8SxbmRhIGthbMSxciwgb3ZlcmxheSBvbG1heiAqL1xuLm5hdmJhciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjlhOWUgMCUsICNmYWQwYzQgMTAwJSk7XG4gIHBhZGRpbmc6IDE1cHggMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgcG9zaXRpb246IHN0aWNreSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8qIFJlc3BvbnNpdmUgZ8O2csO8bsO8bSBrb250cm9sbGVyaSAqL1xuLmRlc2t0b3AtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50YWJsZXQtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tb2JpbGUtdmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qIELDvHnDvGsgKDEyMDBweCB2ZSDDvHplcmkpICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kZXNrdG9wLXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLnRhYmxldC12aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2JpbGUtdmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiBPcnRhICg3NjhweCAtIDExOTlweCkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuZGVza3RvcC12aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50YWJsZXQtdmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAubW9iaWxlLXZpZXcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyogS8O8w6fDvGsgKDc2N3B4IHZlIGFsdMSxKSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICB9XG4gIC5kZXNrdG9wLXZpZXcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnRhYmxldC12aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2JpbGUtdmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4ubG9nbyAubG9nby10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBBYm91dC9Db250YWN0IHZlIGt1bGxhbsSxY8SxIGFkxLEgKyDDp8Sxa8SxxZ8gYXJhc8SxbmRhIHR1dGFybMSxIGJvxZ9sdWsgKMOnb2sgZGlsbGkgbmF2YmFyKSAqL1xuLm5hdi1saW5rcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGNvbHVtbi1nYXA6IDEuMTVyZW07XG4gIHJvdy1nYXA6IDAuMjVyZW07XG59XG5cbi5uYXYtbGlua3MgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNXB4IDA7XG59XG5cbi5uYXYtbGlua3MgYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XG59XG5cbi5uYXYtbGlua3MgYTpob3Zlcjo6YWZ0ZXIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogTmF2YmFyOiBBYm91dCB8IENvbnRhY3QgdmUga3VsbGFuxLFjxLEgfCDDh8Sxa8SxxZ8g4oCUIMOnb2sgZGlsbGkgc2F0xLFybGFyZGEgYml0acWfaWsgb2t1bWEgKMO2ci4gSEkpIMO2bmxlbmlyICovXG4ubmF2LWlubGluZS1zZXAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAwLjJyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLm5hdi1pbmxpbmUtc2VwLS1hdXRoIHtcbiAgb3BhY2l0eTogMC45NTtcbn1cblxuLmF1dGgtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC41cmVtIDEycHg7XG59XG5cbi5hdXRoLWJ1dHRvbnMgYSxcbi5hdXRoLWJ1dHRvbnMgYnV0dG9uLnJlZ2lzdGVyLWJ0biB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmxvZ2luLWJ0biB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4ubG9naW4tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xufVxuXG4ucmVnaXN0ZXItYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjZmY2YjZiO1xufVxuXG4ucmVnaXN0ZXItYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwwLDAsMC4xKTtcbn1cblxuLyogSGFtYnVyZ2VyIGRyb3Bkb3duICovXG4uaGFtYnVyZ2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5oYW1idXJnZXIgaSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGFtYnVyZ2VyIGkge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB3aWR0aDogNDJweDtcbiAgICBoZWlnaHQ6IDQycHg7XG4gIH1cbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MHB4O1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLXdpZHRoOiAyNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsMCwwLDAuMTUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudS5zaG93IHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xufVxuXG4vKiBNb2JpbGRlIGhhbWJ1cmdlciBkcm9wZG93biBzYXlmYWRhbiB0YcWfbWFzxLFuIC0gbWF4LWhlaWdodCArIHNjcm9sbCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oYW1idXJnZXIgLmRyb3Bkb3duLW1lbnUge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjBweCk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgY29sb3I6ICNmZjZiNmI7XG59XG5cbi8qIE1vYmlsIEF1dGggQnV0b25sYXLEsSAqL1xuLm1vYmlsZS1hdXRoLWxpbmtzIHtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWVjZWY7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5tb2JpbGUtYXV0aC1idG4ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDEwcHggMTVweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAyNXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzY2N2VlYSwgIzc2NGJhMikgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjMpICFpbXBvcnRhbnQ7XG59XG5cbi5tb2JpbGUtYXV0aC1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuNCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubW9iaWxlLWF1dGgtYnRuIGkge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLyogRGlsIHNlw6dpbWkgKi9cbi5sYW5ndWFnZS1zZWxlY3RvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xufVxuXG4ubGFuZ3VhZ2Utc2VsZWN0b3IgaSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubGFuZ3VhZ2UtY29kZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogMzZweDtcbn1cblxuLmxhbmd1YWdlLXNlbGVjdG9yIC5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwcHg7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsMCwwLDAuMTUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLmxhbmd1YWdlLXNlbGVjdG9yIC5kcm9wZG93bi1tZW51LnNob3cge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG59XG5cbi5sYW5ndWFnZS1zZWxlY3RvciAuZHJvcGRvd24tbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubGFuZ3VhZ2Utc2VsZWN0b3IgLmRyb3Bkb3duLW1lbnUgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIGNvbG9yOiAjZmY2YjZiO1xufVxuXG4ubGFuZ3VhZ2Utc2VsZWN0b3IgLmRyb3Bkb3duLW1lbnUgYS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2YjZiO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5sYW5ndWFnZS1mbGFnIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi8qIEluZGV4IHNheWZhc8SxIMO2emVsIHN0aWxsZXIgKi9cbi5jb2xvcmZ1bC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgcGFkZGluZzogMi41cmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5jb2xvcmZ1bC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xufVxuXG4uY29sb3JmdWwtY2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmOWE5ZSAwJSwgI2ZhZDBjNCAxMDAlKTtcbn1cblxuLmZsb2F0aW5nLWVsZW1lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMC4xO1xuICB6LWluZGV4OiAwO1xufVxuXG4uZmxvYXRpbmctMSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOWE5ZTtcbiAgdG9wOiAtNTBweDtcbiAgcmlnaHQ6IC01MHB4O1xuICBhbmltYXRpb246IGZsb2F0IDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4uZmxvYXRpbmctMiB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmYWNmZTtcbiAgYm90dG9tOiAtNzVweDtcbiAgbGVmdDogLTc1cHg7XG4gIGFuaW1hdGlvbjogZmxvYXQgOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZmxvYXQge1xuICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9XG59XG5cbi8qIEZvcm0gc3RpbGxlcmkgKi9cbi5mb3JtLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICM0YTU1Njg7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmZvcm0tc2VsZWN0LCAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG5cbi5mb3JtLXNlbGVjdDpmb2N1cywgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzQyOTllMTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNjYsIDE1MywgMjI1LCAwLjI1KTtcbn1cblxuLmJ0bi1jb2xvcmZ1bCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjlhOWUgMCUsICNmYWQwYzQgMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMjU1LCAxNTQsIDE1OCwgMC4zKTtcbn1cblxuLmJ0bi1jb2xvcmZ1bDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgYm94LXNoYWRvdzogMCA3cHggMjBweCByZ2JhKDI1NSwgMTU0LCAxNTgsIDAuNCk7XG59XG5cbi8qIEdlbmVsIGNvbnRhaW5lciAqL1xuLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuXG4vKiBOYXZiYXIgYXJ0xLFrIHBvc2l0aW9uOiBzdGlja3kgb2xkdcSfdSBpw6dpbiBib2R5IHBhZGRpbmctdG9wIEdFUkVLTUVaLlxuICAgU3RpY2t5IG5hdmJhciBkb2vDvG1hbiBha8SxxZ/EsW5kYSBrYWzEsXIsIGnDp2VyaWsgb3RvbWF0aWsgYWx0xLFuZGEgYmHFn2xhci4gKi9cblxuLyogRm9ybSBncnVwbGFyxLEgKi9cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ09NUEFDVCBTSURFQkFSIFNUWUxFUyAoT3J0YS9Lw7zDp8O8ayBFa3JhbmxhcilcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY29tcGFjdC1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jb21wYWN0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjA4KTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjNmY0MmMxO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY29tcGFjdC10aXRsZSB7XG4gIGNvbG9yOiAjNmY0MmMxO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvbXBhY3QtaXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC41cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNvbXBhY3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogIzQ5NTA1NztcbiAgcGFkZGluZzogMC4zcmVtIDAuNTVyZW07XG4gIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDgpO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29tcGFjdC1pdGVtOmFjdGl2ZSxcbi5jb21wYWN0LWl0ZW06aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpO1xuICBib3gtc2hhZG93OiAwIDFweCA2cHggcmdiYSgwLDAsMCwwLjEzKTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTMpO1xufVxuXG4uY29tcGFjdC1pdGVtIGkge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5jb21wYWN0LWl0ZW0gLmNvbXBhY3QtY2hldnJvbiB7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMzVyZW07XG4gIG9wYWNpdHk6IDAuNztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4uY29tcGFjdC1pdGVtOmFjdGl2ZSAuY29tcGFjdC1jaGV2cm9uLFxuLmNvbXBhY3QtaXRlbTpob3ZlciAuY29tcGFjdC1jaGV2cm9uIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNvbXBhY3QtdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8qIE9ydGEgZWtyYW5sYXIgacOnaW4gKDc2OHB4IC0gOTkxcHgpICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuY29tcGFjdC1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIFxuICAuY29tcGFjdC1jYXJkIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtaXRlbSB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIHBhZGRpbmc6IDAuMzVyZW0gMC42NXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB9XG4gIFxuICAvKiBGb3JtIGthcnTEsW7EsSBrw7zDp8O8bHQgKi9cbiAgLmNvbG9yZnVsLWNhcmQge1xuICAgIHBhZGRpbmc6IDJyZW0gMi4yNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIH1cbiAgXG4gIC8qIENvbnRhaW5lciBwYWRkaW5nJ2kgYXphbHQgKi9cbiAgLmNvbnRhaW5lci1mbHVpZC5weC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAvKiBGb3JtIGJhxZ9sxLFrbGFyxLFuxLEga8O8w6fDvGx0ICovXG4gIC5jb2xvcmZ1bC1jYXJkIGgyIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuICBcbiAgLmNvbG9yZnVsLWNhcmQgcCB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuICBcbiAgLyogRm9ybSBncnVwbGFyxLFuxLEga8O8w6fDvGx0ICovXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjg1cmVtO1xuICB9XG4gIFxuICAuZm9ybS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xuICB9XG4gIFxuICAuZm9ybS1zZWxlY3QsIC5mb3JtLWNvbnRyb2wge1xuICAgIHBhZGRpbmc6IDAuNjVyZW07XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbiAgXG4gIC8qIEJ1dG9ubGFyxLEga8O8w6fDvGx0ICovXG4gIC5idG4tY29sb3JmdWwge1xuICAgIHBhZGRpbmc6IDAuNjVyZW0gMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG59XG5cbi8qIEvDvMOnw7xrIGVrcmFubGFyIGnDp2luICg1NzZweCAtIDc2N3B4KSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNvbXBhY3Qtc2lkZWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICBcbiAgLmNvbXBhY3QtY2FyZCB7XG4gICAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICB9XG4gIFxuICAuY29tcGFjdC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbiAgXG4gIC5jb21wYWN0LWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIH1cbiAgXG4gIC8qIEZvcm0ga2FydMSxbsSxIGRhaGEgZGEga8O8w6fDvGx0ICovXG4gIC5jb2xvcmZ1bC1jYXJkIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMS43NXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG4gIFxuICAvKiBDb250YWluZXIgcGFkZGluZydpIGRhaGEgZGEgYXphbHQgKi9cbiAgLmNvbnRhaW5lci1mbHVpZC5weC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIEZvcm0gYmHFn2zEsWtsYXLEsW7EsSBrw7zDp8O8bHQgKi9cbiAgLmNvbG9yZnVsLWNhcmQgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIH1cbiAgXG4gIC5jb2xvcmZ1bC1jYXJkIHAge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICB9XG4gIFxuICAvKiBGb3JtIGdydXBsYXLEsW7EsSBrw7zDp8O8bHQgKi9cbiAgLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIH1cbiAgXG4gIC5mb3JtLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zNXJlbTtcbiAgfVxuICBcbiAgLmZvcm0tc2VsZWN0LCAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nOiAwLjZyZW07XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB9XG4gIFxuICAvKiBCdXRvbmxhcsSxIGvDvMOnw7xsdCAqL1xuICAuYnRuLWNvbG9yZnVsIHtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMS4yNXJlbTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gIH1cbn1cblxuLyogw4dvayBrw7zDp8O8ayBla3JhbmxhciBpw6dpbiAobWF4LXdpZHRoOiA1NzVweCkgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuY29tcGFjdC1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAuY29tcGFjdC1jYXJkIHtcbiAgICBwYWRkaW5nOiAwLjg1cmVtIDFyZW07XG4gIH1cbiAgXG4gIC5jb21wYWN0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xuICB9XG4gIFxuICAuY29tcGFjdC1pdGVtcyB7XG4gICAgZ2FwOiAwLjRyZW07XG4gIH1cbiAgXG4gIC5jb21wYWN0LWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC40cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIH1cbiAgXG4gIC5jb21wYWN0LWl0ZW0gaSB7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gIH1cbiAgXG4gIC8qIEZvcm0ga2FydMSxbsSxIGVuIGvDvMOnw7xrIGJveXV0ICovXG4gIC5jb2xvcmZ1bC1jYXJkIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICB9XG4gIFxuICAvKiBDb250YWluZXIgcGFkZGluZydpIG1pbmltdW0gKi9cbiAgLmNvbnRhaW5lci1mbHVpZC5weC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIEZvcm0gYmHFn2zEsWtsYXLEsW7EsSBrw7zDp8O8bHQgKi9cbiAgLmNvbG9yZnVsLWNhcmQgaDIge1xuICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG4gIH1cbiAgXG4gIC5jb2xvcmZ1bC1jYXJkIHAge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbiAgXG4gIC8qIEZvcm0gZ3J1cGxhcsSxbsSxIGvDvMOnw7xsdCAqL1xuICAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42NXJlbTtcbiAgfVxuICBcbiAgLmZvcm0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgfVxuICBcbiAgLmZvcm0tc2VsZWN0LCAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nOiAwLjU1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICB9XG4gIFxuICAvKiBCdXRvbmxhcsSxIGvDvMOnw7xsdCAqL1xuICAuYnRuLWNvbG9yZnVsIHtcbiAgICBwYWRkaW5nOiAwLjU1cmVtIDFyZW07XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gIH1cbn1cblxuLyogUmVzdWx0IGNhcmQgKi9cbi5yZXN1bHQtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBwYWRkaW5nOiAycmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsMCwwLDAuMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJlc3VsdC1jYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNGZhY2ZlIDAlLCAjMDBmMmZlIDEwMCUpO1xufVxuXG4ucmVzdWx0LWNhcmQgaDUge1xuICBjb2xvcjogIzMxODJjZTtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucmVzdWx0LWNhcmQgaDQge1xuICBjb2xvcjogIzMxODJjZTtcbn1cblxuLnJlc3VsdC1jYXJkIHByZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2ZhZmM7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzQyOTllMTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERBU0hCT0FSRCBQQUdFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5kYXNoYm9hcmQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzY2N2VlYSAwJSwgIzc2NGJhMiAxMDAlKSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycmVtIDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4uZGFzaGJvYXJkLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4ucHJvZmlsZS1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNjY3ZWVhLCAjNzY0YmEyKTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBwYWRkaW5nOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uYmlydGgtcmVjb3JkLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsMCwwLDAuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzY2N2VlYTtcbn1cblxuLmJpcnRoLXJlY29yZC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsMCwwLDAuMTUpO1xufVxuXG4vKiBEYXNoYm9hcmQgYm/FnyBzbG90IC0geWVuaSBoYXJpdGEgZWtsZSBrYXJ0xLEgKi9cbi5iaXJ0aC1yZWNvcmQtY2FyZC5hZGQtbmV3LWNhcmQge1xuICBtaW4taGVpZ2h0OiAyMjBweDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBkYXNoZWQgIzY2N2VlYTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5iaXJ0aC1yZWNvcmQtY2FyZC5hZGQtbmV3LWNhcmQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuMDUpO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzc2NGJhMjtcbn1cblxuLmJ0bi1jYWxjdWxhdGUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM2NjdlZWEsICM3NjRiYTIpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogOHB4IDIwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tY2FsY3VsYXRlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMTAyLCAxMjYsIDIzNCwgMC40KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYnRuLWxvZ291dCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgI2ZmNmI2YiwgI2VlNWEyNCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tbG9nb3V0OmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMjU1LCAxMDcsIDEwNywgMC40KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ucmVjb3JkLWxpbWl0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmZlY2QyLCAjZmNiNjlmKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLm5vLXJlY29yZHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBwYWRkaW5nOiAzcmVtO1xufVxuXG4vKiBEYXNoYm9hcmQga3VsbGFuxLFjxLEgYmlsZ2kga2FydMSxICovXG4uYWNjb3VudC1pbmZvLWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwwLDAsMC4wOCk7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzY2N2VlYTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uYWNjb3VudC1pbmZvLWRldGFpbHMge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uYWNjb3VudC1pbmZvLXJvdyB7XG4gIGNvbG9yOiAjMzMzO1xuICBtYXJnaW4tYm90dG9tOiAwLjQ1cmVtO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uYWNjb3VudC1pbmZvLXJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFjY291bnQtaW5mby1pY29uIHtcbiAgY29sb3I6ICM2NjdlZWE7XG4gIHdpZHRoOiAxOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYWNjb3VudC1pbmZvLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICM1NTU7XG4gIG1hcmdpbi1yaWdodDogMC4zNXJlbTtcbn1cblxuLmFjY291bnQtaW5mby12YWx1ZSB7XG4gIGNvbG9yOiAjMjIyO1xufVxuXG4uYWNjb3VudC1pbmZvLW1lbWJlciB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLmFjY291bnQtaW5mby1hY3Rpb24ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAuYWNjb3VudC1pbmZvLWNhcmQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgLmFjY291bnQtaW5mby1hY3Rpb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5mbG9hdGluZy1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xuICBhbmltYXRpb246IGZsb2F0IDNzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGZsb2F0IHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFTUFJTCBWRVJJRklDQVRJT04gUEFHRSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udmVyaWZpY2F0aW9uLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4uZW1haWwtaWNvbiB7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbiAgY29sb3I6ICM2NjdlZWE7XG4gIGFuaW1hdGlvbjogcHVsc2UgMnMgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG59XG5cbi5idG4tY3VzdG9tIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNjY3ZWVhLCAjNzY0YmEyKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiAxMnB4IDMwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tY3VzdG9tOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuNCk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMT0dJTiBQQUdFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sb2dpbi1jYXJkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsMCwwLDAuMSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbn1cblxuLmJ0bi1sb2dpbiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzRmYWNmZSwgIzAwZjJmZSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogMTJweCAzMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uYnRuLWxvZ2luOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDc5LCAxNzIsIDI1NCwgMC40KTtcbn1cblxuLnBhc3N3b3JkLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzRmYWNmZSwgIzAwZjJmZSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDVweCAxNXB4O1xufVxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzU2YWIyZiwgI2E4ZTZjZik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUkVHSVNURVIgUEFHRSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmVnaXN0ZXItY2FyZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLDAsMCwwLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG59XG5cbi5idG4tcmVnaXN0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM2NjdlZWEsICM3NjRiYTIpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIHBhZGRpbmc6IDEycHggMzBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmJ0bi1yZWdpc3Rlcjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjQpO1xufVxuXG4vKiBLYXnEsXQgZm9ybXUgYW5sxLFrIGRvxJ9ydWxhbWEgZ2VyaSBiaWxkaXJpbWkgKi9cbi5yZWdpc3Rlci1maWVsZC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnJlZ2lzdGVyLWZpZWxkLWZlZWRiYWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgbWluLWhlaWdodDogMS40cmVtO1xufVxuLnJlZ2lzdGVyLWZpZWxkLWZlZWRiYWNrIC5yZWdpc3Rlci1maWVsZC1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLXRvcDogMC4xcmVtO1xufVxuLnJlZ2lzdGVyLWZpZWxkLWZlZWRiYWNrIC5yZWdpc3Rlci1maWVsZC1tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuLnJlZ2lzdGVyLWZpZWxkLWZlZWRiYWNrLmlzLWludmFsaWQgLnJlZ2lzdGVyLWZpZWxkLW1lc3NhZ2Uge1xuICBjb2xvcjogdmFyKC0tYnMtZGFuZ2VyLCAjZGMzNTQ1KTtcbn1cbi5yZWdpc3Rlci1maWVsZC1mZWVkYmFjay5pcy12YWxpZCAucmVnaXN0ZXItZmllbGQtbWVzc2FnZSB7XG4gIGNvbG9yOiB2YXIoLS1icy1zdWNjZXNzLCAjMTk4NzU0KTtcbn1cbi5yZWdpc3Rlci1maWVsZC1mZWVkYmFjayAucmVnaXN0ZXItZW1haWwtZm9yZ290IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBvcGFjaXR5OiAwLjk7XG59XG4ucmVnaXN0ZXItZmllbGQtZmVlZGJhY2sgLnJlZ2lzdGVyLWVtYWlsLWZvcmdvdCBhIHtcbiAgY29sb3I6ICM2NjdlZWE7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uc3Rhci1kZWNvcmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xuICBhbmltYXRpb246IHR3aW5rbGUgMnMgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdHdpbmtsZSB7XG4gIDAlLCAxMDAlIHsgb3BhY2l0eTogMC4zOyB9XG4gIDUwJSB7IG9wYWNpdHk6IDAuODsgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUkVTRU5EIFZFUklGSUNBVElPTiBQQUdFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5yZXNlbmQtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLDAsMCwwLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG59XG5cbi5idG4tcmVzZW5kIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNjY3ZWVhLCAjNzY0YmEyKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiAxMnB4IDMwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tcmVzZW5kOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuNCk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTSEFSRUQgR1JBRElFTlQgJiBVVElMSVRZIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi50aXRsZS1ncmFkaWVudCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzY2N2VlYSwgIzc2NGJhMik7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbn1cblxuLyogTG9naW4gc2F5ZmFzxLEgacOnaW4gbWF2aSBncmFkaWVudCAqL1xuYm9keS5sb2dpbi1wYWdlIC50aXRsZS1ncmFkaWVudCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzRmYWNmZSwgIzAwZjJmZSk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbn1cblxuLyogR2VuZWwgZm9ybSBrb250cm9sIHN0aWxsZXJpICovXG5ib2R5Om5vdCguaW5kZXgtYm9keSkgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlOWVjZWY7XG4gIHBhZGRpbmc6IDEycHggMTVweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuYm9keTpub3QoLmluZGV4LWJvZHkpIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NjdlZWE7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuMjUpO1xufVxuXG5ib2R5LmxvZ2luLXBhZ2UgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzRmYWNmZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNzksIDE3MiwgMjU0LCAwLjI1KTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFZFRElDIENIQVJUIFBBR0UgUkVTUE9OU0lWRSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIELDvHnDvGsgZWtyYW5sYXJkYSBoYXJpdGF5xLEgc8SxbsSxcmxhICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNoYXJ0LXJlc3BvbnNpdmUge1xuICAgIG1heC13aWR0aDogNjAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBUYWJsZXQgdmUgbW9iaWxkZSB0w7xtIMO2xJ9lbGVyaSBoaXphbGEgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAvKiBIYXJpdGEgY29udGFpbmVyJ8SxICovXG4gICNjaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIEhhcml0YSBzw7x0dW51IC0gbWVya2V6ZSBoaXphbGEgKi9cbiAgLmNvbC1sZy04Lm1iLTQge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgMTVweCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAvKiBLYXJ0IHPDvHR1bnUgLSBtZXJrZXplIGhpemFsYSAqL1xuICAuY29sLWxnLTQubWItNCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAxNXB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIEthcnRsYXLEsSBjb250YWluZXIgZ2VuacWfbGnEn2kgaWxlIHPEsW7EsXJsYSAqL1xuICAuY29sLWxnLTQubWItNCAuY2FyZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLyogQ2hhcnQgdHlwZSBzZcOnaWNpIGthcnTEsSBkYSBheW7EsSBnZW5pxZ9saWt0ZSAqL1xuICAuY29sLW1kLTYgLmNhcmQge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTT05VQyBQQUdFIFNUWUxFUyAoUmVzdWx0cyBQYWdlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5yZXN1bHRzLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiAxMjBweCBhdXRvIDYwcHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xufVxuXG4uc2VjdGlvbi1ib3gge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2VjdGlvbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2NjdlZWEgMCUsICM3NjRiYTIgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDMwcHg7XG59XG5cbi5pbmZvLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAzIFPDnFRVTkxVIETDnFpFTjogU29sIFNpZGViYXIgfCBIYXJpdGEgfCBTYcSfIFNpZGViYXJcbiAgIFNpZGViYXInbGFyIGhhcml0YSB5w7xrc2VrbGnEn2luZGUsIGt1dHVsYXIgZcWfaXQgYsO2bMO8bm3DvMWfXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBBbmEgcm93IC0gc2lkZWJhcidsYXLEsW4gaGFyaXRhIGlsZSBheW7EsSB5w7xrc2VrbGlrdGUgb2xtYXPEsSBpw6dpbiAqL1xuLmNoYXJ0LXNpZGViYXItcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4vKiBEZXNrdG9wOiBTaWRlYmFyJ2xhciB0YW0gecO8a3Nla2xpa3RlIGfDtnLDvG5zw7xuICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuY2hhcnQtc2lkZWJhci1yb3cge1xuICAgICAgICBtaW4taGVpZ2h0OiA1MjBweDtcbiAgICB9XG4gICAgXG4gICAgLmNoYXJ0LXNpZGViYXItcm93ID4gLmNvbC1sZy0zIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5jaGFydC1zaWRlYmFyLXJvdyA+IC5jb2wtbGctNiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogVmFyc2F5xLFsYW46IFNpeiB2ZSBIYXlhdCAvIGluZGV4IGt1dHVsYXIg4oCUIHnDvGtzZWtsaWsgacOnZXJpxJ9lIGfDtnJlOyBkeW5hbWljIHNheWZhbGFyZGEgdGHFn21hL3PEsWvEscWfbWEgb2xtYXPEsW4gKi9cbi5zaWRlYmFyLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLyogU2lkZWJhciBiYcWfbMSxxJ/EsSAqL1xuLnNpZGViYXItd3JhcHBlciA+IGg1IHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLyogVmFyc2F5xLFsYW46IGthcnRsYXIgYXJhc8SxIGJvxZ9sdWssIGnDp2VyaWsga2FkYXIgecO8a3Nla2xpayAqL1xuLnNpZGViYXItYm94ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLnNpZGViYXItYm94ZXMgPiBhIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4uc2lkZWJhci1ib3gge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2lkZWJhci1ib3g6aG92ZXIge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk0KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjEpO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KTtcbn1cblxuLnNpZGViYXItYm94ID4gZGl2IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4uc2lkZWJhci1ib3ggPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdGV4dC1vdmVyZmxvdzogdW5zZXQ7XG59XG5cbi8qIFNhZGVjZSBoYXJpdGEgMyBzw7x0dW51bmRhOiBrdXR1bGFyIHPDvHR1biB5w7xrc2VrbGnEn2luZSBiw7Zsw7xuc8O8biwgdGHFn2FuIGvEsXNhbHPEsW4gKHZlZGljIC8gY2hhcnRfZGlzcGxheSkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5jaGFydC1zaWRlYmFyLXJvdyAuc2lkZWJhci13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAuY2hhcnQtc2lkZWJhci1yb3cgLnNpZGViYXItYm94ZXMge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBnYXA6IDA7XG4gICAgfVxuICAgIC5jaGFydC1zaWRlYmFyLXJvdyAuc2lkZWJhci1ib3hlcyA+IGEge1xuICAgICAgICBmbGV4OiAxIDEgMCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNoYXJ0LXNpZGViYXItcm93IC5zaWRlYmFyLWJveCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAuY2hhcnQtc2lkZWJhci1yb3cgLnNpZGViYXItYm94ID4gZGl2IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLmNoYXJ0LXNpZGViYXItcm93IC5zaWRlYmFyLWJveCA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbn1cblxuLyogRHluYW1pYyBkZXRheTogw7zDpyBzw7x0dW4gw7xzdCBoaXphbGFtYSwgb3J0YSBzw7x0dW4ga8Sxc2Egb2xzYSBzb2wvc2HEnyBub3RsYXIgYcWfYcSfxLEgZG/En3J1IGLDvHnDvHPDvG4sIGFsdGEgw6dha8SxxZ9tYSBhemFsc8SxbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLmR5bmFtaWMtc2lkZWJhci1yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG59XG5cbi8qIDk5MnB4LTExOTlweDogc2FkZWNlIGhhcml0YSB5YW4gc8O8dHVubGFyxLEg4oCUIGZvbnQga8O8w6fDvGx0LCDDtm5pemxlbWUgZ2l6bGUgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5jaGFydC1zaWRlYmFyLXJvdyAuc2lkZWJhci13cmFwcGVyID4gaDUge1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgIH1cbiAgICAuY2hhcnQtc2lkZWJhci1yb3cgLnNpZGViYXItYm94IHtcbiAgICAgICAgcGFkZGluZzogNXB4IDhweDtcbiAgICB9XG4gICAgLmNoYXJ0LXNpZGViYXItcm93IC5zaWRlYmFyLWJveCA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuY2hhcnQtc2lkZWJhci1yb3cgLnNpZGViYXItYm94ID4gZGl2Om50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNoYXJ0LXNpZGViYXItcm93IC5zaWRlYmFyLWJveCA+IGRpdjpudGgtY2hpbGQoMykge1xuICAgICAgICBmb250LXNpemU6IDAuNnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNoYXJ0LXNpZGViYXItcm93IC5zaWRlYmFyLWJveCA+IGRpdjpudGgtY2hpbGQoNCkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uaW5mby1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjNjY3ZWVhO1xufVxuXG4uaW5mby1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uaW5mby12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmRhc2hhLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5kYXNoYS10YWJsZSB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRmYWNmZSAwJSwgIzAwZjJmZSAxMDAlKTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5kYXNoYS10YWJsZSB0aCB7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG5cbi5kYXNoYS10YWJsZSB0aDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDAgMCAwO1xufVxuXG4uZGFzaGEtdGFibGUgdGg6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCA4cHggMCAwO1xufVxuXG4uZGFzaGEtdGFibGUgdGJvZHkgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTllY2VmO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbn1cblxuLmRhc2hhLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xufVxuXG4uZGFzaGEtdGFibGUgdGJvZHkgdHIuY3VycmVudC1kYXNoYSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjNjZDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZGFzaGEtdGFibGUgdGJvZHkgdHIuY3VycmVudC1kYXNoYSB0ZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZmZjMTA3O1xufVxuXG4uZGFzaGEtdGFibGUgdGJvZHkgdHIuY2xpY2thYmxlLXJvdyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuXG4uZGFzaGEtdGFibGUgdGJvZHkgdHIuY2xpY2thYmxlLXJvdzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2UzZjJmZDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbn1cblxuLmRhc2hhLXRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgY29sb3I6ICM0OTUwNTc7XG59XG5cbi5wbGFuZXQtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzY2N2VlYTtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG59XG5cbi5kdXJhdGlvbi1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNlN2YzZmY7XG4gICAgY29sb3I6ICMwMDY2Y2M7XG4gICAgcGFkZGluZzogNHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucGxhY2Vob2xkZXItc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICBwYWRkaW5nOiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzZjNzU3ZDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkICNkZWUyZTY7XG59XG5cbi5wbGFjZWhvbGRlci1zZWN0aW9uIGkge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLmJhY2stYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogTmVlY2hhIEJoYW5nYSBUYWJsZSBTdHlsZXMgKi9cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4ubmVlY2hhLWJoYW5nYS10YWJsZSBoMiB7XG4gICAgY29sb3I6ICM2NjdlZWE7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZSB0aCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YwOTNmYiAwJSwgI2Y1NTc2YyAxMDAlKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG59XG5cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZSB0ZCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZS1kYW5nZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmU2ZTYgIWltcG9ydGFudDtcbn1cblxuLm5lZWNoYS1iaGFuZ2EtdGFibGUgLnRhYmxlLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY4ZTEgIWltcG9ydGFudDtcbn1cblxuLm5lZWNoYS1iaGFuZ2EtdGFibGUgdWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG4vKiBQbGFuZXRhcnkgQW5hbHlzaXMgVGFibGUgU3R5bGVzICovXG4ucGxhbmV0YXJ5LWFuYWx5c2lzLXRhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4ucGxhbmV0YXJ5LWFuYWx5c2lzLXRhYmxlIGgyIHtcbiAgICBjb2xvcjogIzY2N2VlYTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBsYW5ldGFyeS1hbmFseXNpcy10YWJsZSAudGFibGUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4ucGxhbmV0YXJ5LWFuYWx5c2lzLXRhYmxlIC50YWJsZSB0aCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzY2N2VlYSAwJSwgIzc2NGJhMiAxMDAlKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnBsYW5ldGFyeS1hbmFseXNpcy10YWJsZSAudGFibGUgdGQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZGl2aXNpb25hbC1hbmFseXNpcy10YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLyogUmVzcG9uc2l2ZSBTdHlsZXMgZm9yIFNvbnVjIFBhZ2UgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC8qIFJlc3VsdHMgY29udGFpbmVyIC0gbW9iaWxkZSB0YW0gZ2VuacWfbGlrICovXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICBcbiAgICAuZGFzaGEtdGFibGUge1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgfVxuICAgIFxuICAgIC5kYXNoYS10YWJsZSB0aCxcbiAgICAuZGFzaGEtdGFibGUgdGQge1xuICAgICAgICBwYWRkaW5nOiA4cHggNnB4O1xuICAgIH1cbiAgICBcbiAgICAvKiBNb2JpbGRlIFPDvHJlIHPDvHR1bnVudSAoNC4gc8O8dHVuKSBnaXpsZSAqL1xuICAgIC5kYXNoYS10YWJsZSB0aDpudGgtY2hpbGQoNCksXG4gICAgLmRhc2hhLXRhYmxlIHRkOm50aC1jaGlsZCg0KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIFxuICAgIC8qIEthbGFuIDMgc8O8dHVuIGnDp2luIGdlbmnFn2xpayAqL1xuICAgIC5kYXNoYS10YWJsZSB0aDpudGgtY2hpbGQoMSksXG4gICAgLmRhc2hhLXRhYmxlIHRkOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgfVxuICAgIC5kYXNoYS10YWJsZSB0aDpudGgtY2hpbGQoMiksXG4gICAgLmRhc2hhLXRhYmxlIHRkOm50aC1jaGlsZCgyKSxcbiAgICAuZGFzaGEtdGFibGUgdGg6bnRoLWNoaWxkKDMpLFxuICAgIC5kYXNoYS10YWJsZSB0ZDpudGgtY2hpbGQoMykge1xuICAgICAgICB3aWR0aDogMzUlO1xuICAgIH1cbiAgICBcbiAgICAvKiBEYXNoYSB5b3J1bSBrYXJ0bGFyxLEgLSBtb2JpbGRlIHRhbSBnZW5pxZ9saWsgKi9cbiAgICAucmVzdWx0cy1jb250YWluZXIgLmNhcmQge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC5jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAuY2FyZC1ib2R5IC5wLTQsXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC5jYXJkLWJvZHkgPiBkaXZbc3R5bGUqPVwicGFkZGluZ1wiXSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwIC01cHg7XG4gICAgfVxuICAgIFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAuY2FyZC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAuY2FyZC1oZWFkZXIgaDQsXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC5jYXJkLWhlYWRlciBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cbiAgICBcbiAgICAucmVzdWx0cy1jb250YWluZXIgLmNhcmQtYm9keSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjcgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAvKiBTZWN0aW9uIGJveCAtIG1vYmlsZGUgdGFtIGdlbmnFn2xpayAqL1xuICAgIC5zZWN0aW9uLWJveCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAvKiBBbnRhcmRhc2hhIHRhYmxvc3UgKEJvb3RzdHJhcCB0YWJsZSkgLSBEdXJ1bSBzw7x0dW51bnUgZ2l6bGUgKi9cbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHRoOm50aC1jaGlsZCg0KSxcbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHRkOm50aC1jaGlsZCg0KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIH1cbiAgICBcbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHRoLFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGQge1xuICAgICAgICBwYWRkaW5nOiA4cHggNnB4O1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgfVxuICAgIFxuICAgIC8qIEthbGFuIDMgc8O8dHVuIGXFn2l0IGdlbmnFn2xpayAqL1xuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGg6bnRoLWNoaWxkKDEpLFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgd2lkdGg6IDI4JTtcbiAgICB9XG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0aDpudGgtY2hpbGQoMiksXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0ZDpudGgtY2hpbGQoMiksXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0aDpudGgtY2hpbGQoMyksXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0ZDpudGgtY2hpbGQoMykge1xuICAgICAgICB3aWR0aDogMzYlO1xuICAgIH1cbiAgICBcbiAgICAvKiBNb2JpbGRlIHlhdGF5IHRhxZ9tYXnEsSDDtm5sZSAtIHNheWZhbGFyIMO8c3Qgw7xzdGUgYmlubWVzaW4gKi9cbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG4gICAgXG4gICAgLyogVHJhbnNpdCB2ZSBkacSfZXIgc2F5ZmFsYXIgLSBtb2JpbGRlIGNvbnRhaW5lciB0YW0gZ2VuacWfbGlrICovXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNvbnRhaW5lciB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogVHJhbnNpdCBzYXlmYXPEsSAtIG1vYmlsZGUga2FydGxhcsSxIGdlbmnFn2xldCAqL1xuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jYXJkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jYXJkLWhlYWRlciBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1ib2R5IHAsXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNhcmQtYm9keSBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45MnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42NSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jYXJkLWJvZHkgcFtzdHlsZSo9XCJwYWRkaW5nOiAxMnB4XCJdLFxuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jYXJkLWJvZHkgcFtzdHlsZSo9XCJwYWRkaW5nOjEycHhcIl0ge1xuICAgICAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1ib2R5IGg2IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNhcmQtYm9keSB1bCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubW9iaWxlLWZ1bGwtd2lkdGggLmNhcmQtYm9keSB1bCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAvKiBQYW5jaGFuZyBzYXlmYXPEsSAtIG1vYmlsZGUga2FydGxhcsSxIGdlbmnFn2xldCAqL1xuICAgIC5wYW5jaGFuZy1jYXJkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5wYW5jaGFuZy1jYXJkLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTVweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAucGFuY2hhbmctY2FyZC1oZWFkZXIgaDQge1xuICAgICAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnBhbmNoYW5nLWNhcmQtaGVhZGVyIHAge1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnBhbmNoYW5nLWNhcmQtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnBhbmNoYW5nLWNhcmQtYm9keSAucC00IHtcbiAgICAgICAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAucGFuY2hhbmctY2FyZC1ib2R5IHAge1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnNlY3Rpb24taGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICB9XG4gICAgXG4gICAgLnBsYW5ldGFyeS1hbmFseXNpcy10YWJsZSAudGFibGUge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgfVxuICAgIFxuICAgIC5wbGFuZXRhcnktYW5hbHlzaXMtdGFibGUgaDIge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB9XG4gICAgXG4gICAgLm5lZWNoYS1iaGFuZ2EtdGFibGUgLnRhYmxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIH1cbiAgICBcbiAgICAubmVlY2hhLWJoYW5nYS10YWJsZSBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIH1cbiAgICBcbiAgICAubmVlY2hhLWJoYW5nYS10YWJsZSAudGFibGUgdGgge1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgcGFkZGluZzogOHB4IDRweDtcbiAgICB9XG4gICAgXG4gICAgLm5lZWNoYS1iaGFuZ2EtdGFibGUgLnRhYmxlIHRkIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDRweDtcbiAgICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/