@charset "UTF-8";
/**
 * Master Icon Mixin
 * Creates a colorable icon using masks.
 * Usage: @include icon('Arrow_Large_Right', $copper, 24px);
 */
/**
 * Clearfix
 * Standard utility for resolving floating parent container heights.
 */
/**
 * Fonts registry
 * Adobe Typekit fonts are enqueued via functions.php
 * Only use this file for manually added local fonts (.woff2)
 */
/*
@font-face {
  font-family: 'LocalFont';
  src: url('../fonts/local-font.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
*/
/**
 * Global Reset & Normalization
 * Sets the base box-sizing and image responsiveness rules.
 */
html,
body {
  margin: 0;
  padding: 0;
  overflow-x: clip;
  box-sizing: border-box;
  font-smoothing: antialiased;
}

/**
 * Universal Box Sizing
 * Ensures all elements inherit the box-sizing rule from the HTML root.
 */
*,
*::before,
*::after {
  box-sizing: inherit;
}

/**
 * Media Fluidity
 * Ensures images and other media elements do not overflow their containers.
 */
img {
  max-width: 100%;
  height: auto;
}

p {
  margin: 0;
  padding: 0;
}

/**
 * Corvant Typography System
 * Configures global text scaling, heading resets, and utility classes.
 */
/**
 * Base Body Typography
 * Standard font family, size, and normalization for the document body.
 */
body {
  color: #000000;
  font-size: 16px;
  line-height: 1.2;
  font-smoothing: antialiased;
  background-color: #FFFFFF;
  font-family: "nitti-grotesk", sans-serif;
}

a {
  color: #000000;
}
a:hover .elementor-icon-list-text {
  color: #B15933 !important;
}

/**
 * Universal Heading Reset
 * Standardizes branded typography for all heading levels and utility classes.
 */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.h7,
.h8,
.display-1,
.elementor-heading-title {
  color: #0A2842;
  font-weight: 700;
  font-family: "zuume", sans-serif;
}

/**
 * Desktop Scale
 * High-fidelity typography scaling for large screens.
 */
.display-1, .display-1 .elementor-heading-title {
  font-size: 132px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
}

h1, h1 .elementor-heading-title,
.h1,
.h1 .elementor-heading-title,
.elementor-size-xl,
.elementor-size-xl .elementor-heading-title {
  font-size: 120px;
  line-height: 0.9 !important;
  letter-spacing: 0.02em;
}

h2, h2 .elementor-heading-title,
.h2,
.h2 .elementor-heading-title,
.elementor-size-large,
.elementor-size-large .elementor-heading-title {
  font-size: 96px;
  line-height: 0.9 !important;
  letter-spacing: 0.02em;
}

h3, h3 .elementor-heading-title,
.h3,
.h3 .elementor-heading-title {
  font-size: 88px;
  line-height: 0.875 !important;
  letter-spacing: 0.02em;
}

h4, h4 .elementor-heading-title,
.h4,
.h4 .elementor-heading-title {
  font-size: 76px;
  line-height: 0.8947 !important;
  letter-spacing: 0.02em;
}

h5, h5 .elementor-heading-title,
.h5,
.h5 .elementor-heading-title,
.elementor-size-medium,
.elementor-size-medium .elementor-heading-title {
  font-size: 64px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
}

h6, h6 .elementor-heading-title,
.h6,
.h6 .elementor-heading-title,
.elementor-size-small,
.elementor-size-small .elementor-heading-title {
  font-size: 48px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
  font-weight: 400;
}

.h7, .h7 .elementor-heading-title {
  font-size: 48px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
  font-weight: 700;
}

.h8, .h8 .elementor-heading-title {
  font-size: 32px;
  line-height: 1.1 !important;
  letter-spacing: 0;
  font-weight: 400;
}

.subhead-l, .subhead-l .elementor-heading-title {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: 0;
  font-weight: 400;
  font-family: "nitti-grotesk", sans-serif;
  text-transform: none;
}

/**
 * Mobile Scale
 * Optimized typography adjustments for small screens (768px and below).
 */
@media (max-width: 768px) {
  .display-1, .display-1 .elementor-heading-title {
    font-size: 76px;
    line-height: 1;
  }
  h1, h1 .elementor-heading-title,
  .h1,
  .h1 .elementor-heading-title,
  .elementor-size-xl,
  .elementor-size-xl .elementor-heading-title {
    font-size: 64px;
    line-height: 1;
    letter-spacing: 0.02em;
  }
  h2, h2 .elementor-heading-title,
  .h2,
  .h2 .elementor-heading-title,
  .elementor-size-large,
  .elementor-size-large .elementor-heading-title {
    font-size: 48px;
    line-height: 1;
    letter-spacing: 0.02em;
  }
  h3, h3 .elementor-heading-title,
  .h3,
  .h3 .elementor-heading-title {
    font-size: 48px;
    line-height: 1.1;
    letter-spacing: 0.02em;
  }
  h4, h4 .elementor-heading-title,
  .h4,
  .h4 .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: 0.02em;
  }
  h5, h5 .elementor-heading-title,
  .h5,
  .h5 .elementor-heading-title,
  .elementor-size-medium,
  .elementor-size-medium .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
  }
  h6, h6 .elementor-heading-title,
  .h6,
  .h6 .elementor-heading-title,
  .elementor-size-small,
  .elementor-size-small .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: 0.03em;
  }
  .h7, .h7 .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
  }
  .h8, .h8 .elementor-heading-title,
  .subhead-l,
  .subhead-l .elementor-heading-title {
    font-size: 22px;
    line-height: 1.2;
  }
  .body-l, .body-l .elementor-heading-title, .body-l p, .body-l span {
    font-size: 18px;
  }
  .body-m, .body-m .elementor-heading-title, .body-m p, .body-m span {
    font-size: 16px;
  }
}
/**
 * Text Utility Classes
 * Standard body text variations for different content needs.
 * Target both the class and internal Elementor heading tags for inheritance.
 */
.body-l, .body-l .elementor-heading-title, .body-l h1, .body-l h2, .body-l h3, .body-l h4, .body-l h5, .body-l h6, .body-l p, .body-l span {
  font-size: 22px;
  line-height: 1.2;
  text-transform: none;
}

.body-m, .body-m .elementor-heading-title, .body-m h1, .body-m h2, .body-m h3, .body-m h4, .body-m h5, .body-m h6, .body-m p, .body-m span {
  font-size: 20px;
  line-height: 1.2;
  text-transform: none;
}

.body-s, .body-s .elementor-heading-title, .body-s h1, .body-s h2, .body-s h3, .body-s h4, .body-s h5, .body-s h6, .body-s p, .body-s span {
  font-size: 18px;
  line-height: 1.2;
  text-transform: none;
}

.body-xs, .body-xs .elementor-heading-title, .body-xs h1, .body-xs h2, .body-xs h3, .body-xs h4, .body-xs h5, .body-xs h6, .body-xs p, .body-xs span {
  font-size: 16px;
  line-height: 1.2;
  text-transform: none;
}

.caption, .caption .elementor-heading-title, .caption p, .caption span {
  font-size: 14px;
  line-height: 1.3;
  text-transform: none;
}

/**
 * Font Weight Utilities
 */
.fw-regular {
  font-weight: 400;
}

.fw-medium {
  font-weight: 500;
}

.fw-bold {
  font-weight: 700;
}

/**
 * Specialized Branded Elements
 * Contextual styles for eyebrows and hero subtitles.
 */
.eyebrow, .eyebrow .elementor-heading-title,
.hero-intro,
.hero-intro .elementor-heading-title {
  margin-bottom: 15px;
  color: #0D3E70;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
  display: block;
  text-transform: uppercase;
  font-family: "zuume", sans-serif;
}

@media (max-width: 768px) {
  .eyebrow, .eyebrow .elementor-heading-title,
  .hero-intro,
  .hero-intro .elementor-heading-title {
    font-size: 16px;
  }
}
/**
 * Corvant Icon System
 * Base styles for SVG icons used as background masks.
 * Use the 'icon' mixin for component-specific icon implementation.
 */
/**
 * Global Icon Helper Class
 * Targets any element with a class starting with 'icon-' for base mask logic.
 */
[class^=icon-],
[class*=" icon-"] {
  width: 1em;
  height: 1em;
  display: inline-block;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  vertical-align: middle;
  background-color: currentColor;
}

