/**
 * The Fluid Theme - Contractor Theme
 * Copyright (c) 2025 AGILE LLC
 * Author: Neil S. White
 * 
 * Orange/Industrial theme for contractors, builders, and trades professionals
 * Primary: #f97316 (orange-500)
 * Focus: Construction, trades, professional rugged look
 */

/* Contractor Theme - Orange/Industrial */
[data-theme="contractor"] {
  /* Core brand colors */
  --fluid-brand: #f97316;
  --fluid-brand-dark: #ea580c;
  --fluid-brand-light: #fb923c;
  
  /* Semantic colors */
  --fluid-color-primary: #f97316;
  --fluid-color-primary-hover: #ea580c;
  --fluid-color-accent: #78716c;
  --fluid-color-success: #16a34a;
  --fluid-color-warning: #ca8a04;
  --fluid-color-danger: #dc2626;
  --fluid-color-info: #0284c7;
  
  /* Typography - Professional, sturdy fonts */
  --fluid-font-sans: 'Inter', 'Roboto', system-ui, -apple-system, sans-serif;
  
  /* Enhanced shadows for professional depth */
  --fluid-shadow-sm: 0 2px 4px -1px rgba(249, 115, 22, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  --fluid-shadow-md: 0 4px 6px -2px rgba(249, 115, 22, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --fluid-shadow-lg: 0 10px 15px -3px rgba(249, 115, 22, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* Dark theme override for contractor */
[data-theme="contractor"][data-theme-mode="dark"] {
  --fluid-color-primary: #fb923c;
  --fluid-color-primary-hover: #f97316;
}

/* Contractor-specific component enhancements */
[data-theme="contractor"] .fluid-invoice {
  border-top: 4px solid var(--fluid-color-primary);
}

[data-theme="contractor"] .fluid-invoice-logo {
  color: var(--fluid-color-primary);
  font-weight: 800;
}

[data-theme="contractor"] .fluid-btn-primary {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-brand-dark) 100%);
  font-weight: 600;
}

[data-theme="contractor"] .fluid-btn-primary:hover {
  background: linear-gradient(135deg, var(--fluid-brand-dark) 0%, #d2550c 100%);
  transform: translateY(-1px) scale(1.02);
}

[data-theme="contractor"] .fluid-card:hover {
  border-color: var(--fluid-color-primary);
  box-shadow: var(--fluid-shadow-lg);
}

/* Professional table styling for estimates/invoices */
[data-theme="contractor"] .fluid-table th {
  background: linear-gradient(135deg, #fef3f2 0%, #fed7d7 100%);
  border-bottom: 2px solid var(--fluid-color-primary);
  font-weight: 700;
}

/* Enhanced service card for contractor services */
[data-theme="contractor"] .fluid-service-card {
  border: 2px solid var(--fluid-color-border);
  transition: all var(--fluid-transition);
}

[data-theme="contractor"] .fluid-service-card:hover {
  border-color: var(--fluid-color-primary);
  box-shadow: 0 8px 25px -5px rgba(249, 115, 22, 0.25);
  transform: translateY(-2px);
}

/* Quote/Estimate specific styling */
[data-theme="contractor"] .fluid-estimate {
  border-left: 6px solid var(--fluid-color-primary);
}

/* Badge styling for contractor theme */
[data-theme="contractor"] .fluid-badge-primary {
  background: var(--fluid-color-primary);
  box-shadow: 0 2px 4px rgba(249, 115, 22, 0.2);
}

/* Alert enhancements */
[data-theme="contractor"] .fluid-alert-info {
  background: rgba(2, 132, 199, 0.1);
  border-left: 4px solid var(--fluid-color-info);
  border-radius: var(--fluid-radius-md);
}

[data-theme="contractor"] .fluid-alert-warning {
  background: rgba(202, 138, 4, 0.1);
  border-left: 4px solid var(--fluid-color-warning);
  border-radius: var(--fluid-radius-md);
}

/* Professional form styling */
[data-theme="contractor"] .fluid-input:focus,
[data-theme="contractor"] .fluid-textarea:focus,
[data-theme="contractor"] .fluid-select:focus {
  border-color: var(--fluid-color-primary);
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1);
}

/* Print optimizations for contractor documents */
@media print {
  [data-theme="contractor"] .fluid-invoice,
  [data-theme="contractor"] .fluid-estimate {
    border-color: #666 !important;
  }
  
  [data-theme="contractor"] .fluid-invoice-logo {
    color: #333 !important;
  }
}/**
 * The Fluid Theme - Freelancer Theme
 * Copyright (c) 2025 AGILE LLC
 * Author: Neil S. White
 * 
 * Purple/Creative theme for designers, freelancers, and creative professionals
 * Primary: #9333ea (purple-600)
 * Focus: Creative, elegant aesthetic with portfolio components
 */

/* Freelancer Theme - Purple/Creative */
[data-theme="freelancer"] {
  /* Core brand colors */
  --fluid-brand: #9333ea;
  --fluid-brand-dark: #7c3aed;
  --fluid-brand-light: #a855f7;
  
  /* Semantic colors */
  --fluid-color-primary: #9333ea;
  --fluid-color-primary-hover: #7c3aed;
  --fluid-color-accent: #6366f1;
  --fluid-color-success: #059669;
  --fluid-color-warning: #d97706;
  --fluid-color-danger: #dc2626;
  --fluid-color-info: #0891b2;
  
  /* Typography - Creative, modern fonts */
  --fluid-font-sans: 'Inter', 'Poppins', system-ui, -apple-system, sans-serif;
  
  /* Creative shadows with purple hints */
  --fluid-shadow-sm: 0 2px 4px -1px rgba(147, 51, 234, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  --fluid-shadow-md: 0 4px 6px -2px rgba(147, 51, 234, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --fluid-shadow-lg: 0 10px 15px -3px rgba(147, 51, 234, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --fluid-shadow-xl: 0 20px 25px -5px rgba(147, 51, 234, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  
  /* Enhanced radius for creative look */
  --fluid-radius-lg: 1rem;
  --fluid-radius-xl: 1.25rem;
}

/* Dark theme override for freelancer */
[data-theme="freelancer"][data-theme-mode="dark"] {
  --fluid-color-primary: #a855f7;
  --fluid-color-primary-hover: #9333ea;
}

/* Freelancer-specific component enhancements */
[data-theme="freelancer"] .fluid-invoice {
  border-top: 6px solid var(--fluid-color-primary);
  border-radius: var(--fluid-radius-xl);
}

[data-theme="freelancer"] .fluid-invoice-logo {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 800;
  font-size: var(--fluid-text-3xl);
}

[data-theme="freelancer"] .fluid-btn-primary {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  font-weight: 600;
  box-shadow: 0 4px 14px 0 rgba(147, 51, 234, 0.25);
}

[data-theme="freelancer"] .fluid-btn-primary:hover {
  background: linear-gradient(135deg, var(--fluid-brand-dark) 0%, var(--fluid-color-accent) 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px 0 rgba(147, 51, 234, 0.35);
}

[data-theme="freelancer"] .fluid-card {
  border-radius: var(--fluid-radius-xl);
  overflow: hidden;
}

[data-theme="freelancer"] .fluid-card:hover {
  border-color: var(--fluid-color-primary);
  box-shadow: var(--fluid-shadow-xl);
  transform: translateY(-4px);
}

/* Creative table styling */
[data-theme="freelancer"] .fluid-table {
  border-radius: var(--fluid-radius-xl);
}

[data-theme="freelancer"] .fluid-table th {
  background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
  border-bottom: 2px solid var(--fluid-color-primary);
  font-weight: 600;
  font-size: var(--fluid-text-sm);
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

/* Portfolio-style service cards */
[data-theme="freelancer"] .fluid-service-card {
  border-radius: var(--fluid-radius-xl);
  border: 1px solid var(--fluid-color-border);
  transition: all var(--fluid-transition-slow);
  position: relative;
  overflow: hidden;
}

[data-theme="freelancer"] .fluid-service-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  opacity: 0;
  transition: opacity var(--fluid-transition);
}

[data-theme="freelancer"] .fluid-service-card:hover::before {
  opacity: 1;
}

[data-theme="freelancer"] .fluid-service-card:hover {
  border-color: var(--fluid-color-primary);
  box-shadow: 0 12px 40px -10px rgba(147, 51, 234, 0.25);
  transform: translateY(-6px);
}

/* Creative quote/project styling */
[data-theme="freelancer"] .fluid-estimate {
  border-left: 6px solid var(--fluid-color-primary);
  border-radius: 0 var(--fluid-radius-lg) var(--fluid-radius-lg) 0;
  position: relative;
}

/* Badge styling with gradient */
[data-theme="freelancer"] .fluid-badge-primary {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  box-shadow: 0 2px 8px rgba(147, 51, 234, 0.25);
  border: none;
}

/* Creative alert styling */
[data-theme="freelancer"] .fluid-alert-info {
  background: linear-gradient(135deg, rgba(8, 145, 178, 0.1) 0%, rgba(147, 51, 234, 0.05) 100%);
  border: 1px solid rgba(8, 145, 178, 0.2);
  border-radius: var(--fluid-radius-lg);
}

[data-theme="freelancer"] .fluid-alert-warning {
  background: linear-gradient(135deg, rgba(217, 119, 6, 0.1) 0%, rgba(147, 51, 234, 0.05) 100%);
  border: 1px solid rgba(217, 119, 6, 0.2);
  border-radius: var(--fluid-radius-lg);
}

/* Creative form styling */
[data-theme="freelancer"] .fluid-input,
[data-theme="freelancer"] .fluid-textarea,
[data-theme="freelancer"] .fluid-select {
  border-radius: var(--fluid-radius-lg);
  transition: all var(--fluid-transition);
}

[data-theme="freelancer"] .fluid-input:focus,
[data-theme="freelancer"] .fluid-textarea:focus,
[data-theme="freelancer"] .fluid-select:focus {
  border-color: var(--fluid-color-primary);
  box-shadow: 0 0 0 4px rgba(147, 51, 234, 0.1);
  transform: scale(1.01);
}

/* Portfolio component - specific to freelancer theme */
[data-theme="freelancer"] .fluid-portfolio-item {
  border-radius: var(--fluid-radius-xl);
  overflow: hidden;
  transition: all var(--fluid-transition-slow);
  background: var(--fluid-color-surface);
  box-shadow: var(--fluid-shadow-md);
}

[data-theme="freelancer"] .fluid-portfolio-item:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 40px -10px rgba(147, 51, 234, 0.2);
}

[data-theme="freelancer"] .fluid-portfolio-title {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

/* Creative pricing table */
[data-theme="freelancer"] .fluid-pricing-card {
  border-radius: var(--fluid-radius-2xl);
  border: 2px solid var(--fluid-color-border);
  transition: all var(--fluid-transition-slow);
  position: relative;
  overflow: hidden;
}

[data-theme="freelancer"] .fluid-pricing-card.featured {
  border-color: var(--fluid-color-primary);
  transform: scale(1.05);
  box-shadow: var(--fluid-shadow-xl);
}

[data-theme="freelancer"] .fluid-pricing-card.featured::before {
  content: 'Most Popular';
  position: absolute;
  top: 1rem;
  right: -2rem;
  background: var(--fluid-color-primary);
  color: white;
  padding: 0.5rem 3rem;
  transform: rotate(45deg);
  font-size: var(--fluid-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Print optimizations */
@media print {
  [data-theme="freelancer"] .fluid-invoice,
  [data-theme="freelancer"] .fluid-estimate {
    border-color: #666 !important;
  }
  
  [data-theme="freelancer"] .fluid-invoice-logo {
    background: none !important;
    -webkit-text-fill-color: initial !important;
    color: #333 !important;
  }
}/**
 * The Fluid Theme - Agency Theme
 * Copyright (c) 2025 AGILE LLC
 * Author: Neil S. White
 * 
 * Teal/Wellness theme for agencies, consultants, and wellness professionals
 * Primary: #14b8a6 (teal-500)
 * Focus: Professional, calm, trustworthy appearance with appointment components
 */

/* Agency Theme - Teal/Wellness */
[data-theme="agency"] {
  /* Core brand colors */
  --fluid-brand: #14b8a6;
  --fluid-brand-dark: #0f766e;
  --fluid-brand-light: #2dd4bf;
  
  /* Semantic colors */
  --fluid-color-primary: #14b8a6;
  --fluid-color-primary-hover: #0f766e;
  --fluid-color-accent: #0891b2;
  --fluid-color-success: #059669;
  --fluid-color-warning: #d97706;
  --fluid-color-danger: #dc2626;
  --fluid-color-info: #0284c7;
  
  /* Typography - Professional, clean fonts */
  --fluid-font-sans: 'Inter', 'Source Sans Pro', system-ui, -apple-system, sans-serif;
  
  /* Soft, professional shadows with teal hints */
  --fluid-shadow-sm: 0 1px 3px 0 rgba(20, 184, 166, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  --fluid-shadow-md: 0 4px 6px -1px rgba(20, 184, 166, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --fluid-shadow-lg: 0 10px 15px -3px rgba(20, 184, 166, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  --fluid-shadow-xl: 0 20px 25px -5px rgba(20, 184, 166, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  
  /* Softer background tones */
  --fluid-color-bg-alt: #f0fdfa;
  --fluid-color-surface: #ffffff;
}

/* Dark theme override for agency */
[data-theme="agency"][data-theme-mode="dark"] {
  --fluid-color-primary: #2dd4bf;
  --fluid-color-primary-hover: #14b8a6;
  --fluid-color-bg-alt: #134e4a;
}

/* Agency-specific component enhancements */
[data-theme="agency"] .fluid-invoice {
  border-top: 3px solid var(--fluid-color-primary);
  border-radius: var(--fluid-radius-lg);
}

[data-theme="agency"] .fluid-invoice-logo {
  color: var(--fluid-color-primary);
  font-weight: 700;
  font-size: var(--fluid-text-2xl);
}

[data-theme="agency"] .fluid-btn-primary {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  font-weight: 500;
  border-radius: var(--fluid-radius-lg);
}

[data-theme="agency"] .fluid-btn-primary:hover {
  background: linear-gradient(135deg, var(--fluid-brand-dark) 0%, #0e7490 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(20, 184, 166, 0.25);
}

[data-theme="agency"] .fluid-card {
  border-radius: var(--fluid-radius-lg);
  border: 1px solid rgba(20, 184, 166, 0.1);
}

[data-theme="agency"] .fluid-card:hover {
  border-color: var(--fluid-color-primary);
  box-shadow: var(--fluid-shadow-lg);
  transform: translateY(-2px);
}

/* Professional table styling */
[data-theme="agency"] .fluid-table th {
  background: linear-gradient(135deg, #f0fdfa 0%, #ccfbf1 100%);
  border-bottom: 2px solid var(--fluid-color-primary);
  font-weight: 600;
  color: var(--fluid-brand-dark);
}

[data-theme="agency"] .fluid-table tbody tr:hover {
  background: rgba(20, 184, 166, 0.05);
}

/* Service cards with professional styling */
[data-theme="agency"] .fluid-service-card {
  border-radius: var(--fluid-radius-lg);
  border: 1px solid var(--fluid-color-border);
  transition: all var(--fluid-transition);
  background: var(--fluid-color-surface);
}

[data-theme="agency"] .fluid-service-card:hover {
  border-color: var(--fluid-color-primary);
  box-shadow: 0 8px 25px -5px rgba(20, 184, 166, 0.2);
  transform: translateY(-3px);
}

/* Estimate/proposal styling */
[data-theme="agency"] .fluid-estimate {
  border-left: 4px solid var(--fluid-color-primary);
  border-radius: 0 var(--fluid-radius-lg) var(--fluid-radius-lg) 0;
}

/* Professional badge styling */
[data-theme="agency"] .fluid-badge-primary {
  background: var(--fluid-color-primary);
  box-shadow: 0 2px 4px rgba(20, 184, 166, 0.15);
}

/* Calm alert styling */
[data-theme="agency"] .fluid-alert-info {
  background: rgba(2, 132, 199, 0.08);
  border: 1px solid rgba(2, 132, 199, 0.2);
  border-radius: var(--fluid-radius-lg);
  color: var(--fluid-color-info);
}

[data-theme="agency"] .fluid-alert-success {
  background: rgba(5, 150, 105, 0.08);
  border: 1px solid rgba(5, 150, 105, 0.2);
  border-radius: var(--fluid-radius-lg);
  color: var(--fluid-color-success);
}

[data-theme="agency"] .fluid-alert-warning {
  background: rgba(217, 119, 6, 0.08);
  border: 1px solid rgba(217, 119, 6, 0.2);
  border-radius: var(--fluid-radius-lg);
  color: var(--fluid-color-warning);
}

/* Professional form styling */
[data-theme="agency"] .fluid-input,
[data-theme="agency"] .fluid-textarea,
[data-theme="agency"] .fluid-select {
  border-radius: var(--fluid-radius-lg);
  border: 1px solid var(--fluid-color-border);
  transition: all var(--fluid-transition);
}

[data-theme="agency"] .fluid-input:focus,
[data-theme="agency"] .fluid-textarea:focus,
[data-theme="agency"] .fluid-select:focus {
  border-color: var(--fluid-color-primary);
  box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.08);
}

/* Appointment booking component - specific to agency theme */
[data-theme="agency"] .fluid-appointment-card {
  background: var(--fluid-color-surface);
  border: 1px solid rgba(20, 184, 166, 0.15);
  border-radius: var(--fluid-radius-xl);
  padding: var(--fluid-space-xl);
  box-shadow: var(--fluid-shadow-sm);
  transition: all var(--fluid-transition);
}

[data-theme="agency"] .fluid-appointment-card:hover {
  box-shadow: var(--fluid-shadow-md);
  border-color: var(--fluid-color-primary);
}

[data-theme="agency"] .fluid-appointment-time {
  background: rgba(20, 184, 166, 0.1);
  color: var(--fluid-brand-dark);
  padding: var(--fluid-space-sm) var(--fluid-space-md);
  border-radius: var(--fluid-radius-full);
  font-weight: 600;
  font-size: var(--fluid-text-sm);
}

[data-theme="agency"] .fluid-appointment-status {
  display: inline-flex;
  align-items: center;
  gap: var(--fluid-space-xs);
  padding: var(--fluid-space-xs) var(--fluid-space-sm);
  border-radius: var(--fluid-radius-full);
  font-size: var(--fluid-text-xs);
  font-weight: 500;
}

[data-theme="agency"] .fluid-appointment-status.confirmed {
  background: rgba(5, 150, 105, 0.1);
  color: var(--fluid-color-success);
}

[data-theme="agency"] .fluid-appointment-status.pending {
  background: rgba(217, 119, 6, 0.1);
  color: var(--fluid-color-warning);
}

/* Professional pricing tables */
[data-theme="agency"] .fluid-pricing-table {
  border-radius: var(--fluid-radius-xl);
  overflow: hidden;
  box-shadow: var(--fluid-shadow-lg);
}

[data-theme="agency"] .fluid-pricing-header {
  background: linear-gradient(135deg, var(--fluid-color-primary) 0%, var(--fluid-color-accent) 100%);
  color: white;
  padding: var(--fluid-space-xl);
  text-align: center;
}

[data-theme="agency"] .fluid-pricing-feature {
  display: flex;
  align-items: center;
  padding: var(--fluid-space-sm) var(--fluid-space-md);
  border-bottom: 1px solid var(--fluid-color-border-light);
}

[data-theme="agency"] .fluid-pricing-feature::before {
  content: '✓';
  color: var(--fluid-color-success);
  font-weight: bold;
  margin-right: var(--fluid-space-sm);
}

/* Team member cards */
[data-theme="agency"] .fluid-team-card {
  text-align: center;
  background: var(--fluid-color-surface);
  border-radius: var(--fluid-radius-xl);
  padding: var(--fluid-space-xl);
  box-shadow: var(--fluid-shadow-sm);
  transition: all var(--fluid-transition);
}

[data-theme="agency"] .fluid-team-card:hover {
  box-shadow: var(--fluid-shadow-lg);
  transform: translateY(-4px);
}

[data-theme="agency"] .fluid-team-avatar {
  width: 80px;
  height: 80px;
  border-radius: var(--fluid-radius-full);
  border: 3px solid var(--fluid-color-primary);
  margin: 0 auto var(--fluid-space-md);
  overflow: hidden;
}

[data-theme="agency"] .fluid-team-name {
  color: var(--fluid-color-primary);
  font-weight: 600;
  margin-bottom: var(--fluid-space-xs);
}

[data-theme="agency"] .fluid-team-role {
  color: var(--fluid-color-text-light);
  font-size: var(--fluid-text-sm);
  margin-bottom: var(--fluid-space-md);
}

/* Client testimonials */
[data-theme="agency"] .fluid-testimonial {
  background: var(--fluid-color-bg-alt);
  border-left: 4px solid var(--fluid-color-primary);
  padding: var(--fluid-space-lg);
  border-radius: 0 var(--fluid-radius-lg) var(--fluid-radius-lg) 0;
  font-style: italic;
  position: relative;
}

[data-theme="agency"] .fluid-testimonial::before {
  content: '"';
  font-size: var(--fluid-text-4xl);
  color: var(--fluid-color-primary);
  position: absolute;
  top: var(--fluid-space-sm);
  left: var(--fluid-space-md);
  line-height: 1;
}

[data-theme="agency"] .fluid-testimonial-author {
  margin-top: var(--fluid-space-md);
  font-style: normal;
  font-weight: 600;
  color: var(--fluid-color-primary);
}

/* Print optimizations */
@media print {
  [data-theme="agency"] .fluid-invoice,
  [data-theme="agency"] .fluid-estimate {
    border-color: #666 !important;
  }
  
  [data-theme="agency"] .fluid-invoice-logo {
    color: #333 !important;
  }
  
  [data-theme="agency"] .fluid-appointment-time,
  [data-theme="agency"] .fluid-appointment-status {
    background: transparent !important;
    color: #333 !important;
    border: 1px solid #666 !important;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZsdWlkLXRoZW1lcy5taW4uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImZsdWlkLXRoZW1lcy5taW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgRmx1aWQgVGhlbWUgLSBDb250cmFjdG9yIFRoZW1lXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUgQUdJTEUgTExDXG4gKiBBdXRob3I6IE5laWwgUy4gV2hpdGVcbiAqIFxuICogT3JhbmdlL0luZHVzdHJpYWwgdGhlbWUgZm9yIGNvbnRyYWN0b3JzLCBidWlsZGVycywgYW5kIHRyYWRlcyBwcm9mZXNzaW9uYWxzXG4gKiBQcmltYXJ5OiAjZjk3MzE2IChvcmFuZ2UtNTAwKVxuICogRm9jdXM6IENvbnN0cnVjdGlvbiwgdHJhZGVzLCBwcm9mZXNzaW9uYWwgcnVnZ2VkIGxvb2tcbiAqL1xuXG4vKiBDb250cmFjdG9yIFRoZW1lIC0gT3JhbmdlL0luZHVzdHJpYWwgKi9cbltkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSB7XG4gIC8qIENvcmUgYnJhbmQgY29sb3JzICovXG4gIC0tZmx1aWQtYnJhbmQ6ICNmOTczMTY7XG4gIC0tZmx1aWQtYnJhbmQtZGFyazogI2VhNTgwYztcbiAgLS1mbHVpZC1icmFuZC1saWdodDogI2ZiOTIzYztcbiAgXG4gIC8qIFNlbWFudGljIGNvbG9ycyAqL1xuICAtLWZsdWlkLWNvbG9yLXByaW1hcnk6ICNmOTczMTY7XG4gIC0tZmx1aWQtY29sb3ItcHJpbWFyeS1ob3ZlcjogI2VhNTgwYztcbiAgLS1mbHVpZC1jb2xvci1hY2NlbnQ6ICM3ODcxNmM7XG4gIC0tZmx1aWQtY29sb3Itc3VjY2VzczogIzE2YTM0YTtcbiAgLS1mbHVpZC1jb2xvci13YXJuaW5nOiAjY2E4YTA0O1xuICAtLWZsdWlkLWNvbG9yLWRhbmdlcjogI2RjMjYyNjtcbiAgLS1mbHVpZC1jb2xvci1pbmZvOiAjMDI4NGM3O1xuICBcbiAgLyogVHlwb2dyYXBoeSAtIFByb2Zlc3Npb25hbCwgc3R1cmR5IGZvbnRzICovXG4gIC0tZmx1aWQtZm9udC1zYW5zOiAnSW50ZXInLCAnUm9ib3RvJywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICBcbiAgLyogRW5oYW5jZWQgc2hhZG93cyBmb3IgcHJvZmVzc2lvbmFsIGRlcHRoICovXG4gIC0tZmx1aWQtc2hhZG93LXNtOiAwIDJweCA0cHggLTFweCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xKSwgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgLS1mbHVpZC1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMnB4IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAtLWZsdWlkLXNoYWRvdy1sZzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLyogRGFyayB0aGVtZSBvdmVycmlkZSBmb3IgY29udHJhY3RvciAqL1xuW2RhdGEtdGhlbWU9XCJjb250cmFjdG9yXCJdW2RhdGEtdGhlbWUtbW9kZT1cImRhcmtcIl0ge1xuICAtLWZsdWlkLWNvbG9yLXByaW1hcnk6ICNmYjkyM2M7XG4gIC0tZmx1aWQtY29sb3ItcHJpbWFyeS1ob3ZlcjogI2Y5NzMxNjtcbn1cblxuLyogQ29udHJhY3Rvci1zcGVjaWZpYyBjb21wb25lbnQgZW5oYW5jZW1lbnRzICovXG5bZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLWludm9pY2Uge1xuICBib3JkZXItdG9wOiA0cHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG59XG5cbltkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSAuZmx1aWQtaW52b2ljZS1sb2dvIHtcbiAgY29sb3I6IHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG5bZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLWJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSkgMCUsIHZhcigtLWZsdWlkLWJyYW5kLWRhcmspIDEwMCUpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5bZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZmx1aWQtYnJhbmQtZGFyaykgMCUsICNkMjU1MGMgMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSBzY2FsZSgxLjAyKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJjb250cmFjdG9yXCJdIC5mbHVpZC1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tZmx1aWQtc2hhZG93LWxnKTtcbn1cblxuLyogUHJvZmVzc2lvbmFsIHRhYmxlIHN0eWxpbmcgZm9yIGVzdGltYXRlcy9pbnZvaWNlcyAqL1xuW2RhdGEtdGhlbWU9XCJjb250cmFjdG9yXCJdIC5mbHVpZC10YWJsZSB0aCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZWYzZjIgMCUsICNmZWQ3ZDcgMTAwJSk7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyogRW5oYW5jZWQgc2VydmljZSBjYXJkIGZvciBjb250cmFjdG9yIHNlcnZpY2VzICovXG5bZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLXNlcnZpY2UtY2FyZCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLWJvcmRlcik7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS1mbHVpZC10cmFuc2l0aW9uKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJjb250cmFjdG9yXCJdIC5mbHVpZC1zZXJ2aWNlLWNhcmQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiAwIDhweCAyNXB4IC01cHggcmdiYSgyNDksIDExNSwgMjIsIDAuMjUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi8qIFF1b3RlL0VzdGltYXRlIHNwZWNpZmljIHN0eWxpbmcgKi9cbltkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSAuZmx1aWQtZXN0aW1hdGUge1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xufVxuXG4vKiBCYWRnZSBzdHlsaW5nIGZvciBjb250cmFjdG9yIHRoZW1lICovXG5bZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLWJhZGdlLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjIpO1xufVxuXG4vKiBBbGVydCBlbmhhbmNlbWVudHMgKi9cbltkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSAuZmx1aWQtYWxlcnQtaW5mbyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMiwgMTMyLCAxOTksIDAuMSk7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItaW5mbyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1tZCk7XG59XG5cbltkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSAuZmx1aWQtYWxlcnQtd2FybmluZyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjAyLCAxMzgsIDQsIDAuMSk7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZmx1aWQtY29sb3Itd2FybmluZyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1tZCk7XG59XG5cbi8qIFByb2Zlc3Npb25hbCBmb3JtIHN0eWxpbmcgKi9cbltkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSAuZmx1aWQtaW5wdXQ6Zm9jdXMsXG5bZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLXRleHRhcmVhOmZvY3VzLFxuW2RhdGEtdGhlbWU9XCJjb250cmFjdG9yXCJdIC5mbHVpZC1zZWxlY3Q6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDksIDExNSwgMjIsIDAuMSk7XG59XG5cbi8qIFByaW50IG9wdGltaXphdGlvbnMgZm9yIGNvbnRyYWN0b3IgZG9jdW1lbnRzICovXG5AbWVkaWEgcHJpbnQge1xuICBbZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLWludm9pY2UsXG4gIFtkYXRhLXRoZW1lPVwiY29udHJhY3RvclwiXSAuZmx1aWQtZXN0aW1hdGUge1xuICAgIGJvcmRlci1jb2xvcjogIzY2NiAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBbZGF0YS10aGVtZT1cImNvbnRyYWN0b3JcIl0gLmZsdWlkLWludm9pY2UtbG9nbyB7XG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgfVxufS8qKlxuICogVGhlIEZsdWlkIFRoZW1lIC0gRnJlZWxhbmNlciBUaGVtZVxuICogQ29weXJpZ2h0IChjKSAyMDI1IEFHSUxFIExMQ1xuICogQXV0aG9yOiBOZWlsIFMuIFdoaXRlXG4gKiBcbiAqIFB1cnBsZS9DcmVhdGl2ZSB0aGVtZSBmb3IgZGVzaWduZXJzLCBmcmVlbGFuY2VycywgYW5kIGNyZWF0aXZlIHByb2Zlc3Npb25hbHNcbiAqIFByaW1hcnk6ICM5MzMzZWEgKHB1cnBsZS02MDApXG4gKiBGb2N1czogQ3JlYXRpdmUsIGVsZWdhbnQgYWVzdGhldGljIHdpdGggcG9ydGZvbGlvIGNvbXBvbmVudHNcbiAqL1xuXG4vKiBGcmVlbGFuY2VyIFRoZW1lIC0gUHVycGxlL0NyZWF0aXZlICovXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0ge1xuICAvKiBDb3JlIGJyYW5kIGNvbG9ycyAqL1xuICAtLWZsdWlkLWJyYW5kOiAjOTMzM2VhO1xuICAtLWZsdWlkLWJyYW5kLWRhcms6ICM3YzNhZWQ7XG4gIC0tZmx1aWQtYnJhbmQtbGlnaHQ6ICNhODU1Zjc7XG4gIFxuICAvKiBTZW1hbnRpYyBjb2xvcnMgKi9cbiAgLS1mbHVpZC1jb2xvci1wcmltYXJ5OiAjOTMzM2VhO1xuICAtLWZsdWlkLWNvbG9yLXByaW1hcnktaG92ZXI6ICM3YzNhZWQ7XG4gIC0tZmx1aWQtY29sb3ItYWNjZW50OiAjNjM2NmYxO1xuICAtLWZsdWlkLWNvbG9yLXN1Y2Nlc3M6ICMwNTk2Njk7XG4gIC0tZmx1aWQtY29sb3Itd2FybmluZzogI2Q5NzcwNjtcbiAgLS1mbHVpZC1jb2xvci1kYW5nZXI6ICNkYzI2MjY7XG4gIC0tZmx1aWQtY29sb3ItaW5mbzogIzA4OTFiMjtcbiAgXG4gIC8qIFR5cG9ncmFwaHkgLSBDcmVhdGl2ZSwgbW9kZXJuIGZvbnRzICovXG4gIC0tZmx1aWQtZm9udC1zYW5zOiAnSW50ZXInLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgXG4gIC8qIENyZWF0aXZlIHNoYWRvd3Mgd2l0aCBwdXJwbGUgaGludHMgKi9cbiAgLS1mbHVpZC1zaGFkb3ctc206IDAgMnB4IDRweCAtMXB4IHJnYmEoMTQ3LCA1MSwgMjM0LCAwLjEpLCAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAtLWZsdWlkLXNoYWRvdy1tZDogMCA0cHggNnB4IC0ycHggcmdiYSgxNDcsIDUxLCAyMzQsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gIC0tZmx1aWQtc2hhZG93LWxnOiAwIDEwcHggMTVweCAtM3B4IHJnYmEoMTQ3LCA1MSwgMjM0LCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAtLWZsdWlkLXNoYWRvdy14bDogMCAyMHB4IDI1cHggLTVweCByZ2JhKDE0NywgNTEsIDIzNCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuICBcbiAgLyogRW5oYW5jZWQgcmFkaXVzIGZvciBjcmVhdGl2ZSBsb29rICovXG4gIC0tZmx1aWQtcmFkaXVzLWxnOiAxcmVtO1xuICAtLWZsdWlkLXJhZGl1cy14bDogMS4yNXJlbTtcbn1cblxuLyogRGFyayB0aGVtZSBvdmVycmlkZSBmb3IgZnJlZWxhbmNlciAqL1xuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdW2RhdGEtdGhlbWUtbW9kZT1cImRhcmtcIl0ge1xuICAtLWZsdWlkLWNvbG9yLXByaW1hcnk6ICNhODU1Zjc7XG4gIC0tZmx1aWQtY29sb3ItcHJpbWFyeS1ob3ZlcjogIzkzMzNlYTtcbn1cblxuLyogRnJlZWxhbmNlci1zcGVjaWZpYyBjb21wb25lbnQgZW5oYW5jZW1lbnRzICovXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLWludm9pY2Uge1xuICBib3JkZXItdG9wOiA2cHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy14bCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtaW52b2ljZS1sb2dvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSkgMCUsIHZhcigtLWZsdWlkLWNvbG9yLWFjY2VudCkgMTAwJSk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1mbHVpZC10ZXh0LTN4bCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KSAwJSwgdmFyKC0tZmx1aWQtY29sb3ItYWNjZW50KSAxMDAlKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYm94LXNoYWRvdzogMCA0cHggMTRweCAwIHJnYmEoMTQ3LCA1MSwgMjM0LCAwLjI1KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1idG4tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZsdWlkLWJyYW5kLWRhcmspIDAlLCB2YXIoLS1mbHVpZC1jb2xvci1hY2NlbnQpIDEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggMCByZ2JhKDE0NywgNTEsIDIzNCwgMC4zNSk7XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy14bCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWZsdWlkLXNoYWRvdy14bCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cblxuLyogQ3JlYXRpdmUgdGFibGUgc3R5bGluZyAqL1xuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC10YWJsZSB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy14bCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtdGFibGUgdGgge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmFmNWZmIDAlLCAjZjNlOGZmIDEwMCUpO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmx1aWQtdGV4dC1zbSk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyNWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vKiBQb3J0Zm9saW8tc3R5bGUgc2VydmljZSBjYXJkcyAqL1xuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1zZXJ2aWNlLWNhcmQge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mbHVpZC1yYWRpdXMteGwpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1mbHVpZC1jb2xvci1ib3JkZXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tZmx1aWQtdHJhbnNpdGlvbi1zbG93KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLXNlcnZpY2UtY2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSkgMCUsIHZhcigtLWZsdWlkLWNvbG9yLWFjY2VudCkgMTAwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tZmx1aWQtdHJhbnNpdGlvbik7XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtc2VydmljZS1jYXJkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLXNlcnZpY2UtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGJveC1zaGFkb3c6IDAgMTJweCA0MHB4IC0xMHB4IHJnYmEoMTQ3LCA1MSwgMjM0LCAwLjI1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpO1xufVxuXG4vKiBDcmVhdGl2ZSBxdW90ZS9wcm9qZWN0IHN0eWxpbmcgKi9cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtZXN0aW1hdGUge1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWZsdWlkLXJhZGl1cy1sZykgdmFyKC0tZmx1aWQtcmFkaXVzLWxnKSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIEJhZGdlIHN0eWxpbmcgd2l0aCBncmFkaWVudCAqL1xuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1iYWRnZS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSkgMCUsIHZhcigtLWZsdWlkLWNvbG9yLWFjY2VudCkgMTAwJSk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE0NywgNTEsIDIzNCwgMC4yNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLyogQ3JlYXRpdmUgYWxlcnQgc3R5bGluZyAqL1xuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1hbGVydC1pbmZvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg4LCAxNDUsIDE3OCwgMC4xKSAwJSwgcmdiYSgxNDcsIDUxLCAyMzQsIDAuMDUpIDEwMCUpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDgsIDE0NSwgMTc4LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mbHVpZC1yYWRpdXMtbGcpO1xufVxuXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLWFsZXJ0LXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxNywgMTE5LCA2LCAwLjEpIDAlLCByZ2JhKDE0NywgNTEsIDIzNCwgMC4wNSkgMTAwJSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE3LCAxMTksIDYsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1sZyk7XG59XG5cbi8qIENyZWF0aXZlIGZvcm0gc3R5bGluZyAqL1xuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1pbnB1dCxcbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtdGV4dGFyZWEsXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLXNlbGVjdCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1sZyk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS1mbHVpZC10cmFuc2l0aW9uKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1pbnB1dDpmb2N1cyxcbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtdGV4dGFyZWE6Zm9jdXMsXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLXNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDE0NywgNTEsIDIzNCwgMC4xKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxKTtcbn1cblxuLyogUG9ydGZvbGlvIGNvbXBvbmVudCAtIHNwZWNpZmljIHRvIGZyZWVsYW5jZXIgdGhlbWUgKi9cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtcG9ydGZvbGlvLWl0ZW0ge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mbHVpZC1yYWRpdXMteGwpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tZmx1aWQtdHJhbnNpdGlvbi1zbG93KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmx1aWQtY29sb3Itc3VyZmFjZSk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWZsdWlkLXNoYWRvdy1tZCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtcG9ydGZvbGlvLWl0ZW06aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMS4wMik7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IC0xMHB4IHJnYmEoMTQ3LCA1MSwgMjM0LCAwLjIpO1xufVxuXG5bZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLXBvcnRmb2xpby10aXRsZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpIDAlLCB2YXIoLS1mbHVpZC1jb2xvci1hY2NlbnQpIDEwMCUpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIENyZWF0aXZlIHByaWNpbmcgdGFibGUgKi9cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtcHJpY2luZy1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLTJ4bCk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLWJvcmRlcik7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS1mbHVpZC10cmFuc2l0aW9uLXNsb3cpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbltkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtcHJpY2luZy1jYXJkLmZlYXR1cmVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tZmx1aWQtc2hhZG93LXhsKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmcmVlbGFuY2VyXCJdIC5mbHVpZC1wcmljaW5nLWNhcmQuZmVhdHVyZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdNb3N0IFBvcHVsYXInO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMXJlbTtcbiAgcmlnaHQ6IC0ycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAwLjVyZW0gM3JlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQteHMpO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG4vKiBQcmludCBvcHRpbWl6YXRpb25zICovXG5AbWVkaWEgcHJpbnQge1xuICBbZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLWludm9pY2UsXG4gIFtkYXRhLXRoZW1lPVwiZnJlZWxhbmNlclwiXSAuZmx1aWQtZXN0aW1hdGUge1xuICAgIGJvcmRlci1jb2xvcjogIzY2NiAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBbZGF0YS10aGVtZT1cImZyZWVsYW5jZXJcIl0gLmZsdWlkLWludm9pY2UtbG9nbyB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgfVxufS8qKlxuICogVGhlIEZsdWlkIFRoZW1lIC0gQWdlbmN5IFRoZW1lXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUgQUdJTEUgTExDXG4gKiBBdXRob3I6IE5laWwgUy4gV2hpdGVcbiAqIFxuICogVGVhbC9XZWxsbmVzcyB0aGVtZSBmb3IgYWdlbmNpZXMsIGNvbnN1bHRhbnRzLCBhbmQgd2VsbG5lc3MgcHJvZmVzc2lvbmFsc1xuICogUHJpbWFyeTogIzE0YjhhNiAodGVhbC01MDApXG4gKiBGb2N1czogUHJvZmVzc2lvbmFsLCBjYWxtLCB0cnVzdHdvcnRoeSBhcHBlYXJhbmNlIHdpdGggYXBwb2ludG1lbnQgY29tcG9uZW50c1xuICovXG5cbi8qIEFnZW5jeSBUaGVtZSAtIFRlYWwvV2VsbG5lc3MgKi9cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIHtcbiAgLyogQ29yZSBicmFuZCBjb2xvcnMgKi9cbiAgLS1mbHVpZC1icmFuZDogIzE0YjhhNjtcbiAgLS1mbHVpZC1icmFuZC1kYXJrOiAjMGY3NjZlO1xuICAtLWZsdWlkLWJyYW5kLWxpZ2h0OiAjMmRkNGJmO1xuICBcbiAgLyogU2VtYW50aWMgY29sb3JzICovXG4gIC0tZmx1aWQtY29sb3ItcHJpbWFyeTogIzE0YjhhNjtcbiAgLS1mbHVpZC1jb2xvci1wcmltYXJ5LWhvdmVyOiAjMGY3NjZlO1xuICAtLWZsdWlkLWNvbG9yLWFjY2VudDogIzA4OTFiMjtcbiAgLS1mbHVpZC1jb2xvci1zdWNjZXNzOiAjMDU5NjY5O1xuICAtLWZsdWlkLWNvbG9yLXdhcm5pbmc6ICNkOTc3MDY7XG4gIC0tZmx1aWQtY29sb3ItZGFuZ2VyOiAjZGMyNjI2O1xuICAtLWZsdWlkLWNvbG9yLWluZm86ICMwMjg0Yzc7XG4gIFxuICAvKiBUeXBvZ3JhcGh5IC0gUHJvZmVzc2lvbmFsLCBjbGVhbiBmb250cyAqL1xuICAtLWZsdWlkLWZvbnQtc2FuczogJ0ludGVyJywgJ1NvdXJjZSBTYW5zIFBybycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgXG4gIC8qIFNvZnQsIHByb2Zlc3Npb25hbCBzaGFkb3dzIHdpdGggdGVhbCBoaW50cyAqL1xuICAtLWZsdWlkLXNoYWRvdy1zbTogMCAxcHggM3B4IDAgcmdiYSgyMCwgMTg0LCAxNjYsIDAuMSksIDAgMXB4IDJweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLS1mbHVpZC1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjEpLCAwIDJweCA0cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC0tZmx1aWQtc2hhZG93LWxnOiAwIDEwcHggMTVweCAtM3B4IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjEpLCAwIDRweCA2cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC0tZmx1aWQtc2hhZG93LXhsOiAwIDIwcHggMjVweCAtNXB4IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjEpLCAwIDhweCAxMHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBcbiAgLyogU29mdGVyIGJhY2tncm91bmQgdG9uZXMgKi9cbiAgLS1mbHVpZC1jb2xvci1iZy1hbHQ6ICNmMGZkZmE7XG4gIC0tZmx1aWQtY29sb3Itc3VyZmFjZTogI2ZmZmZmZjtcbn1cblxuLyogRGFyayB0aGVtZSBvdmVycmlkZSBmb3IgYWdlbmN5ICovXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXVtkYXRhLXRoZW1lLW1vZGU9XCJkYXJrXCJdIHtcbiAgLS1mbHVpZC1jb2xvci1wcmltYXJ5OiAjMmRkNGJmO1xuICAtLWZsdWlkLWNvbG9yLXByaW1hcnktaG92ZXI6ICMxNGI4YTY7XG4gIC0tZmx1aWQtY29sb3ItYmctYWx0OiAjMTM0ZTRhO1xufVxuXG4vKiBBZ2VuY3ktc3BlY2lmaWMgY29tcG9uZW50IGVuaGFuY2VtZW50cyAqL1xuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWludm9pY2Uge1xuICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1sZyk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1pbnZvaWNlLWxvZ28ge1xuICBjb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmx1aWQtdGV4dC0yeGwpO1xufVxuXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KSAwJSwgdmFyKC0tZmx1aWQtY29sb3ItYWNjZW50KSAxMDAlKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLWxnKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZmx1aWQtYnJhbmQtZGFyaykgMCUsICMwZTc0OTAgMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDIwLCAxODQsIDE2NiwgMC4yNSk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLWxnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMCwgMTg0LCAxNjYsIDAuMSk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tZmx1aWQtc2hhZG93LWxnKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4vKiBQcm9mZXNzaW9uYWwgdGFibGUgc3R5bGluZyAqL1xuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLXRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YwZmRmYSAwJSwgI2NjZmJmMSAxMDAlKTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tZmx1aWQtYnJhbmQtZGFyayk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC10YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjA1KTtcbn1cblxuLyogU2VydmljZSBjYXJkcyB3aXRoIHByb2Zlc3Npb25hbCBzdHlsaW5nICovXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtc2VydmljZS1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLWxnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItYm9yZGVyKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWZsdWlkLXRyYW5zaXRpb24pO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mbHVpZC1jb2xvci1zdXJmYWNlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLXNlcnZpY2UtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggLTVweCByZ2JhKDIwLCAxODQsIDE2NiwgMC4yKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xufVxuXG4vKiBFc3RpbWF0ZS9wcm9wb3NhbCBzdHlsaW5nICovXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtZXN0aW1hdGUge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWZsdWlkLXJhZGl1cy1sZykgdmFyKC0tZmx1aWQtcmFkaXVzLWxnKSAwO1xufVxuXG4vKiBQcm9mZXNzaW9uYWwgYmFkZ2Ugc3R5bGluZyAqL1xuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWJhZGdlLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjE1KTtcbn1cblxuLyogQ2FsbSBhbGVydCBzdHlsaW5nICovXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtYWxlcnQtaW5mbyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMiwgMTMyLCAxOTksIDAuMDgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIsIDEzMiwgMTk5LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mbHVpZC1yYWRpdXMtbGcpO1xuICBjb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItaW5mbyk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1hbGVydC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZDogcmdiYSg1LCAxNTAsIDEwNSwgMC4wOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNSwgMTUwLCAxMDUsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1sZyk7XG4gIGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1zdWNjZXNzKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWFsZXJ0LXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIxNywgMTE5LCA2LCAwLjA4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTcsIDExOSwgNiwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLWxnKTtcbiAgY29sb3I6IHZhcigtLWZsdWlkLWNvbG9yLXdhcm5pbmcpO1xufVxuXG4vKiBQcm9mZXNzaW9uYWwgZm9ybSBzdHlsaW5nICovXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtaW5wdXQsXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtdGV4dGFyZWEsXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtc2VsZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLWxnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItYm9yZGVyKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWZsdWlkLXRyYW5zaXRpb24pO1xufVxuXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtaW5wdXQ6Zm9jdXMsXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtdGV4dGFyZWE6Zm9jdXMsXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjA4KTtcbn1cblxuLyogQXBwb2ludG1lbnQgYm9va2luZyBjb21wb25lbnQgLSBzcGVjaWZpYyB0byBhZ2VuY3kgdGhlbWUgKi9cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1hcHBvaW50bWVudC1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmx1aWQtY29sb3Itc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAsIDE4NCwgMTY2LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLXhsKTtcbiAgcGFkZGluZzogdmFyKC0tZmx1aWQtc3BhY2UteGwpO1xuICBib3gtc2hhZG93OiB2YXIoLS1mbHVpZC1zaGFkb3ctc20pO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tZmx1aWQtdHJhbnNpdGlvbik7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1hcHBvaW50bWVudC1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tZmx1aWQtc2hhZG93LW1kKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWFwcG9pbnRtZW50LXRpbWUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAxODQsIDE2NiwgMC4xKTtcbiAgY29sb3I6IHZhcigtLWZsdWlkLWJyYW5kLWRhcmspO1xuICBwYWRkaW5nOiB2YXIoLS1mbHVpZC1zcGFjZS1zbSkgdmFyKC0tZmx1aWQtc3BhY2UtbWQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mbHVpZC1yYWRpdXMtZnVsbCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmx1aWQtdGV4dC1zbSk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1hcHBvaW50bWVudC1zdGF0dXMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1mbHVpZC1zcGFjZS14cyk7XG4gIHBhZGRpbmc6IHZhcigtLWZsdWlkLXNwYWNlLXhzKSB2YXIoLS1mbHVpZC1zcGFjZS1zbSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1mdWxsKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mbHVpZC10ZXh0LXhzKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWFwcG9pbnRtZW50LXN0YXR1cy5jb25maXJtZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDUsIDE1MCwgMTA1LCAwLjEpO1xuICBjb2xvcjogdmFyKC0tZmx1aWQtY29sb3Itc3VjY2Vzcyk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1hcHBvaW50bWVudC1zdGF0dXMucGVuZGluZyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjE3LCAxMTksIDYsIDAuMSk7XG4gIGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci13YXJuaW5nKTtcbn1cblxuLyogUHJvZmVzc2lvbmFsIHByaWNpbmcgdGFibGVzICovXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtcHJpY2luZy10YWJsZSB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy14bCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IHZhcigtLWZsdWlkLXNoYWRvdy1sZyk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1wcmljaW5nLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpIDAlLCB2YXIoLS1mbHVpZC1jb2xvci1hY2NlbnQpIDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IHZhcigtLWZsdWlkLXNwYWNlLXhsKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtcHJpY2luZy1mZWF0dXJlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tZmx1aWQtc3BhY2Utc20pIHZhcigtLWZsdWlkLXNwYWNlLW1kKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWZsdWlkLWNvbG9yLWJvcmRlci1saWdodCk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1wcmljaW5nLWZlYXR1cmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICfinJMnO1xuICBjb2xvcjogdmFyKC0tZmx1aWQtY29sb3Itc3VjY2Vzcyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZsdWlkLXNwYWNlLXNtKTtcbn1cblxuLyogVGVhbSBtZW1iZXIgY2FyZHMgKi9cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC10ZWFtLWNhcmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZsdWlkLWNvbG9yLXN1cmZhY2UpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mbHVpZC1yYWRpdXMteGwpO1xuICBwYWRkaW5nOiB2YXIoLS1mbHVpZC1zcGFjZS14bCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWZsdWlkLXNoYWRvdy1zbSk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS1mbHVpZC10cmFuc2l0aW9uKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLXRlYW0tY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IHZhcigtLWZsdWlkLXNoYWRvdy1sZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLXRlYW0tYXZhdGFyIHtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLWZ1bGwpO1xuICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgbWFyZ2luOiAwIGF1dG8gdmFyKC0tZmx1aWQtc3BhY2UtbWQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtdGVhbS1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1mbHVpZC1zcGFjZS14cyk7XG59XG5cbltkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC10ZWFtLXJvbGUge1xuICBjb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItdGV4dC1saWdodCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmx1aWQtdGV4dC1zbSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWZsdWlkLXNwYWNlLW1kKTtcbn1cblxuLyogQ2xpZW50IHRlc3RpbW9uaWFscyAqL1xuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLXRlc3RpbW9uaWFsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmx1aWQtY29sb3ItYmctYWx0KTtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgcGFkZGluZzogdmFyKC0tZmx1aWQtc3BhY2UtbGcpO1xuICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWZsdWlkLXJhZGl1cy1sZykgdmFyKC0tZmx1aWQtcmFkaXVzLWxnKSAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLXRlc3RpbW9uaWFsOjpiZWZvcmUge1xuICBjb250ZW50OiAnXCInO1xuICBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQtNHhsKTtcbiAgY29sb3I6IHZhcigtLWZsdWlkLWNvbG9yLXByaW1hcnkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogdmFyKC0tZmx1aWQtc3BhY2Utc20pO1xuICBsZWZ0OiB2YXIoLS1mbHVpZC1zcGFjZS1tZCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5bZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtdGVzdGltb25pYWwtYXV0aG9yIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZmx1aWQtc3BhY2UtbWQpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbn1cblxuLyogUHJpbnQgb3B0aW1pemF0aW9ucyAqL1xuQG1lZGlhIHByaW50IHtcbiAgW2RhdGEtdGhlbWU9XCJhZ2VuY3lcIl0gLmZsdWlkLWludm9pY2UsXG4gIFtkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1lc3RpbWF0ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjY2ICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIFtkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1pbnZvaWNlLWxvZ28ge1xuICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIFtkYXRhLXRoZW1lPVwiYWdlbmN5XCJdIC5mbHVpZC1hcHBvaW50bWVudC10aW1lLFxuICBbZGF0YS10aGVtZT1cImFnZW5jeVwiXSAuZmx1aWQtYXBwb2ludG1lbnQtc3RhdHVzIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzY2NiAhaW1wb3J0YW50O1xuICB9XG59Il19 */