/**
 * Corvant Animation Styles
 * Keyframes and utility classes for the site's motion system.
 */
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideLeft {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes slideRight {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes scaleUp {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes loaderLogoFadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
[class*=animate-] {
  opacity: 0;
  --animation-delay: 0ms;
}
.elementor-editor-active [class*=animate-], .elementor-edit-mode [class*=animate-] {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

.animate-slide-up.is-animated, .elementor-active .animate-slide-up {
  animation: slideUp 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-slide-down.is-animated, .elementor-active .animate-slide-down {
  animation: slideDown 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-slide-left.is-animated, .elementor-active .animate-slide-left {
  animation: slideLeft 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-slide-right.is-animated, .elementor-active .animate-slide-right {
  animation: slideRight 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-fade-in.is-animated, .elementor-active .animate-fade-in {
  animation: fadeIn 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-scale-up.is-animated, .elementor-active .animate-scale-up {
  animation: scaleUp 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.delay-100 {
  --animation-delay: 100ms !important;
}

.delay-150 {
  --animation-delay: 150ms !important;
}

.delay-200 {
  --animation-delay: 200ms !important;
}

.delay-250 {
  --animation-delay: 250ms !important;
}

.delay-300 {
  --animation-delay: 300ms !important;
}

.delay-350 {
  --animation-delay: 350ms !important;
}

.delay-400 {
  --animation-delay: 400ms !important;
}

.delay-500 {
  --animation-delay: 500ms !important;
}

.delay-600 {
  --animation-delay: 600ms !important;
}

.delay-700 {
  --animation-delay: 700ms !important;
}

.delay-800 {
  --animation-delay: 800ms !important;
}

.delay-900 {
  --animation-delay: 900ms !important;
}

.delay-1000 {
  --animation-delay: 1000ms !important;
}

.loader-curtain {
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  pointer-events: none;
  will-change: transform;
  transition: transform 1.2s cubic-bezier(0.6, 0, 0.2, 1);
  position: fixed !important;
  background-color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loader-curtain.is-hidden {
  transform: translateY(-100%);
}
.loader-curtain .loader-content {
  text-align: center;
}
.loader-curtain .loader-logo {
  width: 250px;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  animation: loaderLogoFadeIn 0.8s cubic-bezier(0.6, 0, 0.2, 1) forwards 0.3s;
}

body.is-loading {
  overflow: hidden;
}

.js-interactive-sync .elementor-widget-image {
  transition: opacity 0.3s ease-out;
}
.js-interactive-sync .elementor-widget-image.is-active {
  animation: fadeIn 0.4s ease-out forwards;
}

.js-curtain-image-box {
  overflow: hidden;
  position: relative;
}
.js-curtain-image-box img {
  width: 100%;
  height: auto;
  display: block;
}
.js-curtain-image-box .curtain-img {
  width: 100%;
  height: 100%;
  inset: 0;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
}
.js-curtain-image-box .curtain-down {
  animation: curtainDown 0.65s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}
.js-curtain-image-box .curtain-up {
  animation: curtainUp 0.65s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

@keyframes curtainDown {
  from {
    clip-path: inset(0 0 100% 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes curtainUp {
  from {
    clip-path: inset(100% 0 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
/* =========================================
   Elementor Mega Menu (Header)
   ========================================= */
/* 1. Mobile Menu State (Global Body Class) */
body.menu-open {
  overflow: hidden;
}

/* 2. Mega Menu Component */
.elementor-widget-n-menu {
  /* General Styles */
}
.elementor-widget-n-menu svg {
  fill: transparent !important;
}
.elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-title-container {
  width: 95%;
}
.elementor-widget-n-menu .e-n-menu-title {
  border-bottom: 3px solid transparent;
}
.elementor-widget-n-menu .e-n-menu-title .e-n-menu-title-text {
  cursor: pointer;
}
.elementor-widget-n-menu .e-n-menu-title:has(button[aria-expanded=true]) {
  border-bottom: 3px solid var(--e-global-color-85e16a2);
}
.elementor-widget-n-menu {
  /* Active State */
}
.elementor-widget-n-menu .e-n-menu-title.corvant-menu-active {
  border-style: solid !important;
  border-width: 0px 0px 3px 0px !important;
  border-color: var(--e-global-color-85e16a2) !important;
}
.elementor-widget-n-menu {
  /* Desktop Styles */
}
@media (min-width: 1025px) {
  .elementor-widget-n-menu {
    /* Global shadow for all dropdown menus (Capabilities, Markets, etc.) */
  }
  .elementor-widget-n-menu .e-n-menu-content > .e-con > .e-con-inner {
    box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.15) !important;
  }
}
.elementor-widget-n-menu {
  /* Mobile Styles & Animations */
}
@media (max-width: 1024px) {
  .elementor-widget-n-menu .mobile-contact-wrapper {
    margin-top: 40px;
    padding: 0 16px;
  }
  .elementor-widget-n-menu .mobile-contact-wrapper a.elementor-button {
    width: 100%;
  }
  .elementor-widget-n-menu {
    /* Main Menu Animation */
  }
  .elementor-widget-n-menu .e-n-menu-wrapper {
    display: flex !important;
    flex-direction: column !important;
    background-color: var(--e-global-color-7b34698) !important;
    height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-15px);
    transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0s linear 0.2s, height 0s linear 0.2s, padding 0s linear 0.2s !important;
  }
  .elementor-widget-n-menu:has(button.e-n-menu-toggle[aria-expanded=true]) .e-n-menu-wrapper {
    height: 100vh !important;
    padding: 32px 0 160px 0 !important;
    overflow-y: auto !important;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0s linear 0s, height 0s linear 0s, padding 0s linear 0s !important;
  }
  .elementor-widget-n-menu {
    /* Submenu Animation */
  }
  .elementor-widget-n-menu .e-n-menu-content > .e-con {
    display: flex !important;
    height: auto !important;
    overflow: visible !important;
  }
  .elementor-widget-n-menu .e-n-menu-content {
    height: auto !important;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden !important;
    transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease-out, visibility 0s linear 0.25s !important;
  }
  .elementor-widget-n-menu .e-n-menu-item:has(button.e-n-menu-dropdown-icon[aria-expanded=true]) .e-n-menu-content {
    max-height: 3000px;
    opacity: 1;
    visibility: visible;
    overflow: visible !important;
    transition: max-height 0.6s ease-in-out, opacity 0.3s ease-in-out, visibility 0s linear 0s !important;
  }
}
@media (max-width: 768px) {
  .elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-title-container {
    padding-left: 16px;
  }
  .elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-dropdown-icon[aria-expanded=true] svg path {
    stroke: var(--e-global-color-85e16a2);
  }
}
@media (max-width: 570px) {
  .elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-title-container {
    width: 90%;
  }
}

/**
 * Corvant Button System
 * Implements high-fidelity interactive states and brand-compliant animations.
 */
/**
 * Base Button Styles
 * Configures global typography, transitions, and interactive scale transforms.
 */
.elementor-widget-button .elementor-button,
.elementor-field-type-submit .elementor-button {
  font-weight: 700;
  border: none;
  border-radius: 0;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent !important;
}
.elementor-widget-button .elementor-button::before,
.elementor-field-type-submit .elementor-button::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.elementor-widget-button .elementor-button .elementor-button-content-wrapper,
.elementor-widget-button .elementor-button .elementor-button-text,
.elementor-field-type-submit .elementor-button .elementor-button-content-wrapper,
.elementor-field-type-submit .elementor-button .elementor-button-text {
  position: relative;
  z-index: 1;
}
.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus, .elementor-widget-button .elementor-button:active,
.elementor-field-type-submit .elementor-button:hover,
.elementor-field-type-submit .elementor-button:focus,
.elementor-field-type-submit .elementor-button:active {
  transform: none !important;
}
.elementor-widget-button .elementor-button:hover::before, .elementor-widget-button .elementor-button:focus::before,
.elementor-field-type-submit .elementor-button:hover::before,
.elementor-field-type-submit .elementor-button:focus::before {
  transform: scale(0.95);
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.elementor-widget-button .elementor-button:active::before,
.elementor-field-type-submit .elementor-button:active::before {
  transform: scale(0.91);
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/**
 * Button Variants
 * Mappings for Solid Light, Solid Dark, and Text Gold button types.
 */
.elementor-button-solid-light .elementor-button,
.elementor-field-type-submit .elementor-button {
  color: #000000;
}
.elementor-button-solid-light .elementor-button::before,
.elementor-field-type-submit .elementor-button::before {
  background-color: #EEEAE3;
}
.elementor-button-solid-light .elementor-button:hover::before, .elementor-button-solid-light .elementor-button:focus::before,
.elementor-field-type-submit .elementor-button:hover::before,
.elementor-field-type-submit .elementor-button:focus::before {
  background-color: #DDD5C6;
}

.elementor-button-solid-light.elementor-button-size-small .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-light.elementor-button-size-medium .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-light.elementor-button-size-large .elementor-button {
  padding: 0 16px;
}

.elementor-button-solid-dark .elementor-button {
  color: #FFFFFF;
}
.elementor-button-solid-dark .elementor-button::before {
  background-color: #000000;
}
.elementor-button-solid-dark .elementor-button:hover::before, .elementor-button-solid-dark .elementor-button:focus::before {
  background-color: #000000;
}
.elementor-button-solid-dark .elementor-button .elementor-button-icon i,
.elementor-button-solid-dark .elementor-button .elementor-button-icon svg {
  color: #E08F35 !important;
  fill: #E08F35 !important;
}
.elementor-button-solid-dark.elementor-button-size-small .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-dark.elementor-button-size-medium .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-dark.elementor-button-size-large .elementor-button {
  padding: 0 16px;
}

.elementor-button-text-gold .elementor-button {
  height: 30px !important;
  padding: 0 !important;
  color: #000000;
  border-bottom: 2px solid #B15933;
}
.elementor-button-text-gold .elementor-button::before {
  display: none;
}
.elementor-button-text-gold .elementor-button:hover, .elementor-button-text-gold .elementor-button:focus {
  color: #000000;
  border-bottom-color: #B15933;
}
.elementor-button-text-gold .elementor-button:active {
  color: #000000;
  border-bottom-color: #B15933;
}
.btn-on-dark .elementor-button-text-gold .elementor-button {
  color: #FFFFFF;
}
.btn-on-dark .elementor-button-text-gold .elementor-button:hover {
  color: #EEEAE3;
}
.btn-on-dark .elementor-button-text-gold .elementor-button:active {
  color: #DDD5C6;
}
.elementor-button-text-gold .elementor-button .elementor-button-icon i,
.elementor-button-text-gold .elementor-button .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

/**
 * Button Sizes
 * Responsive sizing logic for small, medium, and large variants.
 */
.elementor-button-size-small .elementor-button,
.elementor-button.elementor-size-sm {
  height: 38px;
  font-size: 18px;
  padding: 0 16px;
}
.elementor-button-size-small .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon i, .elementor-button-size-small .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon svg,
.elementor-button.elementor-size-sm:not(.elementor-button-text-gold) .elementor-button-icon i,
.elementor-button.elementor-size-sm:not(.elementor-button-text-gold) .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

.elementor-button-size-small.elementor-button-text-gold .elementor-button {
  font-size: 16px;
}

.elementor-button-size-medium .elementor-button,
.elementor-button.elementor-size-md {
  height: 44px;
  font-size: 18px;
  padding: 0 16px;
}
.elementor-button-size-medium .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon i, .elementor-button-size-medium .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon svg,
.elementor-button.elementor-size-md:not(.elementor-button-text-gold) .elementor-button-icon i,
.elementor-button.elementor-size-md:not(.elementor-button-text-gold) .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

.elementor-button-size-medium.elementor-button-text-gold .elementor-button {
  font-size: 18px;
}

.elementor-button-size-large .elementor-button,
.elementor-button.elementor-size-lg {
  height: 50px;
  font-size: 20px;
  padding: 0 16px;
}
.elementor-button-size-large .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon i, .elementor-button-size-large .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon svg,
.elementor-button.elementor-size-lg:not(.elementor-button-text-gold) .elementor-button-icon i,
.elementor-button.elementor-size-lg:not(.elementor-button-text-gold) .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

.elementor-button-size-large.elementor-button-text-gold .elementor-button {
  font-size: 20px;
}

/**
 * Icon & Arrow Animations
 * Defines the 'arrowReenter' keyframes and icon coloring logic.
 */
@keyframes arrowHover {
  0% {
    transform: translateX(0);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  50% {
    transform: translateX(60px);
    animation-timing-function: step-end;
  }
  50.001% {
    transform: translateX(-60px);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes arrowLeave {
  0% {
    transform: translateX(0);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  50% {
    transform: translateX(-60px);
    animation-timing-function: step-end;
  }
  50.001% {
    transform: translateX(60px);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  100% {
    transform: translateX(0);
  }
}
.elementor-button-content-wrapper {
  gap: 30px;
  display: flex;
  align-items: center;
}

.elementor-button-icon {
  display: flex;
  overflow: hidden;
  transition: transform 0.4s ease;
}
.elementor-button-icon i path,
.elementor-button-icon i line,
.elementor-button-icon i polyline,
.elementor-button-icon i rect,
.elementor-button-icon i circle,
.elementor-button-icon svg path,
.elementor-button-icon svg line,
.elementor-button-icon svg polyline,
.elementor-button-icon svg rect,
.elementor-button-icon svg circle {
  fill: transparent !important;
  stroke: currentColor !important;
}

.elementor-button:hover .elementor-button-icon i,
.elementor-button:hover .elementor-button-icon svg,
.elementor-button:focus .elementor-button-icon i,
.elementor-button:focus .elementor-button-icon svg {
  animation: arrowHover 0.6s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

.elementor-button.has-hovered:not(:hover):not(:focus) .elementor-button-icon i,
.elementor-button.has-hovered:not(:hover):not(:focus) .elementor-button-icon svg {
  animation: arrowLeave 0.6s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

.inquiry-form .elementor-field-type-submit button svg {
  width: 32px;
  height: auto;
}

/**
 * Forms & Inputs Component
 * Professional form styling for standard inputs, selects, and textareas.
 */
/**
 * Global Label Style
 * Standardizes typography for all form labels and required marks.
 */
label,
.form-label {
  margin-bottom: 8px;
  color: #000000;
  font-size: 14px;
  font-weight: 700;
  display: block;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
}
label span,
.form-label span {
  color: #B15933;
}

/**
 * Base Input Styles
 * Covers text, email, tel, password, and textareas with brand-compliant states.
 */
input[type=text],
input[type=email],
input[type=tel],
input[type=password],
textarea,
select {
  width: 100%;
  height: 56px;
  padding: 12px 16px;
  color: #0A2842;
  font-size: 16px;
  outline: none;
  box-sizing: border-box;
  border: 1px solid transparent;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  background-color: #EEEAE3;
  font-family: "nitti-grotesk", sans-serif;
}
input[type=text]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=password]::-moz-placeholder, textarea::-moz-placeholder, select::-moz-placeholder {
  color: rgba(10, 40, 66, 0.5);
}
input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
input[type=password]::placeholder,
textarea::placeholder,
select::placeholder {
  color: rgba(10, 40, 66, 0.5);
}
input[type=text]:hover, input[type=text]:focus,
input[type=email]:hover,
input[type=email]:focus,
input[type=tel]:hover,
input[type=tel]:focus,
input[type=password]:hover,
input[type=password]:focus,
textarea:hover,
textarea:focus,
select:hover,
select:focus {
  border: 1px solid #0D3E70;
  background-color: #DDD5C6;
}
input[type=text].is-error, .wpcf7-not-valid input[type=text],
input[type=email].is-error,
.wpcf7-not-valid input[type=email],
input[type=tel].is-error,
.wpcf7-not-valid input[type=tel],
input[type=password].is-error,
.wpcf7-not-valid input[type=password],
textarea.is-error,
.wpcf7-not-valid textarea,
select.is-error,
.wpcf7-not-valid select {
  border-color: #D83B3B;
}

/**
 * Dropdown Menus (Select)
 * Custom arrow styling using themed SVG icons for consistent UI.
 */
select {
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%230A2842' stroke-width='2'/%3E%3C/svg%3E");
  background-position: right 16px center;
  background-repeat: no-repeat;
}
select option {
  color: #0A2842;
  background-color: #EEEAE3;
}

/**
 * Dark Form Modifier
 * High-fidelity variant for dark backgrounds using translucent elements.
 */
.form--dark label {
  color: #FFFFFF;
}
.form--dark input,
.form--dark textarea,
.form--dark select {
  color: #FFFFFF;
  border: 1px solid transparent;
  background-color: rgba(255, 255, 255, 0.1);
}
.form--dark input:hover, .form--dark input:focus,
.form--dark textarea:hover,
.form--dark textarea:focus,
.form--dark select:hover,
.form--dark select:focus {
  border: 1px solid #B15933;
  background-color: rgba(255, 255, 255, 0.15);
}
.form--dark input::-moz-placeholder, .form--dark textarea::-moz-placeholder, .form--dark select::-moz-placeholder {
  color: rgba(255, 255, 255, 0.6);
}
.form--dark input::placeholder,
.form--dark textarea::placeholder,
.form--dark select::placeholder {
  color: rgba(255, 255, 255, 0.6);
}
.form--dark select {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
}

/**
 * Custom Checkboxes & Radios
 * Premium brand-compliant toggle elements with copper indicators.
 */
input[type=checkbox],
input[type=radio] {
  width: 24px;
  height: 24px;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: relative;
  border: 2px solid #DDD5C6;
  transition: all 0.2s ease;
  background-color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
input[type=checkbox]:hover,
input[type=radio]:hover {
  border-color: #B15933;
}
input[type=checkbox]:checked,
input[type=radio]:checked {
  border-color: #000000;
  background-color: #000000;
}
input[type=checkbox]:checked::after,
input[type=radio]:checked::after {
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0.5);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  background-color: #B15933;
}
.form--dark input[type=checkbox],
.form--dark input[type=radio] {
  border-color: #FFFFFF;
}
.form--dark input[type=checkbox]:checked,
.form--dark input[type=radio]:checked {
  border-color: #FFFFFF;
  background-color: #FFFFFF;
}

/**
 * Textarea Specific Logic
 * Fixed height and layout adjustments for multi-line inputs.
 */
textarea {
  height: 180px;
  padding: 16px;
  resize: vertical;
}

/**
 * Global Validation Messaging
 * Responsive error typography for automated form validation tools.
 */
.wpcf7-not-valid-tip,
.error-message {
  margin-top: 6px;
  color: #D83B3B;
  font-size: 12px;
  font-weight: 700;
  display: block;
}

/**
 * Privacy Policy Text & Submit Button Layout (Contact Forms)
 */
.inquiry-form .form-privacy-text {
  color: #FFFFFF;
}
.inquiry-form .form-privacy-text a {
  color: #FDC554;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .inquiry-form .form-privacy-text br {
    display: none;
  }
}
.inquiry-form .elementor-field-type-submit {
  gap: 20px;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .inquiry-form .elementor-field-type-submit {
    flex-direction: column;
    align-items: flex-start !important;
  }
}

/**
 * Light Form Variant Modifier
 * Overrides for reusing the form template in light background sections.
 */
.inquiry-form.form-variant-light .elementor-field-group label.elementor-field-label,
.inquiry-form.form-variant-light label.elementor-field-label {
  color: #000000 !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual,
.inquiry-form.form-variant-light .elementor-field-group input[type=text],
.inquiry-form.form-variant-light .elementor-field-group input[type=email],
.inquiry-form.form-variant-light .elementor-field-group input[type=tel],
.inquiry-form.form-variant-light .elementor-field-group input[type=password],
.inquiry-form.form-variant-light .elementor-field-group textarea,
.inquiry-form.form-variant-light .elementor-field-group select,
.inquiry-form.form-variant-light .elementor-field-textual,
.inquiry-form.form-variant-light input,
.inquiry-form.form-variant-light textarea,
.inquiry-form.form-variant-light select {
  color: #000000 !important;
  border: none !important;
  background-color: #EEEAE3 !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=text]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=email]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=tel]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=password]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group textarea::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group select::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-textual::-moz-placeholder, .inquiry-form.form-variant-light input::-moz-placeholder, .inquiry-form.form-variant-light textarea::-moz-placeholder, .inquiry-form.form-variant-light select::-moz-placeholder {
  color: rgba(0, 0, 0, 0.5) !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=text]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=email]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=tel]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=password]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group textarea::placeholder,
.inquiry-form.form-variant-light .elementor-field-group select::placeholder,
.inquiry-form.form-variant-light .elementor-field-textual::placeholder,
.inquiry-form.form-variant-light input::placeholder,
.inquiry-form.form-variant-light textarea::placeholder,
.inquiry-form.form-variant-light select::placeholder {
  color: rgba(0, 0, 0, 0.5) !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual:hover, .inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=text]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=text]:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=email]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=email]:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=tel]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=tel]:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=password]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=password]:focus,
.inquiry-form.form-variant-light .elementor-field-group textarea:hover,
.inquiry-form.form-variant-light .elementor-field-group textarea:focus,
.inquiry-form.form-variant-light .elementor-field-group select:hover,
.inquiry-form.form-variant-light .elementor-field-group select:focus,
.inquiry-form.form-variant-light .elementor-field-textual:hover,
.inquiry-form.form-variant-light .elementor-field-textual:focus,
.inquiry-form.form-variant-light input:hover,
.inquiry-form.form-variant-light input:focus,
.inquiry-form.form-variant-light textarea:hover,
.inquiry-form.form-variant-light textarea:focus,
.inquiry-form.form-variant-light select:hover,
.inquiry-form.form-variant-light select:focus {
  border: none !important;
  background-color: #EEEAE3 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button,
.inquiry-form.form-variant-light button.elementor-button[type=submit] {
  color: #FFFFFF !important;
  background-color: transparent !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button::before,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button::before,
.inquiry-form.form-variant-light button.elementor-button[type=submit]::before {
  content: "" !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: -1 !important;
  display: block !important;
  transform: none !important;
  position: absolute !important;
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
  background-color: #000000 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button:hover::before, .inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button:focus::before,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button:hover::before,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button:focus::before,
.inquiry-form.form-variant-light button.elementor-button[type=submit]:hover::before,
.inquiry-form.form-variant-light button.elementor-button[type=submit]:focus::before {
  transform: scale(0.95) !important;
  background-color: #000000 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg {
  color: #E08F35 !important;
  fill: #E08F35 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i path,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i line,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i rect,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i circle,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg path,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg line,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg rect,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg circle,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i path,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i line,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i rect,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i circle,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg path,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg line,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg rect,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg circle,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i path,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i line,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i polyline,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i rect,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i circle,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg path,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg line,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg polyline,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg rect,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg circle {
  fill: currentColor !important;
  stroke: currentColor !important;
}
.inquiry-form.form-variant-light .form-privacy-text {
  color: #000000;
}
.inquiry-form.form-variant-light .form-privacy-text a {
  color: #B15933;
}

.elementor-widget-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-text {
  color: #5585C2 !important;
}
.elementor-widget-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg path {
  stroke: #5585C2 !important;
}

.capability-cards-container {
  gap: 10px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 575px) {
  .capability-cards-container {
    padding-top: 32px;
    padding-bottom: 64px;
    border-bottom: 1px solid #DBDAD7;
  }
}
.capability-cards-container .capability-card-item {
  padding: 16px 0;
  gap: 24px;
  display: flex;
  align-items: center;
}
@media (max-width: 575px) {
  .capability-cards-container .capability-card-item {
    flex-direction: column;
  }
}
.capability-cards-container .capability-card-item .capability-card-image {
  width: 40%;
}
@media (max-width: 575px) {
  .capability-cards-container .capability-card-item .capability-card-image {
    width: 100%;
  }
}
.capability-cards-container .capability-card-item .capability-card-image img {
  width: 100%;
  height: auto;
}
.capability-cards-container .capability-card-item .capability-card-content {
  width: 60%;
}
@media (max-width: 575px) {
  .capability-cards-container .capability-card-item .capability-card-content {
    width: 100%;
  }
}
.capability-cards-container .capability-card-item .capability-card-content .capability-card-title {
  margin-top: 0;
  margin-bottom: 16px;
  color: #000000;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.02px;
  font-family: "zuume", sans-serif;
}
.capability-cards-container .capability-card-item .capability-card-content .capability-card-desc {
  color: #000000;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  font-family: "nitti-grotesk", sans-serif;
}

.services-we-offer-container {
  margin-bottom: 40px;
}
.services-we-offer-container .services-we-offer-title {
  margin-left: 24px;
  color: #B15933;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02px;
  text-transform: uppercase;
  font-family: "zuume", sans-serif;
}
.services-we-offer-container .systems-we-serve-title {
  margin-top: 30px !important;
  margin-bottom: 0px !important;
  margin-left: 0px !important;
}
.services-we-offer-container .services-we-offer-list {
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative;
}
.services-we-offer-container .services-we-offer-list:after {
  content: "";
  right: -100%;
  bottom: 0;
  width: 100%;
  height: 1px;
  position: absolute;
  background-color: #DBDAD7;
}
@media (max-width: 575px) {
  .services-we-offer-container .services-we-offer-list:after {
    display: none;
  }
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item {
  margin: 0;
  padding: 20px 24px;
  position: relative;
  border-bottom: 1px solid #DBDAD7;
}
@media (max-width: 575px) {
  .services-we-offer-container .services-we-offer-list .services-we-offer-item {
    padding: 20px 16px;
  }
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item:before {
  content: "";
  top: -0.5px;
  right: -100%;
  width: 100%;
  height: 0.5px;
  position: absolute;
  background-color: #DBDAD7;
}
@media (max-width: 575px) {
  .services-we-offer-container .services-we-offer-list .services-we-offer-item:before {
    display: none;
  }
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item:first-child {
  border-top: 1px solid #DBDAD7;
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item a,
.services-we-offer-container .services-we-offer-list .services-we-offer-item span {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.375;
  position: relative;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item a:hover::after {
  content: "";
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 2px;
  position: absolute;
  background-color: #B15933;
}

.position-sticky {
  align-self: start;
}
@media (max-width: 575px) {
  .position-sticky {
    align-self: auto;
    border-top: 1px solid #DBDAD7;
  }
}

/* ==========================================================================
   Capabilities Sticky List
   ========================================================================== */
.smart-sticky-ancestor {
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  clip-path: none !important;
}

.smart-sticky-container {
  overflow: visible !important;
  height: -moz-max-content !important;
  height: max-content !important;
}
.smart-sticky-container .elementor-widget-shortcode {
  margin-top: 0;
}
.smart-sticky-container .services-we-offer-list,
.smart-sticky-container .elementor-shortcode > ul,
.smart-sticky-container .elementor-shortcode > div {
  margin-top: 0;
  margin-bottom: 0;
}
.smart-sticky-container .services-we-offer-list .services-we-offer-item:first-child {
  border-top: none;
}
.smart-sticky-container .services-we-offer-list .services-we-offer-item:first-child::before {
  display: none;
}
.smart-sticky-container.smart-sticky-short {
  top: 0 !important;
  position: sticky !important;
  align-self: flex-start !important;
}
.smart-sticky-container.smart-sticky-long {
  height: -moz-max-content !important;
  height: max-content !important;
  align-self: flex-start !important;
}

.smart-sticky-title-style {
  width: 100% !important;
  height: 62px !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
  margin-bottom: 0 !important;
  padding-top: 15px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  padding-bottom: 15px !important;
  position: relative;
  border-bottom: none;
  background-color: transparent;
}
.smart-sticky-title-style::after {
  content: "";
  top: -10px;
  left: 0;
  right: -100%;
  bottom: 0;
  z-index: -1;
  position: absolute;
  pointer-events: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background-color: var(--smart-sticky-bg, #F9F8F6);
}
.smart-sticky-title-style .elementor-widget-heading,
.smart-sticky-title-style .elementor-widget-container,
.smart-sticky-title-style .elementor-heading-title {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.smart-sticky-title-stick {
  top: 78px !important;
  z-index: 10 !important;
  position: sticky !important;
  align-self: stretch !important;
}
.admin-bar .smart-sticky-title-stick {
  top: 110px !important;
}

.market-cards-container {
  width: 100%;
  gap: 30px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 768px) {
  .market-cards-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .market-cards-container {
    grid-template-columns: 1fr;
  }
}
.market-cards-container .market-card-item {
  padding: 40px 32px;
  border-top-width: 20px;
  border-top-style: solid;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  background-color: #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
@media (max-width: 575px) {
  .market-cards-container .market-card-item {
    height: auto;
  }
}
.market-cards-container .market-card-item:nth-child(3n+1) {
  border-top-color: #B15933;
}
.market-cards-container .market-card-item:nth-child(3n+2) {
  border-top-color: #0D3E70;
}
.market-cards-container .market-card-item:nth-child(3n) {
  border-top-color: #E08F35;
}
.market-cards-container .market-card-item .market-card-content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.market-cards-container .market-card-item .market-card-content .market-card-title {
  margin: 0;
  margin-bottom: 64px;
  color: #000000;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.02px;
  text-transform: uppercase;
  font-family: "zuume", sans-serif;
}
@media (max-width: 575px) {
  .market-cards-container .market-card-item .market-card-content .market-card-title {
    margin-bottom: 24px;
  }
}
.market-cards-container .market-card-item .market-card-content .market-card-desc {
  margin: 0;
  color: #000000;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.2;
  font-family: "nitti-grotesk", sans-serif;
}

.post-body-content h2 {
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  color: #000000;
  font-size: 32px;
  line-height: 1.1 !important;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
@media (max-width: 575px) {
  .post-body-content h2 {
    font-size: 22px;
    line-height: 26px !important;
  }
}
.post-body-content h3 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  color: #000000;
  font-size: 22px;
  line-height: 26px !important;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content h4 {
  margin-top: 1.5rem;
  margin-bottom: 0.8rem;
  color: #000000;
  font-size: 18px;
  line-height: 22px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content h5 {
  margin-top: 1.25rem;
  margin-bottom: 0.6rem;
  color: #000000;
  font-size: 16px;
  line-height: 20px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content h6 {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  color: #000000;
  font-size: 14px;
  line-height: 18px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content p {
  margin-bottom: 1.5rem;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content a {
  color: #0D3E70;
  text-decoration: underline;
}
.post-body-content a:hover {
  color: #5585C2;
}
.post-body-content ol {
  margin: 1.5rem 0;
  padding-left: 0;
  list-style: none;
  counter-reset: post-ol-counter;
}
.post-body-content ol li {
  counter-increment: post-ol-counter;
  margin-bottom: 12px;
  padding-left: 42px;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  position: relative;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ol li::before {
  content: counter(post-ol-counter, decimal-leading-zero) ".";
  left: 0;
  top: -3px;
  width: 30px;
  color: #B15933;
  font-size: 22px;
  font-weight: 700;
  line-height: 26px;
  position: absolute;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ol li strong:first-child,
.post-body-content ol li b:first-child {
  margin-bottom: 0.4rem;
  color: #000000;
  font-size: 1.15rem;
  display: block;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ul {
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0;
}
.post-body-content ul li {
  margin-bottom: 12px;
  padding-left: 16px;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  position: relative;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ul li::before {
  content: "";
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  position: absolute;
  border-radius: 50%;
  background-color: #B15933;
}
.post-body-content ul li strong,
.post-body-content ul li b {
  font-weight: 700;
}
.post-body-content ul.list-checkmark {
  list-style: none;
  margin: 1.5rem 0;
  padding-left: 0;
}
.post-body-content ul.list-checkmark li {
  margin-bottom: 12px;
  padding-left: 30px;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  position: relative;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ul.list-checkmark li::before {
  content: "";
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 0;
  position: absolute;
  background-color: transparent;
  background-image: url("../../assets/images/icons/check.svg");
  background-repeat: no-repeat;
  background-size: contain;
}
.post-body-content ul.list-checkmark li strong,
.post-body-content ul.list-checkmark li b {
  font-weight: 700;
}
.post-body-content .post-mark-checkmark {
  width: 20px;
  height: 20px;
  margin-right: 10px;
  display: inline-block;
  overflow: hidden;
  position: relative;
  text-indent: -9999px;
  vertical-align: middle;
}
.post-body-content .post-mark-checkmark::after {
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  background-image: url("../../assets/images/icons/check.svg");
  background-repeat: no-repeat;
  background-size: contain;
}
.post-body-content blockquote {
  margin: 48px 0;
  padding-left: 65px;
  border: none;
  position: relative;
}
.post-body-content blockquote::before {
  content: "";
  top: 6px;
  left: 0;
  width: 41px;
  height: 36px;
  position: absolute;
  background-image: url("../../assets/images/icons/blockquote.svg");
  background-repeat: no-repeat;
  background-size: contain;
}
.post-body-content blockquote p:first-of-type {
  margin-bottom: 24px;
  color: #000000;
  font-size: 32px;
  line-height: 35px;
  font-weight: 400;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content blockquote p:last-of-type {
  margin-bottom: 0;
  color: #000000;
  font-size: 18px;
  line-height: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
}
@media (max-width: 767px) {
  .post-body-content blockquote {
    padding-left: 54px;
  }
  .post-body-content blockquote::before {
    width: 36px;
    height: 32px;
    top: 4px;
  }
  .post-body-content blockquote p:first-of-type {
    font-size: 32px;
    line-height: 35px;
  }
  .post-body-content blockquote p:last-of-type {
    font-size: 18px;
    line-height: 14px;
  }
}
.post-body-content.post-body-content-white {
  color: #FFFFFF;
}
.post-body-content.post-body-content-white h2,
.post-body-content.post-body-content-white h3,
.post-body-content.post-body-content-white h4,
.post-body-content.post-body-content-white h5,
.post-body-content.post-body-content-white h6,
.post-body-content.post-body-content-white p,
.post-body-content.post-body-content-white li,
.post-body-content.post-body-content-white strong,
.post-body-content.post-body-content-white b {
  color: #FFFFFF;
}
.post-body-content.post-body-content-white ol li::before {
  color: #E08F35;
}
.post-body-content.post-body-content-white ul li::before {
  background-color: #E08F35;
}

body.single-case-study .position-sticky .post-body-content ul {
  margin: 0;
}

.corvant-custom-map-wrapper {
  width: 100%;
  height: 250px;
  overflow: hidden;
  position: relative;
  background-color: #EEEAE3;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link {
  top: 15px;
  left: 15px;
  z-index: 10;
  padding: 8px 12px;
  color: #5585C2;
  font-size: 0.875rem;
  font-weight: 500;
  align-items: center;
  position: absolute;
  transition: all 0.2s ease;
  text-decoration: none;
  border-radius: 4px;
  border: 1px solid #5585C2;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  background: #FFFFFF;
  font-family: "nitti-grotesk", sans-serif;
  gap: 6px;
  display: inline-flex;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link svg {
  stroke: #5585C2;
  transition: all 0.2s ease;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link:hover {
  color: #0D3E70;
  border-color: #0D3E70;
  background: #FBF8F3;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link:hover svg {
  stroke: #0D3E70;
}
.corvant-custom-map-wrapper .corvant-custom-map {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
}

/* =======================================================
   A. ESTILOS DEL CONTENEDOR PADRE DEL CARRUSEL
======================================================= */
@media (min-width: 1367px) {
  .detail-carousel-section {
    padding-left: calc((100vw - 1330px) / 2) !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1366px) and (min-width: 1280px) {
  .detail-carousel-section {
    padding-left: 60px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1279px) and (min-width: 768px) {
  .detail-carousel-section {
    padding-left: 30px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 767px) {
  .detail-carousel-section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
/* Si el contenedor no tiene el carrusel adentro, se oculta automáticamente */
.detail-carousel-section:not(:has(.elementor-widget-image-carousel)) {
  display: none !important;
}

/* =======================================================
   B. ESTILOS DEL WIDGET CARRUSEL (FLECHAS Y SCROLL)
======================================================= */
.detail-carousel .elementor-swiper-button {
  top: auto !important;
  bottom: -70px !important;
  width: 46px !important;
  height: 44px !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  position: absolute !important;
  background-color: #000000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.detail-carousel .elementor-swiper-button svg path {
  stroke: #ffffff !important;
}

.detail-carousel .elementor-swiper-button-prev {
  left: 0 !important;
}

.detail-carousel .elementor-swiper-button-next {
  left: 56px !important;
  right: auto !important;
}

.detail-carousel .elementor-swiper-button.swiper-button-disabled {
  cursor: not-allowed !important;
  background-color: #B7B5B0 !important;
}

/* =======================================================
   C. WIDGET CARRUSEL: COMPUTADORA (ANIMACIÓN PREMIUM)
======================================================= */
@media (min-width: 1025px) {
  .detail-carousel .elementor-widget-container,
  .detail-carousel .elementor-image-carousel-wrapper.swiper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    clip-path: inset(-50px 0px -150px 0px) !important;
  }
  .detail-carousel .swiper-slide {
    height: 409px !important;
    position: relative !important;
  }
  .detail-carousel figure.swiper-slide-inner {
    max-width: none !important;
    position: absolute !important;
    transition: all 0.5s ease !important;
  }
  .detail-carousel figure.swiper-slide-inner img {
    width: 100% !important;
    height: 409px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
  /* Máquina de Estados (Transiciones Suaves) */
  .detail-carousel .swiper-slide-prev figure.swiper-slide-inner {
    left: 0 !important;
    width: 76.95% !important;
    opacity: 0 !important;
  }
  .detail-carousel .swiper-slide-active figure.swiper-slide-inner {
    left: 0 !important;
    width: 76.95% !important;
    opacity: 1 !important;
  }
  .detail-carousel .swiper-slide-next figure.swiper-slide-inner {
    left: -17.28% !important;
    width: 134.5% !important;
    z-index: 10;
    opacity: 1 !important;
  }
  .detail-carousel .swiper-slide-next + .swiper-slide figure.swiper-slide-inner {
    left: 22.96% !important;
    width: 76.95% !important;
    opacity: 1 !important;
  }
  .detail-carousel .swiper-slide-next + .swiper-slide ~ .swiper-slide figure.swiper-slide-inner {
    left: 22.96% !important;
    width: 76.95% !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
/* =======================================================
   D. WIDGET CARRUSEL: MÓVIL Y TABLET (PEEKING SLIDE)
======================================================= */
@media (max-width: 1024px) {
  .detail-carousel .elementor-widget-container {
    overflow: visible !important;
  }
  .detail-carousel .elementor-image-carousel-wrapper.swiper {
    width: 100% !important;
    overflow: visible !important;
    padding-right: 15% !important;
    clip-path: none !important;
    box-sizing: border-box !important;
  }
  .detail-carousel .swiper-slide {
    height: 320px !important;
    padding-right: 15px !important;
    box-sizing: border-box !important;
  }
  .detail-carousel .swiper-slide img {
    width: 100% !important;
    height: 320px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
}
/* =======================================================
   RELATED PROJECTS SECTION STYLES
======================================================= */
/* 1. Main container alignment and paddings */
@media (min-width: 1367px) {
  .related-projects-section {
    padding-left: calc((100vw - 1330px) / 2) !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1366px) and (min-width: 1280px) {
  .related-projects-section {
    padding-left: 60px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1279px) and (min-width: 768px) {
  .related-projects-section {
    padding-left: 30px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 767px) {
  .related-projects-section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
/* Hide section if empty */
.related-projects-section:not(:has(.elementor-widget-loop-carousel)) {
  display: none !important;
}

/* 2. Slider navigation arrow styles */
.related-projects-carousel .elementor-swiper-button {
  top: auto !important;
  bottom: -70px !important;
  width: 46px !important;
  height: 44px !important;
  opacity: 1 !important;
  transform: none !important;
  border-radius: 0 !important;
  position: absolute !important;
  background-color: #000000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.related-projects-carousel .elementor-swiper-button svg path {
  stroke: #FFFFFF !important;
}

.related-projects-carousel .elementor-swiper-button-prev {
  left: 0 !important;
}

.related-projects-carousel .elementor-swiper-button-next {
  left: 56px !important;
  right: auto !important;
}

.related-projects-carousel .elementor-swiper-button.swiper-button-disabled {
  cursor: not-allowed !important;
  background-color: #B7B5B0 !important;
}

/* 3. Support for single-slide items */
.related-projects-section:has(div.swiper-slide:only-of-type) .elementor-swiper-button {
  display: none !important;
}

.related-projects-carousel div.swiper-slide:only-of-type {
  max-width: 1320px !important;
}

/* =======================================================
   WIDGET LOGO MARQUEE (GALERÍA BÁSICA INFINITA)
======================================================= */
.custom-leaders-carousel {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden !important;
  mix-blend-mode: multiply;
  filter: grayscale(100%) contrast(130%) brightness(80%);
}
.custom-leaders-carousel .gallery {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: -moz-max-content !important;
  width: max-content !important;
  align-items: center;
  gap: 0 !important;
  will-change: transform;
}
.custom-leaders-carousel .gallery.marquee-ready {
  animation: slider-logos 45s linear infinite;
}
.custom-leaders-carousel .gallery .gallery-item {
  width: 180px !important;
  max-width: 180px !important;
  flex: 0 0 180px !important;
  height: 120px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
@media (max-width: 767px) {
  .custom-leaders-carousel .gallery .gallery-item {
    width: 120px !important;
    max-width: 120px !important;
    flex: 0 0 120px !important;
    height: 90px !important;
  }
}
.custom-leaders-carousel .gallery-icon {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  height: 100% !important;
}
.custom-leaders-carousel .gallery-item img {
  width: 100px !important;
  height: auto !important;
  max-height: 100% !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
  border: none !important;
}
@media (max-width: 767px) {
  .custom-leaders-carousel .gallery-item img {
    width: 80px !important;
  }
}

@keyframes slider-logos {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-33.333%, 0, 0);
  }
}
.corvant-breadcrumbs {
  margin-bottom: 2px;
}
.corvant-breadcrumbs .corvant-breadcrumbs-list {
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item {
  color: #0A2842;
  font-size: 1rem;
  font-weight: 500;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item a {
  color: #0A2842;
  text-decoration: none;
  transition: color 0.3s ease;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item a:hover {
  color: #B15933;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item.is-active .corvant-breadcrumbs-current {
  padding-bottom: 2px;
  color: #0A2842;
  border-bottom: 2px solid #B15933;
}
.corvant-breadcrumbs .corvant-breadcrumbs-separator {
  margin: 0 2.5px;
  color: #0A2842;
  font-size: 1rem;
  font-weight: 500;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.home-page .elementor-loop-container.elementor-grid {
  display: block !important;
  -moz-column-count: 3 !important;
       column-count: 3 !important;
  -moz-column-gap: 30px !important;
       column-gap: 30px !important;
}
.home-page .elementor-loop-container.elementor-grid .e-loop-item {
  width: 100%;
  margin-bottom: 25px;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  display: inline-block;
  page-break-inside: avoid;
}

/*# sourceMappingURL=data:application/json;base64,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Q0Y7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixnQkFBZ0I7RUFDaEIsUUFBUTtFQUNSLGFBQWE7RUFDYixlQUFlO0VBQ2YsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtFQUNyQiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsZ0NBQWdDO0FBQ2xDO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIseUJBQWlCO0tBQWpCLHNCQUFpQjtVQUFqQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsK0JBQTBCO09BQTFCLDBCQUEwQjtFQUMxQixnQ0FBMkI7T0FBM0IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLCtCQUFtQjtPQUFuQixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLHdCQUF3QjtBQUMxQiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogTWFzdGVyIEljb24gTWl4aW5cbiAqIENyZWF0ZXMgYSBjb2xvcmFibGUgaWNvbiB1c2luZyBtYXNrcy5cbiAqIFVzYWdlOiBAaW5jbHVkZSBpY29uKCdBcnJvd19MYXJnZV9SaWdodCcsICRjb3BwZXIsIDI0cHgpO1xuICovXG4vKipcbiAqIENsZWFyZml4XG4gKiBTdGFuZGFyZCB1dGlsaXR5IGZvciByZXNvbHZpbmcgZmxvYXRpbmcgcGFyZW50IGNvbnRhaW5lciBoZWlnaHRzLlxuICovXG4vKipcbiAqIEZvbnRzIHJlZ2lzdHJ5XG4gKiBBZG9iZSBUeXBla2l0IGZvbnRzIGFyZSBlbnF1ZXVlZCB2aWEgZnVuY3Rpb25zLnBocFxuICogT25seSB1c2UgdGhpcyBmaWxlIGZvciBtYW51YWxseSBhZGRlZCBsb2NhbCBmb250cyAoLndvZmYyKVxuICovXG4vKlxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTG9jYWxGb250JztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2xvY2FsLWZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuKi9cbi8qKlxuICogR2xvYmFsIFJlc2V0ICYgTm9ybWFsaXphdGlvblxuICogU2V0cyB0aGUgYmFzZSBib3gtc2l6aW5nIGFuZCBpbWFnZSByZXNwb25zaXZlbmVzcyBydWxlcy5cbiAqL1xuaHRtbCxcbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXg6IGNsaXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLyoqXG4gKiBVbml2ZXJzYWwgQm94IFNpemluZ1xuICogRW5zdXJlcyBhbGwgZWxlbWVudHMgaW5oZXJpdCB0aGUgYm94LXNpemluZyBydWxlIGZyb20gdGhlIEhUTUwgcm9vdC5cbiAqL1xuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBNZWRpYSBGbHVpZGl0eVxuICogRW5zdXJlcyBpbWFnZXMgYW5kIG90aGVyIG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBvdmVyZmxvdyB0aGVpciBjb250YWluZXJzLlxuICovXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxucCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBDb3J2YW50IFR5cG9ncmFwaHkgU3lzdGVtXG4gKiBDb25maWd1cmVzIGdsb2JhbCB0ZXh0IHNjYWxpbmcsIGhlYWRpbmcgcmVzZXRzLCBhbmQgdXRpbGl0eSBjbGFzc2VzLlxuICovXG4vKipcbiAqIEJhc2UgQm9keSBUeXBvZ3JhcGh5XG4gKiBTdGFuZGFyZCBmb250IGZhbWlseSwgc2l6ZSwgYW5kIG5vcm1hbGl6YXRpb24gZm9yIHRoZSBkb2N1bWVudCBib2R5LlxuICovXG5ib2R5IHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5cbmEge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbmE6aG92ZXIgLmVsZW1lbnRvci1pY29uLWxpc3QtdGV4dCB7XG4gIGNvbG9yOiAjQjE1OTMzICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogVW5pdmVyc2FsIEhlYWRpbmcgUmVzZXRcbiAqIFN0YW5kYXJkaXplcyBicmFuZGVkIHR5cG9ncmFwaHkgZm9yIGFsbCBoZWFkaW5nIGxldmVscyBhbmQgdXRpbGl0eSBjbGFzc2VzLlxuICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG4uaDEsXG4uaDIsXG4uaDMsXG4uaDQsXG4uaDUsXG4uaDYsXG4uaDcsXG4uaDgsXG4uZGlzcGxheS0xLFxuLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgY29sb3I6ICMwQTI4NDI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtZmFtaWx5OiBcInp1dW1lXCIsIHNhbnMtc2VyaWY7XG59XG5cbi8qKlxuICogRGVza3RvcCBTY2FsZVxuICogSGlnaC1maWRlbGl0eSB0eXBvZ3JhcGh5IHNjYWxpbmcgZm9yIGxhcmdlIHNjcmVlbnMuXG4gKi9cbi5kaXNwbGF5LTEsIC5kaXNwbGF5LTEgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMzJweDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuaDEsIGgxIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5oMSxcbi5oMSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4uZWxlbWVudG9yLXNpemUteGwsXG4uZWxlbWVudG9yLXNpemUteGwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMjBweDtcbiAgbGluZS1oZWlnaHQ6IDAuOSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG5oMiwgaDIgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmgyLFxuLmgyIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5lbGVtZW50b3Itc2l6ZS1sYXJnZSxcbi5lbGVtZW50b3Itc2l6ZS1sYXJnZSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDk2cHg7XG4gIGxpbmUtaGVpZ2h0OiAwLjkgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuaDMsIGgzIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5oMyxcbi5oMyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDg4cHg7XG4gIGxpbmUtaGVpZ2h0OiAwLjg3NSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG5oNCwgaDQgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmg0LFxuLmg0IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogNzZweDtcbiAgbGluZS1oZWlnaHQ6IDAuODk0NyAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG5oNSwgaDUgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmg1LFxuLmg1IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5lbGVtZW50b3Itc2l6ZS1tZWRpdW0sXG4uZWxlbWVudG9yLXNpemUtbWVkaXVtIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogNjRweDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuaDYsIGg2IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5oNixcbi5oNiAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4uZWxlbWVudG9yLXNpemUtc21hbGwsXG4uZWxlbWVudG9yLXNpemUtc21hbGwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uaDcsIC5oNyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5oOCwgLmg4IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDEuMSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnN1YmhlYWQtbCwgLnN1YmhlYWQtbCAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIE1vYmlsZSBTY2FsZVxuICogT3B0aW1pemVkIHR5cG9ncmFwaHkgYWRqdXN0bWVudHMgZm9yIHNtYWxsIHNjcmVlbnMgKDc2OHB4IGFuZCBiZWxvdykuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZGlzcGxheS0xLCAuZGlzcGxheS0xIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiA3NnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIGgxLCBoMSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5oMSxcbiAgLmgxIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbiAgLmVsZW1lbnRvci1zaXplLXhsLFxuICAuZWxlbWVudG9yLXNpemUteGwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDY0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgfVxuICBoMiwgaDIgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuICAuaDIsXG4gIC5oMiAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5lbGVtZW50b3Itc2l6ZS1sYXJnZSxcbiAgLmVsZW1lbnRvci1zaXplLWxhcmdlIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiA0OHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIH1cbiAgaDMsIGgzIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbiAgLmgzLFxuICAuaDMgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICB9XG4gIGg0LCBoNCAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5oNCxcbiAgLmg0IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgfVxuICBoNSwgaDUgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuICAuaDUsXG4gIC5oNSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5lbGVtZW50b3Itc2l6ZS1tZWRpdW0sXG4gIC5lbGVtZW50b3Itc2l6ZS1tZWRpdW0gLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgfVxuICBoNiwgaDYgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuICAuaDYsXG4gIC5oNiAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5lbGVtZW50b3Itc2l6ZS1zbWFsbCxcbiAgLmVsZW1lbnRvci1zaXplLXNtYWxsIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgfVxuICAuaDcsIC5oNyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG4gIC5oOCwgLmg4IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbiAgLnN1YmhlYWQtbCxcbiAgLnN1YmhlYWQtbCAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG4gIC5ib2R5LWwsIC5ib2R5LWwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLCAuYm9keS1sIHAsIC5ib2R5LWwgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG4gIC5ib2R5LW0sIC5ib2R5LW0gLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLCAuYm9keS1tIHAsIC5ib2R5LW0gc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4vKipcbiAqIFRleHQgVXRpbGl0eSBDbGFzc2VzXG4gKiBTdGFuZGFyZCBib2R5IHRleHQgdmFyaWF0aW9ucyBmb3IgZGlmZmVyZW50IGNvbnRlbnQgbmVlZHMuXG4gKiBUYXJnZXQgYm90aCB0aGUgY2xhc3MgYW5kIGludGVybmFsIEVsZW1lbnRvciBoZWFkaW5nIHRhZ3MgZm9yIGluaGVyaXRhbmNlLlxuICovXG4uYm9keS1sLCAuYm9keS1sIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmJvZHktbCBoMSwgLmJvZHktbCBoMiwgLmJvZHktbCBoMywgLmJvZHktbCBoNCwgLmJvZHktbCBoNSwgLmJvZHktbCBoNiwgLmJvZHktbCBwLCAuYm9keS1sIHNwYW4ge1xuICBmb250LXNpemU6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYm9keS1tLCAuYm9keS1tIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmJvZHktbSBoMSwgLmJvZHktbSBoMiwgLmJvZHktbSBoMywgLmJvZHktbSBoNCwgLmJvZHktbSBoNSwgLmJvZHktbSBoNiwgLmJvZHktbSBwLCAuYm9keS1tIHNwYW4ge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYm9keS1zLCAuYm9keS1zIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmJvZHktcyBoMSwgLmJvZHktcyBoMiwgLmJvZHktcyBoMywgLmJvZHktcyBoNCwgLmJvZHktcyBoNSwgLmJvZHktcyBoNiwgLmJvZHktcyBwLCAuYm9keS1zIHNwYW4ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYm9keS14cywgLmJvZHkteHMgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLCAuYm9keS14cyBoMSwgLmJvZHkteHMgaDIsIC5ib2R5LXhzIGgzLCAuYm9keS14cyBoNCwgLmJvZHkteHMgaDUsIC5ib2R5LXhzIGg2LCAuYm9keS14cyBwLCAuYm9keS14cyBzcGFuIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmNhcHRpb24sIC5jYXB0aW9uIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmNhcHRpb24gcCwgLmNhcHRpb24gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogRm9udCBXZWlnaHQgVXRpbGl0aWVzXG4gKi9cbi5mdy1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmZ3LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5mdy1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyoqXG4gKiBTcGVjaWFsaXplZCBCcmFuZGVkIEVsZW1lbnRzXG4gKiBDb250ZXh0dWFsIHN0eWxlcyBmb3IgZXllYnJvd3MgYW5kIGhlcm8gc3VidGl0bGVzLlxuICovXG4uZXllYnJvdywgLmV5ZWJyb3cgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmhlcm8taW50cm8sXG4uaGVyby1pbnRybyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBjb2xvcjogIzBEM0U3MDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwienV1bWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5leWVicm93LCAuZXllYnJvdyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5oZXJvLWludHJvLFxuICAuaGVyby1pbnRybyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuLyoqXG4gKiBDb3J2YW50IEljb24gU3lzdGVtXG4gKiBCYXNlIHN0eWxlcyBmb3IgU1ZHIGljb25zIHVzZWQgYXMgYmFja2dyb3VuZCBtYXNrcy5cbiAqIFVzZSB0aGUgJ2ljb24nIG1peGluIGZvciBjb21wb25lbnQtc3BlY2lmaWMgaWNvbiBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuLyoqXG4gKiBHbG9iYWwgSWNvbiBIZWxwZXIgQ2xhc3NcbiAqIFRhcmdldHMgYW55IGVsZW1lbnQgd2l0aCBhIGNsYXNzIHN0YXJ0aW5nIHdpdGggJ2ljb24tJyBmb3IgYmFzZSBtYXNrIGxvZ2ljLlxuICovXG5bY2xhc3NePWljb24tXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hc2stc2l6ZTogY29udGFpbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4vKipcbiAqIENvcnZhbnQgQW5pbWF0aW9uIFN0eWxlc1xuICogS2V5ZnJhbWVzIGFuZCB1dGlsaXR5IGNsYXNzZXMgZm9yIHRoZSBzaXRlJ3MgbW90aW9uIHN5c3RlbS5cbiAqL1xuQGtleWZyYW1lcyBzbGlkZVVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVMZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2NhbGVVcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGxvYWRlckxvZ29GYWRlSW4ge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbltjbGFzcyo9YW5pbWF0ZS1dIHtcbiAgb3BhY2l0eTogMDtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDBtcztcbn1cbi5lbGVtZW50b3ItZWRpdG9yLWFjdGl2ZSBbY2xhc3MqPWFuaW1hdGUtXSwgLmVsZW1lbnRvci1lZGl0LW1vZGUgW2NsYXNzKj1hbmltYXRlLV0ge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmFuaW1hdGUtc2xpZGUtdXAuaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLXNsaWRlLXVwIHtcbiAgYW5pbWF0aW9uOiBzbGlkZVVwIDAuNnMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSB2YXIoLS1hbmltYXRpb24tZGVsYXksIDBtcykgZm9yd2FyZHM7XG59XG5cbi5hbmltYXRlLXNsaWRlLWRvd24uaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLXNsaWRlLWRvd24ge1xuICBhbmltYXRpb246IHNsaWRlRG93biAwLjZzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgdmFyKC0tYW5pbWF0aW9uLWRlbGF5LCAwbXMpIGZvcndhcmRzO1xufVxuXG4uYW5pbWF0ZS1zbGlkZS1sZWZ0LmlzLWFuaW1hdGVkLCAuZWxlbWVudG9yLWFjdGl2ZSAuYW5pbWF0ZS1zbGlkZS1sZWZ0IHtcbiAgYW5pbWF0aW9uOiBzbGlkZUxlZnQgMC42cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIHZhcigtLWFuaW1hdGlvbi1kZWxheSwgMG1zKSBmb3J3YXJkcztcbn1cblxuLmFuaW1hdGUtc2xpZGUtcmlnaHQuaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLXNsaWRlLXJpZ2h0IHtcbiAgYW5pbWF0aW9uOiBzbGlkZVJpZ2h0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSB2YXIoLS1hbmltYXRpb24tZGVsYXksIDBtcykgZm9yd2FyZHM7XG59XG5cbi5hbmltYXRlLWZhZGUtaW4uaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLWZhZGUtaW4ge1xuICBhbmltYXRpb246IGZhZGVJbiAwLjZzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgdmFyKC0tYW5pbWF0aW9uLWRlbGF5LCAwbXMpIGZvcndhcmRzO1xufVxuXG4uYW5pbWF0ZS1zY2FsZS11cC5pcy1hbmltYXRlZCwgLmVsZW1lbnRvci1hY3RpdmUgLmFuaW1hdGUtc2NhbGUtdXAge1xuICBhbmltYXRpb246IHNjYWxlVXAgMC42cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIHZhcigtLWFuaW1hdGlvbi1kZWxheSwgMG1zKSBmb3J3YXJkcztcbn1cblxuLmRlbGF5LTEwMCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiAxMDBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktMTUwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDE1MG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS0yMDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogMjAwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTI1MCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiAyNTBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktMzAwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS0zNTAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogMzUwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTQwMCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiA0MDBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktNTAwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDUwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS02MDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogNjAwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTcwMCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktODAwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDgwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS05MDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogOTAwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTEwMDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogMTAwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5sb2FkZXItY3VydGFpbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB6LWluZGV4OiA5OTk5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxLjJzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSk7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5sb2FkZXItY3VydGFpbi5pcy1oaWRkZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xufVxuLmxvYWRlci1jdXJ0YWluIC5sb2FkZXItY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sb2FkZXItY3VydGFpbiAubG9hZGVyLWxvZ28ge1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICBhbmltYXRpb246IGxvYWRlckxvZ29GYWRlSW4gMC44cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIGZvcndhcmRzIDAuM3M7XG59XG5cbmJvZHkuaXMtbG9hZGluZyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5qcy1pbnRlcmFjdGl2ZS1zeW5jIC5lbGVtZW50b3Itd2lkZ2V0LWltYWdlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xufVxuLmpzLWludGVyYWN0aXZlLXN5bmMgLmVsZW1lbnRvci13aWRnZXQtaW1hZ2UuaXMtYWN0aXZlIHtcbiAgYW5pbWF0aW9uOiBmYWRlSW4gMC40cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuLmpzLWN1cnRhaW4taW1hZ2UtYm94IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmpzLWN1cnRhaW4taW1hZ2UtYm94IGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmpzLWN1cnRhaW4taW1hZ2UtYm94IC5jdXJ0YWluLWltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGluc2V0OiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmpzLWN1cnRhaW4taW1hZ2UtYm94IC5jdXJ0YWluLWRvd24ge1xuICBhbmltYXRpb246IGN1cnRhaW5Eb3duIDAuNjVzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XG59XG4uanMtY3VydGFpbi1pbWFnZS1ib3ggLmN1cnRhaW4tdXAge1xuICBhbmltYXRpb246IGN1cnRhaW5VcCAwLjY1cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIGN1cnRhaW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgY2xpcC1wYXRoOiBpbnNldCgwIDAgMTAwJSAwKTtcbiAgfVxuICB0byB7XG4gICAgY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBjdXJ0YWluVXAge1xuICBmcm9tIHtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDEwMCUgMCAwIDApO1xuICB9XG4gIHRvIHtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDApO1xuICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRWxlbWVudG9yIE1lZ2EgTWVudSAoSGVhZGVyKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDEuIE1vYmlsZSBNZW51IFN0YXRlIChHbG9iYWwgQm9keSBDbGFzcykgKi9cbmJvZHkubWVudS1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogMi4gTWVnYSBNZW51IENvbXBvbmVudCAqL1xuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHtcbiAgLyogR2VuZXJhbCBTdHlsZXMgKi9cbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSBzdmcge1xuICBmaWxsOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS13cmFwcGVyIC5lLW4tbWVudS10aXRsZS1jb250YWluZXIge1xuICB3aWR0aDogOTUlO1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS10aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtdGl0bGUgLmUtbi1tZW51LXRpdGxlLXRleHQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LXRpdGxlOmhhcyhidXR0b25bYXJpYS1leHBhbmRlZD10cnVlXSkge1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFyKC0tZS1nbG9iYWwtY29sb3ItODVlMTZhMik7XG59XG4uZWxlbWVudG9yLXdpZGdldC1uLW1lbnUge1xuICAvKiBBY3RpdmUgU3RhdGUgKi9cbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtdGl0bGUuY29ydmFudC1tZW51LWFjdGl2ZSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDNweCAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1lLWdsb2JhbC1jb2xvci04NWUxNmEyKSAhaW1wb3J0YW50O1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHtcbiAgLyogRGVza3RvcCBTdHlsZXMgKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHtcbiAgICAvKiBHbG9iYWwgc2hhZG93IGZvciBhbGwgZHJvcGRvd24gbWVudXMgKENhcGFiaWxpdGllcywgTWFya2V0cywgZXRjLikgKi9cbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LWNvbnRlbnQgPiAuZS1jb24gPiAuZS1jb24taW5uZXIge1xuICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTRweCByZ2JhKDAsIDAsIDAsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSB7XG4gIC8qIE1vYmlsZSBTdHlsZXMgJiBBbmltYXRpb25zICovXG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAubW9iaWxlLWNvbnRhY3Qtd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5tb2JpbGUtY29udGFjdC13cmFwcGVyIGEuZWxlbWVudG9yLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHtcbiAgICAvKiBNYWluIE1lbnUgQW5pbWF0aW9uICovXG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLTdiMzQ2OTgpICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMnMgZWFzZS1vdXQsIHZpc2liaWxpdHkgMHMgbGluZWFyIDAuMnMsIGhlaWdodCAwcyBsaW5lYXIgMC4ycywgcGFkZGluZyAwcyBsaW5lYXIgMC4ycyAhaW1wb3J0YW50O1xuICB9XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudTpoYXMoYnV0dG9uLmUtbi1tZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPXRydWVdKSAuZS1uLW1lbnUtd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDMycHggMCAxNjBweCAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4ycyBlYXNlLW91dCwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsIGhlaWdodCAwcyBsaW5lYXIgMHMsIHBhZGRpbmcgMHMgbGluZWFyIDBzICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHtcbiAgICAvKiBTdWJtZW51IEFuaW1hdGlvbiAqL1xuICB9XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtY29udGVudCA+IC5lLWNvbiB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS1jb250ZW50IHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC4ycyBlYXNlLW91dCwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4yNXMgIWltcG9ydGFudDtcbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LWl0ZW06aGFzKGJ1dHRvbi5lLW4tbWVudS1kcm9wZG93bi1pY29uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0pIC5lLW4tbWVudS1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiAzMDAwcHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjZzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgMHMgbGluZWFyIDBzICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LXdyYXBwZXIgLmUtbi1tZW51LXRpdGxlLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtd3JhcHBlciAuZS1uLW1lbnUtZHJvcGRvd24taWNvblthcmlhLWV4cGFuZGVkPXRydWVdIHN2ZyBwYXRoIHtcbiAgICBzdHJva2U6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLTg1ZTE2YTIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTcwcHgpIHtcbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS13cmFwcGVyIC5lLW4tbWVudS10aXRsZS1jb250YWluZXIge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb3J2YW50IEJ1dHRvbiBTeXN0ZW1cbiAqIEltcGxlbWVudHMgaGlnaC1maWRlbGl0eSBpbnRlcmFjdGl2ZSBzdGF0ZXMgYW5kIGJyYW5kLWNvbXBsaWFudCBhbmltYXRpb25zLlxuICovXG4vKipcbiAqIEJhc2UgQnV0dG9uIFN0eWxlc1xuICogQ29uZmlndXJlcyBnbG9iYWwgdHlwb2dyYXBoeSwgdHJhbnNpdGlvbnMsIGFuZCBpbnRlcmFjdGl2ZSBzY2FsZSB0cmFuc2Zvcm1zLlxuICovXG4uZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b24sXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLmVsZW1lbnRvci13aWRnZXQtYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uOjpiZWZvcmUsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogLTE7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zNXMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1jb250ZW50LXdyYXBwZXIsXG4uZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24tdGV4dCxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24tY29udGVudC13cmFwcGVyLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi10ZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLmVsZW1lbnRvci13aWRnZXQtYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uOmhvdmVyLCAuZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b246Zm9jdXMsIC5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbjphY3RpdmUsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOmhvdmVyLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1cyxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG4uZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b246aG92ZXI6OmJlZm9yZSwgLmVsZW1lbnRvci13aWRnZXQtYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uOmZvY3VzOjpiZWZvcmUsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOmhvdmVyOjpiZWZvcmUsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMzVzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbjphY3RpdmU6OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246YWN0aXZlOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTEpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMzVzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi8qKlxuICogQnV0dG9uIFZhcmlhbnRzXG4gKiBNYXBwaW5ncyBmb3IgU29saWQgTGlnaHQsIFNvbGlkIERhcmssIGFuZCBUZXh0IEdvbGQgYnV0dG9uIHR5cGVzLlxuICovXG4uZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1saWdodCAuZWxlbWVudG9yLWJ1dHRvbixcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24ge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWxpZ2h0IC5lbGVtZW50b3ItYnV0dG9uOjpiZWZvcmUsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFQUUzO1xufVxuLmVsZW1lbnRvci1idXR0b24tc29saWQtbGlnaHQgLmVsZW1lbnRvci1idXR0b246aG92ZXI6OmJlZm9yZSwgLmVsZW1lbnRvci1idXR0b24tc29saWQtbGlnaHQgLmVsZW1lbnRvci1idXR0b246Zm9jdXM6OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246aG92ZXI6OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246Zm9jdXM6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEREQ1QzY7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWxpZ2h0LmVsZW1lbnRvci1idXR0b24tc2l6ZS1zbWFsbCAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWxpZ2h0LmVsZW1lbnRvci1idXR0b24tc2l6ZS1tZWRpdW0gLmVsZW1lbnRvci1idXR0b24ge1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1saWdodC5lbGVtZW50b3ItYnV0dG9uLXNpemUtbGFyZ2UgLmVsZW1lbnRvci1idXR0b24ge1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsgLmVsZW1lbnRvci1idXR0b24ge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsgLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1kYXJrIC5lbGVtZW50b3ItYnV0dG9uOmhvdmVyOjpiZWZvcmUsIC5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsgLmVsZW1lbnRvci1idXR0b246Zm9jdXM6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1kYXJrIC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcge1xuICBjb2xvcjogI0UwOEYzNSAhaW1wb3J0YW50O1xuICBmaWxsOiAjRTA4RjM1ICFpbXBvcnRhbnQ7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1kYXJrLmVsZW1lbnRvci1idXR0b24tc2l6ZS1zbWFsbCAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsuZWxlbWVudG9yLWJ1dHRvbi1zaXplLW1lZGl1bSAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsuZWxlbWVudG9yLWJ1dHRvbi1zaXplLWxhcmdlIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuXG4uZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b24ge1xuICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNCMTU5MzM7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b246aG92ZXIsIC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjQjE1OTMzO1xufVxuLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uOmFjdGl2ZSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjQjE1OTMzO1xufVxuLmJ0bi1vbi1kYXJrIC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmJ0bi1vbi1kYXJrIC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiAjRUVFQUUzO1xufVxuLmJ0bi1vbi1kYXJrIC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbjphY3RpdmUge1xuICBjb2xvcjogI0RERDVDNjtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksXG4uZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBCdXR0b24gU2l6ZXNcbiAqIFJlc3BvbnNpdmUgc2l6aW5nIGxvZ2ljIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgdmFyaWFudHMuXG4gKi9cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtc21hbGwgLmVsZW1lbnRvci1idXR0b24sXG4uZWxlbWVudG9yLWJ1dHRvbi5lbGVtZW50b3Itc2l6ZS1zbSB7XG4gIGhlaWdodDogMzhweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zaXplLXNtYWxsIC5lbGVtZW50b3ItYnV0dG9uOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSwgLmVsZW1lbnRvci1idXR0b24tc2l6ZS1zbWFsbCAuZWxlbWVudG9yLWJ1dHRvbjpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2Zyxcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLXNtOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLXNtOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtc21hbGwuZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtbWVkaXVtIC5lbGVtZW50b3ItYnV0dG9uLFxuLmVsZW1lbnRvci1idXR0b24uZWxlbWVudG9yLXNpemUtbWQge1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuLmVsZW1lbnRvci1idXR0b24tc2l6ZS1tZWRpdW0gLmVsZW1lbnRvci1idXR0b246bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBpLCAuZWxlbWVudG9yLWJ1dHRvbi1zaXplLW1lZGl1bSAuZWxlbWVudG9yLWJ1dHRvbjpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2Zyxcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLW1kOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLW1kOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtbWVkaXVtLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uZWxlbWVudG9yLWJ1dHRvbi1zaXplLWxhcmdlIC5lbGVtZW50b3ItYnV0dG9uLFxuLmVsZW1lbnRvci1idXR0b24uZWxlbWVudG9yLXNpemUtbGcge1xuICBoZWlnaHQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuLmVsZW1lbnRvci1idXR0b24tc2l6ZS1sYXJnZSAuZWxlbWVudG9yLWJ1dHRvbjpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksIC5lbGVtZW50b3ItYnV0dG9uLXNpemUtbGFyZ2UgLmVsZW1lbnRvci1idXR0b246bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcsXG4uZWxlbWVudG9yLWJ1dHRvbi5lbGVtZW50b3Itc2l6ZS1sZzpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksXG4uZWxlbWVudG9yLWJ1dHRvbi5lbGVtZW50b3Itc2l6ZS1sZzpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4uZWxlbWVudG9yLWJ1dHRvbi1zaXplLWxhcmdlLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4vKipcbiAqIEljb24gJiBBcnJvdyBBbmltYXRpb25zXG4gKiBEZWZpbmVzIHRoZSAnYXJyb3dSZWVudGVyJyBrZXlmcmFtZXMgYW5kIGljb24gY29sb3JpbmcgbG9naWMuXG4gKi9cbkBrZXlmcmFtZXMgYXJyb3dIb3ZlciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwLWVuZDtcbiAgfVxuICA1MC4wMDElIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTYwcHgpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGFycm93TGVhdmUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTYwcHgpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXAtZW5kO1xuICB9XG4gIDUwLjAwMSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuLmVsZW1lbnRvci1idXR0b24tY29udGVudC13cmFwcGVyIHtcbiAgZ2FwOiAzMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBwYXRoLFxuLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGxpbmUsXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcG9seWxpbmUsXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcmVjdCxcbi5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBjaXJjbGUsXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBwYXRoLFxuLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgbGluZSxcbi5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBvbHlsaW5lLFxuLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcmVjdCxcbi5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIGNpcmNsZSB7XG4gIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHN0cm9rZTogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uOmhvdmVyIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uOmhvdmVyIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnLFxuLmVsZW1lbnRvci1idXR0b246Zm9jdXMgLmVsZW1lbnRvci1idXR0b24taWNvbiBpLFxuLmVsZW1lbnRvci1idXR0b246Zm9jdXMgLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcge1xuICBhbmltYXRpb246IGFycm93SG92ZXIgMC42cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIGZvcndhcmRzO1xufVxuXG4uZWxlbWVudG9yLWJ1dHRvbi5oYXMtaG92ZXJlZDpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksXG4uZWxlbWVudG9yLWJ1dHRvbi5oYXMtaG92ZXJlZDpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyB7XG4gIGFuaW1hdGlvbjogYXJyb3dMZWF2ZSAwLjZzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XG59XG5cbi5pbnF1aXJ5LWZvcm0gLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24gc3ZnIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiBGb3JtcyAmIElucHV0cyBDb21wb25lbnRcbiAqIFByb2Zlc3Npb25hbCBmb3JtIHN0eWxpbmcgZm9yIHN0YW5kYXJkIGlucHV0cywgc2VsZWN0cywgYW5kIHRleHRhcmVhcy5cbiAqL1xuLyoqXG4gKiBHbG9iYWwgTGFiZWwgU3R5bGVcbiAqIFN0YW5kYXJkaXplcyB0eXBvZ3JhcGh5IGZvciBhbGwgZm9ybSBsYWJlbHMgYW5kIHJlcXVpcmVkIG1hcmtzLlxuICovXG5sYWJlbCxcbi5mb3JtLWxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxubGFiZWwgc3Bhbixcbi5mb3JtLWxhYmVsIHNwYW4ge1xuICBjb2xvcjogI0IxNTkzMztcbn1cblxuLyoqXG4gKiBCYXNlIElucHV0IFN0eWxlc1xuICogQ292ZXJzIHRleHQsIGVtYWlsLCB0ZWwsIHBhc3N3b3JkLCBhbmQgdGV4dGFyZWFzIHdpdGggYnJhbmQtY29tcGxpYW50IHN0YXRlcy5cbiAqL1xuaW5wdXRbdHlwZT10ZXh0XSxcbmlucHV0W3R5cGU9ZW1haWxdLFxuaW5wdXRbdHlwZT10ZWxdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDU2cHg7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgY29sb3I6ICMwQTI4NDI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUFFMztcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG5pbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG5pbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuc2VsZWN0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDEwLCA0MCwgNjYsIDAuNSk7XG59XG5pbnB1dFt0eXBlPXRleHRdOmhvdmVyLCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxuaW5wdXRbdHlwZT1lbWFpbF06aG92ZXIsXG5pbnB1dFt0eXBlPWVtYWlsXTpmb2N1cyxcbmlucHV0W3R5cGU9dGVsXTpob3ZlcixcbmlucHV0W3R5cGU9dGVsXTpmb2N1cyxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOmhvdmVyLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsXG50ZXh0YXJlYTpob3ZlcixcbnRleHRhcmVhOmZvY3VzLFxuc2VsZWN0OmhvdmVyLFxuc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzBEM0U3MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RERDVDNjtcbn1cbmlucHV0W3R5cGU9dGV4dF0uaXMtZXJyb3IsIC53cGNmNy1ub3QtdmFsaWQgaW5wdXRbdHlwZT10ZXh0XSxcbmlucHV0W3R5cGU9ZW1haWxdLmlzLWVycm9yLFxuLndwY2Y3LW5vdC12YWxpZCBpbnB1dFt0eXBlPWVtYWlsXSxcbmlucHV0W3R5cGU9dGVsXS5pcy1lcnJvcixcbi53cGNmNy1ub3QtdmFsaWQgaW5wdXRbdHlwZT10ZWxdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF0uaXMtZXJyb3IsXG4ud3BjZjctbm90LXZhbGlkIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxudGV4dGFyZWEuaXMtZXJyb3IsXG4ud3BjZjctbm90LXZhbGlkIHRleHRhcmVhLFxuc2VsZWN0LmlzLWVycm9yLFxuLndwY2Y3LW5vdC12YWxpZCBzZWxlY3Qge1xuICBib3JkZXItY29sb3I6ICNEODNCM0I7XG59XG5cbi8qKlxuICogRHJvcGRvd24gTWVudXMgKFNlbGVjdClcbiAqIEN1c3RvbSBhcnJvdyBzdHlsaW5nIHVzaW5nIHRoZW1lZCBTVkcgaWNvbnMgZm9yIGNvbnNpc3RlbnQgVUkuXG4gKi9cbnNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xIDFMNiA2TDExIDEnIHN0cm9rZT0nJTIzMEEyODQyJyBzdHJva2Utd2lkdGg9JzInLyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDE2cHggY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuc2VsZWN0IG9wdGlvbiB7XG4gIGNvbG9yOiAjMEEyODQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFQUUzO1xufVxuXG4vKipcbiAqIERhcmsgRm9ybSBNb2RpZmllclxuICogSGlnaC1maWRlbGl0eSB2YXJpYW50IGZvciBkYXJrIGJhY2tncm91bmRzIHVzaW5nIHRyYW5zbHVjZW50IGVsZW1lbnRzLlxuICovXG4uZm9ybS0tZGFyayBsYWJlbCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmZvcm0tLWRhcmsgaW5wdXQsXG4uZm9ybS0tZGFyayB0ZXh0YXJlYSxcbi5mb3JtLS1kYXJrIHNlbGVjdCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmZvcm0tLWRhcmsgaW5wdXQ6aG92ZXIsIC5mb3JtLS1kYXJrIGlucHV0OmZvY3VzLFxuLmZvcm0tLWRhcmsgdGV4dGFyZWE6aG92ZXIsXG4uZm9ybS0tZGFyayB0ZXh0YXJlYTpmb2N1cyxcbi5mb3JtLS1kYXJrIHNlbGVjdDpob3Zlcixcbi5mb3JtLS1kYXJrIHNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNCMTU5MzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4uZm9ybS0tZGFyayBpbnB1dDo6cGxhY2Vob2xkZXIsXG4uZm9ybS0tZGFyayB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4uZm9ybS0tZGFyayBzZWxlY3Q6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cbi5mb3JtLS1kYXJrIHNlbGVjdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEyJyBoZWlnaHQ9JzgnIHZpZXdCb3g9JzAgMCAxMiA4JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMSAxTDYgNkwxMSAxJyBzdHJva2U9J3doaXRlJyBzdHJva2Utd2lkdGg9JzInLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi8qKlxuICogQ3VzdG9tIENoZWNrYm94ZXMgJiBSYWRpb3NcbiAqIFByZW1pdW0gYnJhbmQtY29tcGxpYW50IHRvZ2dsZSBlbGVtZW50cyB3aXRoIGNvcHBlciBpbmRpY2F0b3JzLlxuICovXG5pbnB1dFt0eXBlPWNoZWNrYm94XSxcbmlucHV0W3R5cGU9cmFkaW9dIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNEREQ1QzY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5pbnB1dFt0eXBlPWNoZWNrYm94XTpob3ZlcixcbmlucHV0W3R5cGU9cmFkaW9dOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjQjE1OTMzO1xufVxuaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCxcbmlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQge1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG5pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOjphZnRlcixcbmlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBjbGlwLXBhdGg6IHBvbHlnb24oMTQlIDQ0JSwgMCA2NSUsIDUwJSAxMDAlLCAxMDAlIDE2JSwgODAlIDAlLCA0MyUgNjIlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0IxNTkzMztcbn1cbi5mb3JtLS1kYXJrIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmZvcm0tLWRhcmsgaW5wdXRbdHlwZT1yYWRpb10ge1xuICBib3JkZXItY29sb3I6ICNGRkZGRkY7XG59XG4uZm9ybS0tZGFyayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkLFxuLmZvcm0tLWRhcmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCB7XG4gIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cblxuLyoqXG4gKiBUZXh0YXJlYSBTcGVjaWZpYyBMb2dpY1xuICogRml4ZWQgaGVpZ2h0IGFuZCBsYXlvdXQgYWRqdXN0bWVudHMgZm9yIG11bHRpLWxpbmUgaW5wdXRzLlxuICovXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogMTgwcHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qKlxuICogR2xvYmFsIFZhbGlkYXRpb24gTWVzc2FnaW5nXG4gKiBSZXNwb25zaXZlIGVycm9yIHR5cG9ncmFwaHkgZm9yIGF1dG9tYXRlZCBmb3JtIHZhbGlkYXRpb24gdG9vbHMuXG4gKi9cbi53cGNmNy1ub3QtdmFsaWQtdGlwLFxuLmVycm9yLW1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIGNvbG9yOiAjRDgzQjNCO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIFByaXZhY3kgUG9saWN5IFRleHQgJiBTdWJtaXQgQnV0dG9uIExheW91dCAoQ29udGFjdCBGb3JtcylcbiAqL1xuLmlucXVpcnktZm9ybSAuZm9ybS1wcml2YWN5LXRleHQge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5pbnF1aXJ5LWZvcm0gLmZvcm0tcHJpdmFjeS10ZXh0IGEge1xuICBjb2xvcjogI0ZEQzU1NDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmlucXVpcnktZm9ybSAuZm9ybS1wcml2YWN5LXRleHQgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5pbnF1aXJ5LWZvcm0gLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCB7XG4gIGdhcDogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW5xdWlyeS1mb3JtIC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIExpZ2h0IEZvcm0gVmFyaWFudCBNb2RpZmllclxuICogT3ZlcnJpZGVzIGZvciByZXVzaW5nIHRoZSBmb3JtIHRlbXBsYXRlIGluIGxpZ2h0IGJhY2tncm91bmQgc2VjdGlvbnMuXG4gKi9cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgbGFiZWwuZWxlbWVudG9yLWZpZWxkLWxhYmVsLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgbGFiZWwuZWxlbWVudG9yLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgLmVsZW1lbnRvci1maWVsZC10ZXh0dWFsLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRleHRdLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPWVtYWlsXSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgaW5wdXRbdHlwZT10ZWxdLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgdGV4dGFyZWEsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIHNlbGVjdCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdGV4dHVhbCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGlucHV0LFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgdGV4dGFyZWEsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBzZWxlY3Qge1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUFFMyAhaW1wb3J0YW50O1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCAuZWxlbWVudG9yLWZpZWxkLXRleHR1YWw6OnBsYWNlaG9sZGVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIHRleHRhcmVhOjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgc2VsZWN0OjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdGV4dHVhbDo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBpbnB1dDo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBzZWxlY3Q6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KSAhaW1wb3J0YW50O1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCAuZWxlbWVudG9yLWZpZWxkLXRleHR1YWw6aG92ZXIsIC5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgLmVsZW1lbnRvci1maWVsZC10ZXh0dWFsOmZvY3VzLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRleHRdOmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPWVtYWlsXTpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9dGVsXTpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgaW5wdXRbdHlwZT10ZWxdOmZvY3VzLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIHRleHRhcmVhOmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgc2VsZWN0OmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBzZWxlY3Q6Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXRleHR1YWw6aG92ZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXRleHR1YWw6Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBpbnB1dDpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGlucHV0OmZvY3VzLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgdGV4dGFyZWE6aG92ZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCB0ZXh0YXJlYTpmb2N1cyxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IHNlbGVjdDpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IHNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFQUUzICFpbXBvcnRhbnQ7XG59XG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uOjpiZWZvcmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOjpiZWZvcmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IC0xICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjM1cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpLCB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b246aG92ZXI6OmJlZm9yZSwgLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbjpmb2N1czo6YmVmb3JlLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjpob3Zlcjo6YmVmb3JlLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1czo6YmVmb3JlLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdOmhvdmVyOjpiZWZvcmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF06Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyB7XG4gIGNvbG9yOiAjRTA4RjM1ICFpbXBvcnRhbnQ7XG4gIGZpbGw6ICNFMDhGMzUgIWltcG9ydGFudDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHBhdGgsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcG9seWxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSByZWN0LFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgY2lyY2xlLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBwYXRoLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBwb2x5bGluZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcmVjdCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgY2lyY2xlLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcGF0aCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBwb2x5bGluZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHJlY3QsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBjaXJjbGUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBhdGgsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIGxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBvbHlsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyByZWN0LFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBjaXJjbGUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHBhdGgsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHBvbHlsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSByZWN0LFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBjaXJjbGUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcGF0aCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBvbHlsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHJlY3QsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgY2lyY2xlIHtcbiAgZmlsbDogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7XG4gIHN0cm9rZTogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7XG59XG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZm9ybS1wcml2YWN5LXRleHQge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5mb3JtLXByaXZhY3ktdGV4dCBhIHtcbiAgY29sb3I6ICNCMTU5MzM7XG59XG5cbi5lbGVtZW50b3Itd2lkZ2V0LW4tYWNjb3JkaW9uIC5lLW4tYWNjb3JkaW9uLWl0ZW1bb3Blbl0gLmUtbi1hY2NvcmRpb24taXRlbS10aXRsZS10ZXh0IHtcbiAgY29sb3I6ICM1NTg1QzIgIWltcG9ydGFudDtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tYWNjb3JkaW9uIC5lLW4tYWNjb3JkaW9uLWl0ZW1bb3Blbl0gLmUtbi1hY2NvcmRpb24taXRlbS10aXRsZS1pY29uIHN2ZyBwYXRoIHtcbiAgc3Ryb2tlOiAjNTU4NUMyICFpbXBvcnRhbnQ7XG59XG5cbi5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciB7XG4gIGdhcDogMTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREJEQUQ3O1xuICB9XG59XG4uY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIHtcbiAgcGFkZGluZzogMTZweCAwO1xuICBnYXA6IDI0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLmNhcGFiaWxpdHktY2FyZHMtY29udGFpbmVyIC5jYXBhYmlsaXR5LWNhcmQtaXRlbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLmNhcGFiaWxpdHktY2FyZHMtY29udGFpbmVyIC5jYXBhYmlsaXR5LWNhcmQtaXRlbSAuY2FwYWJpbGl0eS1jYXJkLWltYWdlIHtcbiAgd2lkdGg6IDQwJTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIC5jYXBhYmlsaXR5LWNhcmQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4uY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIC5jYXBhYmlsaXR5LWNhcmQtaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciAuY2FwYWJpbGl0eS1jYXJkLWl0ZW0gLmNhcGFiaWxpdHktY2FyZC1jb250ZW50IHtcbiAgd2lkdGg6IDYwJTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIC5jYXBhYmlsaXR5LWNhcmQtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciAuY2FwYWJpbGl0eS1jYXJkLWl0ZW0gLmNhcGFiaWxpdHktY2FyZC1jb250ZW50IC5jYXBhYmlsaXR5LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMnB4O1xuICBmb250LWZhbWlseTogXCJ6dXVtZVwiLCBzYW5zLXNlcmlmO1xufVxuLmNhcGFiaWxpdHktY2FyZHMtY29udGFpbmVyIC5jYXBhYmlsaXR5LWNhcmQtaXRlbSAuY2FwYWJpbGl0eS1jYXJkLWNvbnRlbnQgLmNhcGFiaWxpdHktY2FyZC1kZXNjIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuXG4uc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLXRpdGxlIHtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gIGNvbG9yOiAjQjE1OTMzO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcInp1dW1lXCIsIHNhbnMtc2VyaWY7XG59XG4uc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zeXN0ZW1zLXdlLXNlcnZlLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xufVxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHJpZ2h0OiAtMTAwJTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCREFENztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IC5zZXJ2aWNlcy13ZS1vZmZlci1pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEQkRBRDc7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCAuc2VydmljZXMtd2Utb2ZmZXItaXRlbSB7XG4gICAgcGFkZGluZzogMjBweCAxNnB4O1xuICB9XG59XG4uc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IC5zZXJ2aWNlcy13ZS1vZmZlci1pdGVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogLTAuNXB4O1xuICByaWdodDogLTEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQkRBRDc7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCAuc2VydmljZXMtd2Utb2ZmZXItaXRlbTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0RCREFENztcbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW0gYSxcbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW0gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW0gYTpob3Zlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBsZWZ0OiAwO1xuICBib3R0b206IC01cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjE1OTMzO1xufVxuXG4ucG9zaXRpb24tc3RpY2t5IHtcbiAgYWxpZ24tc2VsZjogc3RhcnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLnBvc2l0aW9uLXN0aWNreSB7XG4gICAgYWxpZ24tc2VsZjogYXV0bztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0RCREFENztcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ2FwYWJpbGl0aWVzIFN0aWNreSBMaXN0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNtYXJ0LXN0aWNreS1hbmNlc3RvciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IHZpc2libGUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjbGlwLXBhdGg6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIge1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG59XG4uc21hcnQtc3RpY2t5LWNvbnRhaW5lciAuZWxlbWVudG9yLXdpZGdldC1zaG9ydGNvZGUge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QsXG4uc21hcnQtc3RpY2t5LWNvbnRhaW5lciAuZWxlbWVudG9yLXNob3J0Y29kZSA+IHVsLFxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIgLmVsZW1lbnRvci1zaG9ydGNvZGUgPiBkaXYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW06Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc21hcnQtc3RpY2t5LWNvbnRhaW5lci5zbWFydC1zdGlja3ktc2hvcnQge1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0aWNreSAhaW1wb3J0YW50O1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG4uc21hcnQtc3RpY2t5LWNvbnRhaW5lci5zbWFydC1zdGlja3ktbG9uZyB7XG4gIGhlaWdodDogbWF4LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uc21hcnQtc3RpY2t5LXRpdGxlLXN0eWxlIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA2MnB4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDE1cHggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbWFydC1zdGlja3ktdGl0bGUtc3R5bGU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiAtMTBweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IC0xMDAlO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IC0xO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc21hcnQtc3RpY2t5LWJnLCAjRjlGOEY2KTtcbn1cbi5zbWFydC1zdGlja3ktdGl0bGUtc3R5bGUgLmVsZW1lbnRvci13aWRnZXQtaGVhZGluZyxcbi5zbWFydC1zdGlja3ktdGl0bGUtc3R5bGUgLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyLFxuLnNtYXJ0LXN0aWNreS10aXRsZS1zdHlsZSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnNtYXJ0LXN0aWNreS10aXRsZS1zdGljayB7XG4gIHRvcDogNzhweCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cbi5hZG1pbi1iYXIgLnNtYXJ0LXN0aWNreS10aXRsZS1zdGljayB7XG4gIHRvcDogMTEwcHggIWltcG9ydGFudDtcbn1cblxuLm1hcmtldC1jYXJkcy1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiAzMHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tYXJrZXQtY2FyZHMtY29udGFpbmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLm1hcmtldC1jYXJkcy1jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4ubWFya2V0LWNhcmRzLWNvbnRhaW5lciAubWFya2V0LWNhcmQtaXRlbSB7XG4gIHBhZGRpbmc6IDQwcHggMzJweDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMjBweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5tYXJrZXQtY2FyZHMtY29udGFpbmVyIC5tYXJrZXQtY2FyZC1pdGVtIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbi5tYXJrZXQtY2FyZHMtY29udGFpbmVyIC5tYXJrZXQtY2FyZC1pdGVtOm50aC1jaGlsZCgzbisxKSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNCMTU5MzM7XG59XG4ubWFya2V0LWNhcmRzLWNvbnRhaW5lciAubWFya2V0LWNhcmQtaXRlbTpudGgtY2hpbGQoM24rMikge1xuICBib3JkZXItdG9wLWNvbG9yOiAjMEQzRTcwO1xufVxuLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW06bnRoLWNoaWxkKDNuKSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNFMDhGMzU7XG59XG4ubWFya2V0LWNhcmRzLWNvbnRhaW5lciAubWFya2V0LWNhcmQtaXRlbSAubWFya2V0LWNhcmQtY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW0gLm1hcmtldC1jYXJkLWNvbnRlbnQgLm1hcmtldC1jYXJkLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcInp1dW1lXCIsIHNhbnMtc2VyaWY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW0gLm1hcmtldC1jYXJkLWNvbnRlbnQgLm1hcmtldC1jYXJkLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG59XG4ubWFya2V0LWNhcmRzLWNvbnRhaW5lciAubWFya2V0LWNhcmQtaXRlbSAubWFya2V0LWNhcmQtY29udGVudCAubWFya2V0LWNhcmQtZGVzYyB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cblxuLnBvc3QtYm9keS1jb250ZW50IGgyIHtcbiAgbWFyZ2luLXRvcDogMi41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjEgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLnBvc3QtYm9keS1jb250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHggIWltcG9ydGFudDtcbiAgfVxufVxuLnBvc3QtYm9keS1jb250ZW50IGgzIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDI2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgaDQge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDIycHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgaDUge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGg2IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGEge1xuICBjb2xvcjogIzBEM0U3MDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgYTpob3ZlciB7XG4gIGNvbG9yOiAjNTU4NUMyO1xufVxuLnBvc3QtYm9keS1jb250ZW50IG9sIHtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBjb3VudGVyLXJlc2V0OiBwb3N0LW9sLWNvdW50ZXI7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgb2wgbGkge1xuICBjb3VudGVyLWluY3JlbWVudDogcG9zdC1vbC1jb3VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBvbCBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihwb3N0LW9sLWNvdW50ZXIsIGRlY2ltYWwtbGVhZGluZy16ZXJvKSBcIi5cIjtcbiAgbGVmdDogMDtcbiAgdG9wOiAtM3B4O1xuICB3aWR0aDogMzBweDtcbiAgY29sb3I6ICNCMTU5MzM7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IG9sIGxpIHN0cm9uZzpmaXJzdC1jaGlsZCxcbi5wb3N0LWJvZHktY29udGVudCBvbCBsaSBiOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDEuNXJlbSAwO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgdWwgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGxlZnQ6IDA7XG4gIHRvcDogN3B4O1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCMTU5MzM7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgdWwgbGkgc3Ryb25nLFxuLnBvc3QtYm9keS1jb250ZW50IHVsIGxpIGIge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsLmxpc3QtY2hlY2ttYXJrIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsLmxpc3QtY2hlY2ttYXJrIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgdWwubGlzdC1jaGVja21hcmsgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9jaGVjay5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5wb3N0LWJvZHktY29udGVudCB1bC5saXN0LWNoZWNrbWFyayBsaSBzdHJvbmcsXG4ucG9zdC1ib2R5LWNvbnRlbnQgdWwubGlzdC1jaGVja21hcmsgbGkgYiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgLnBvc3QtbWFyay1jaGVja21hcmsge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5wb3N0LWJvZHktY29udGVudCAucG9zdC1tYXJrLWNoZWNrbWFyazo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9jaGVjay5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiA0OHB4IDA7XG4gIHBhZGRpbmctbGVmdDogNjVweDtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiA2cHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA0MXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9ibG9ja3F1b3RlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGJsb2NrcXVvdGUgcDpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBibG9ja3F1b3RlIHA6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA1NHB4O1xuICB9XG4gIC5wb3N0LWJvZHktY29udGVudCBibG9ja3F1b3RlOjpiZWZvcmUge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0b3A6IDRweDtcbiAgfVxuICAucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZSBwOmZpcnN0LW9mLXR5cGUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgfVxuICAucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB9XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBoMixcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBoMyxcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBoNCxcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBoNSxcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBoNixcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBwLFxuLnBvc3QtYm9keS1jb250ZW50LnBvc3QtYm9keS1jb250ZW50LXdoaXRlIGxpLFxuLnBvc3QtYm9keS1jb250ZW50LnBvc3QtYm9keS1jb250ZW50LXdoaXRlIHN0cm9uZyxcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBiIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgb2wgbGk6OmJlZm9yZSB7XG4gIGNvbG9yOiAjRTA4RjM1O1xufVxuLnBvc3QtYm9keS1jb250ZW50LnBvc3QtYm9keS1jb250ZW50LXdoaXRlIHVsIGxpOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTA4RjM1O1xufVxuXG5ib2R5LnNpbmdsZS1jYXNlLXN0dWR5IC5wb3NpdGlvbi1zdGlja3kgLnBvc3QtYm9keS1jb250ZW50IHVsIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY29ydmFudC1jdXN0b20tbWFwLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFQUUzO1xufVxuLmNvcnZhbnQtY3VzdG9tLW1hcC13cmFwcGVyIC5jb3J2YW50LW1hcC1vdmVybGF5LWxpbmsge1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgY29sb3I6ICM1NTg1QzI7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1NTg1QzI7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG4gIGdhcDogNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbi5jb3J2YW50LWN1c3RvbS1tYXAtd3JhcHBlciAuY29ydmFudC1tYXAtb3ZlcmxheS1saW5rIHN2ZyB7XG4gIHN0cm9rZTogIzU1ODVDMjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5jb3J2YW50LWN1c3RvbS1tYXAtd3JhcHBlciAuY29ydmFudC1tYXAtb3ZlcmxheS1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMwRDNFNzA7XG4gIGJvcmRlci1jb2xvcjogIzBEM0U3MDtcbiAgYmFja2dyb3VuZDogI0ZCRjhGMztcbn1cbi5jb3J2YW50LWN1c3RvbS1tYXAtd3JhcHBlciAuY29ydmFudC1tYXAtb3ZlcmxheS1saW5rOmhvdmVyIHN2ZyB7XG4gIHN0cm9rZTogIzBEM0U3MDtcbn1cbi5jb3J2YW50LWN1c3RvbS1tYXAtd3JhcHBlciAuY29ydmFudC1jdXN0b20tbWFwIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEEuIEVTVElMT1MgREVMIENPTlRFTkVET1IgUEFEUkUgREVMIENBUlJVU0VMXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTM2N3B4KSB7XG4gIC5kZXRhaWwtY2Fyb3VzZWwtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDB2dyAtIDEzMzBweCkgLyAyKSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTM2NnB4KSBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5kZXRhaWwtY2Fyb3VzZWwtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjc5cHgpIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZGV0YWlsLWNhcm91c2VsLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmRldGFpbC1jYXJvdXNlbC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFNpIGVsIGNvbnRlbmVkb3Igbm8gdGllbmUgZWwgY2FycnVzZWwgYWRlbnRybywgc2Ugb2N1bHRhIGF1dG9tw6F0aWNhbWVudGUgKi9cbi5kZXRhaWwtY2Fyb3VzZWwtc2VjdGlvbjpub3QoOmhhcyguZWxlbWVudG9yLXdpZGdldC1pbWFnZS1jYXJvdXNlbCkpIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCLiBFU1RJTE9TIERFTCBXSURHRVQgQ0FSUlVTRUwgKEZMRUNIQVMgWSBTQ1JPTEwpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbiB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IC03MHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA0NnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNDRweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbiBzdmcgcGF0aCB7XG4gIHN0cm9rZTogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgbGVmdDogNTZweCAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbi5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjdCNUIwICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEMuIFdJREdFVCBDQVJSVVNFTDogQ09NUFVUQURPUkEgKEFOSU1BQ0nDk04gUFJFTUlVTSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLmRldGFpbC1jYXJvdXNlbCAuZWxlbWVudG9yLXdpZGdldC1jb250YWluZXIsXG4gIC5kZXRhaWwtY2Fyb3VzZWwgLmVsZW1lbnRvci1pbWFnZS1jYXJvdXNlbC13cmFwcGVyLnN3aXBlciB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBjbGlwLXBhdGg6IGluc2V0KC01MHB4IDBweCAtMTUwcHggMHB4KSAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXRhaWwtY2Fyb3VzZWwgLnN3aXBlci1zbGlkZSB7XG4gICAgaGVpZ2h0OiA0MDlweCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXRhaWwtY2Fyb3VzZWwgZmlndXJlLnN3aXBlci1zbGlkZS1pbm5lciB7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXRhaWwtY2Fyb3VzZWwgZmlndXJlLnN3aXBlci1zbGlkZS1pbm5lciBpbWcge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA0MDlweCAhaW1wb3J0YW50O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogTcOhcXVpbmEgZGUgRXN0YWRvcyAoVHJhbnNpY2lvbmVzIFN1YXZlcykgKi9cbiAgLmRldGFpbC1jYXJvdXNlbCAuc3dpcGVyLXNsaWRlLXByZXYgZmlndXJlLnN3aXBlci1zbGlkZS1pbm5lciB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3Ni45NSUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRldGFpbC1jYXJvdXNlbCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSBmaWd1cmUuc3dpcGVyLXNsaWRlLWlubmVyIHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDc2Ljk1JSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5zd2lwZXItc2xpZGUtbmV4dCBmaWd1cmUuc3dpcGVyLXNsaWRlLWlubmVyIHtcbiAgICBsZWZ0OiAtMTcuMjglICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEzNC41JSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5zd2lwZXItc2xpZGUtbmV4dCArIC5zd2lwZXItc2xpZGUgZmlndXJlLnN3aXBlci1zbGlkZS1pbm5lciB7XG4gICAgbGVmdDogMjIuOTYlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDc2Ljk1JSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5zd2lwZXItc2xpZGUtbmV4dCArIC5zd2lwZXItc2xpZGUgfiAuc3dpcGVyLXNsaWRlIGZpZ3VyZS5zd2lwZXItc2xpZGUtaW5uZXIge1xuICAgIGxlZnQ6IDIyLjk2JSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3Ni45NSUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRC4gV0lER0VUIENBUlJVU0VMOiBNw5NWSUwgWSBUQUJMRVQgKFBFRUtJTkcgU0xJREUpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5kZXRhaWwtY2Fyb3VzZWwgLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXRhaWwtY2Fyb3VzZWwgLmVsZW1lbnRvci1pbWFnZS1jYXJvdXNlbC13cmFwcGVyLnN3aXBlciB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1JSAhaW1wb3J0YW50O1xuICAgIGNsaXAtcGF0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5zd2lwZXItc2xpZGUge1xuICAgIGhlaWdodDogMzIwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXRhaWwtY2Fyb3VzZWwgLnN3aXBlci1zbGlkZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAzMjBweCAhaW1wb3J0YW50O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJFTEFURUQgUFJPSkVDVFMgU0VDVElPTiBTVFlMRVNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDEuIE1haW4gY29udGFpbmVyIGFsaWdubWVudCBhbmQgcGFkZGluZ3MgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY3cHgpIHtcbiAgLnJlbGF0ZWQtcHJvamVjdHMtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDB2dyAtIDEzMzBweCkgLyAyKSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTM2NnB4KSBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5yZWxhdGVkLXByb2plY3RzLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI3OXB4KSBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnJlbGF0ZWQtcHJvamVjdHMtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucmVsYXRlZC1wcm9qZWN0cy1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIEhpZGUgc2VjdGlvbiBpZiBlbXB0eSAqL1xuLnJlbGF0ZWQtcHJvamVjdHMtc2VjdGlvbjpub3QoOmhhcyguZWxlbWVudG9yLXdpZGdldC1sb29wLWNhcm91c2VsKSkge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIDIuIFNsaWRlciBuYXZpZ2F0aW9uIGFycm93IHN0eWxlcyAqL1xuLnJlbGF0ZWQtcHJvamVjdHMtY2Fyb3VzZWwgLmVsZW1lbnRvci1zd2lwZXItYnV0dG9uIHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogLTcwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDQ2cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5yZWxhdGVkLXByb2plY3RzLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbiBzdmcgcGF0aCB7XG4gIHN0cm9rZTogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuXG4ucmVsYXRlZC1wcm9qZWN0cy1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24tcHJldiB7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnJlbGF0ZWQtcHJvamVjdHMtY2Fyb3VzZWwgLmVsZW1lbnRvci1zd2lwZXItYnV0dG9uLW5leHQge1xuICBsZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5yZWxhdGVkLXByb2plY3RzLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbi5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjdCNUIwICFpbXBvcnRhbnQ7XG59XG5cbi8qIDMuIFN1cHBvcnQgZm9yIHNpbmdsZS1zbGlkZSBpdGVtcyAqL1xuLnJlbGF0ZWQtcHJvamVjdHMtc2VjdGlvbjpoYXMoZGl2LnN3aXBlci1zbGlkZTpvbmx5LW9mLXR5cGUpIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnJlbGF0ZWQtcHJvamVjdHMtY2Fyb3VzZWwgZGl2LnN3aXBlci1zbGlkZTpvbmx5LW9mLXR5cGUge1xuICBtYXgtd2lkdGg6IDEzMjBweCAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBXSURHRVQgTE9HTyBNQVJRVUVFIChHQUxFUsONQSBCw4FTSUNBIElORklOSVRBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmN1c3RvbS1sZWFkZXJzLWNhcm91c2VsIHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBtYXJnaW4tbGVmdDogY2FsYyg1MCUgLSA1MHZ3KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpIGNvbnRyYXN0KDEzMCUpIGJyaWdodG5lc3MoODAlKTtcbn1cbi5jdXN0b20tbGVhZGVycy1jYXJvdXNlbCAuZ2FsbGVyeSB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgd2lkdGg6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMCAhaW1wb3J0YW50O1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuLmN1c3RvbS1sZWFkZXJzLWNhcm91c2VsIC5nYWxsZXJ5Lm1hcnF1ZWUtcmVhZHkge1xuICBhbmltYXRpb246IHNsaWRlci1sb2dvcyA0NXMgbGluZWFyIGluZmluaXRlO1xufVxuLmN1c3RvbS1sZWFkZXJzLWNhcm91c2VsIC5nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW0ge1xuICB3aWR0aDogMTgwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxODBweCAhaW1wb3J0YW50O1xuICBmbGV4OiAwIDAgMTgwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMjBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3VzdG9tLWxlYWRlcnMtY2Fyb3VzZWwgLmdhbGxlcnkgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDAgMCAxMjBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogOTBweCAhaW1wb3J0YW50O1xuICB9XG59XG4uY3VzdG9tLWxlYWRlcnMtY2Fyb3VzZWwgLmdhbGxlcnktaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cbi5jdXN0b20tbGVhZGVycy1jYXJvdXNlbCAuZ2FsbGVyeS1pdGVtIGltZyB7XG4gIHdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBvYmplY3QtZml0OiBjb250YWluICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jdXN0b20tbGVhZGVycy1jYXJvdXNlbCAuZ2FsbGVyeS1pdGVtIGltZyB7XG4gICAgd2lkdGg6IDgwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlci1sb2dvcyB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMzLjMzMyUsIDAsIDApO1xuICB9XG59XG4uY29ydmFudC1icmVhZGNydW1icyB7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5jb3J2YW50LWJyZWFkY3J1bWJzIC5jb3J2YW50LWJyZWFkY3J1bWJzLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGdhcDogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uY29ydmFudC1icmVhZGNydW1icyAuY29ydmFudC1icmVhZGNydW1icy1pdGVtIHtcbiAgY29sb3I6ICMwQTI4NDI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5jb3J2YW50LWJyZWFkY3J1bWJzIC5jb3J2YW50LWJyZWFkY3J1bWJzLWl0ZW0gYSB7XG4gIGNvbG9yOiAjMEEyODQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cbi5jb3J2YW50LWJyZWFkY3J1bWJzIC5jb3J2YW50LWJyZWFkY3J1bWJzLWl0ZW0gYTpob3ZlciB7XG4gIGNvbG9yOiAjQjE1OTMzO1xufVxuLmNvcnZhbnQtYnJlYWRjcnVtYnMgLmNvcnZhbnQtYnJlYWRjcnVtYnMtaXRlbS5pcy1hY3RpdmUgLmNvcnZhbnQtYnJlYWRjcnVtYnMtY3VycmVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIGNvbG9yOiAjMEEyODQyO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0IxNTkzMztcbn1cbi5jb3J2YW50LWJyZWFkY3J1bWJzIC5jb3J2YW50LWJyZWFkY3J1bWJzLXNlcGFyYXRvciB7XG4gIG1hcmdpbjogMCAyLjVweDtcbiAgY29sb3I6ICMwQTI4NDI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5ob21lLXBhZ2UgLmVsZW1lbnRvci1sb29wLWNvbnRhaW5lci5lbGVtZW50b3ItZ3JpZCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGNvbHVtbi1jb3VudDogMyAhaW1wb3J0YW50O1xuICBjb2x1bW4tZ2FwOiAzMHB4ICFpbXBvcnRhbnQ7XG59XG4uaG9tZS1wYWdlIC5lbGVtZW50b3ItbG9vcC1jb250YWluZXIuZWxlbWVudG9yLWdyaWQgLmUtbG9vcC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xufVxuIl19 */